sách gpt4 ăn đã đi

Ví dụ sử dụng bộ chặn SpringMVC

In lại Tác giả: qq735679552 Thời gian cập nhật: 29-09-2022 22:32:09 30 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN này sử dụng các ví dụ về các bộ chặn SpringMVC được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này, hãy nhớ thích nó.

Giới thiệu

Bộ chặn bộ xử lý của SpringMVC tương tự như bộ lọc trong quá trình phát triển Servlet, được sử dụng để xử lý trước và xử lý hậu kỳ bộ xử lý. Các nhà phát triển có thể tự xác định một số thiết bị chặn để thực hiện các chức năng cụ thể.

lọc.

  1. Một phần của đặc tả servlet, bất kỳ dự án web Java nào cũng có thể sử dụng nó
  2. Sau khi định cấu hình /* trong mẫu url, tất cả tài nguyên được truy cập có thể bị chặn.

Máy đánh chặn.

  1. Bộ chặn này là của riêng khung công tác SpringMVC và chỉ có thể được sử dụng bởi các dự án sử dụng khung công tác SpringMVC.
  2. Bộ chặn sẽ chỉ chặn phương thức điều khiển được truy cập. Nếu quyền truy cập là jsp/html/css/image/js thì nó sẽ không bị chặn.

Sự khác biệt giữa bộ lọc và thiết bị chặn:

Thiết bị chặn là một ứng dụng cụ thể của ý tưởng AOP.

Trải nghiệm đầu tiên với máy đánh chặn

1. Tạo một dự án mới, thêm hỗ trợ web và nhập gói lib mà dự án phụ thuộc vào IDEA.

2. Định cấu hình web.xml.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
xml phiên bản = "1.0" mã hóa = "UTF-8" ?>
< ứng dụng web xmln = "http://xmlns.jcp.org/xml/ns/javaee"
          xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaVị trí = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
          phiên bản = "4.0" >
     < dịch vụ >
         < tên servlet >springmvc tên servlet >
         < lớp servlet >org.springframework.web.servlet.DispatcherServlet lớp servlet >
         < thông số nhiệt >
             < tên tham số >contextConfigVị trí tên tham số >
             < giá trị tham số >đường dẫn lớp:springmvc-servlet.xml giá trị tham số >
         thông số nhiệt >
         < tải khi khởi động >1 tải khi khởi động >
     dịch vụ >
     < ánh xạ servlet >
         < tên servlet >springmvc tên servlet >
         < mẫu url >/ mẫu url >
     ánh xạ servlet >
 
     < lọc >
         < tên bộ lọc >mã hóa tên bộ lọc >
         < lớp lọc >org.springframework.web.filter.CharacterEncodingFilter lớp lọc >
         < thông số nhiệt >
             < tên tham số >mã hóa tên tham số >
             < giá trị tham số >UTF-8 giá trị tham số >
         thông số nhiệt >
     lọc >
     < ánh xạ bộ lọc >
         < tên bộ lọc >mã hóa tên bộ lọc >
         < mẫu url >/* mẫu url >
     ánh xạ bộ lọc >
 
 
ứng dụng web >

3. Định cấu hình springmvc-servlet.xml.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
xml phiên bản = "1.0" mã hóa = "UTF-8" ?>
< đậu xmln = "http://www.springframework.org/schema/beans"
        xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
        xmlns:bối cảnh = "http://www.springframework.org/schema/context"
        xmlns:mvc = "http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
              http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.springframework.org/schema/context
              http://www.springframework.org/schema/context/spring-context.xsd
              http://www.springframework.org/schema/mvc
              http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
     < ngữ cảnh: quét thành phần gói cơ sở = "bộ điều khiển" />
     < mvc:chú thích-điều khiển />
 
    
     < mvc:chú thích-điều khiển >
         < mvc:bộ chuyển đổi tin nhắn đăng ký mặc định = "ĐÚNG VẬY" >
             < đậu lớp học = "org.springframework.http.converter.StringHttpMessageConverter" >
                 < constructor-arg giá trị = "UTF-8" />
             đậu >
             < đậu lớp học = "org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" >
                 < tài sản tên = "objectMapper" >
                     < đậu lớp học = "org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean" >
                         < tài sản tên = "failOnEmptyBeans" giá trị = "SAI" />
                     đậu >
                 tài sản >
             đậu >
         mvc:bộ chuyển đổi tin nhắn >
     mvc:chú thích-điều khiển >
 
    
     < đậu lớp học = "org.springframework.web.servlet.view.InternalResourceViewResolver" nhận dạng = "InternalResourceViewResolver" >
         < tài sản tên = "tiền tố" giá trị = "/WEB-INF/jsp/" />
         < tài sản tên = "hậu tố" giá trị = ".jsp" />
     đậu >
 
đậu >

4. Viết một trình chặn tùy chỉnh. (Triển khai giao diện HandlerInterceptor).

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
bưu kiện máy đánh chặn;
 
nhập khẩu org.springframework.web.servlet.HandlerInterceptor;
nhập khẩu org.springframework.web.servlet.ModelAndView;
 
nhập khẩu javax.servlet.http.HttpServletRequest;
nhập khẩu javax.servlet.http.HttpServletResponse;
 
công cộng lớp học Máy đánh chặn của tôi thực hiện HandlerInterceptor {
 
     // Được thực thi trước phương thức xử lý yêu cầu
     // Nếu trả về true, thực thi bộ chặn tiếp theo
     // Nếu trả về sai, bộ chặn tiếp theo sẽ không được thực thi.
     công cộng Boolean preHandle(yêu cầu HttpServletRequest, phản hồi HttpServletResponse, trình xử lý đối tượng) ném Ngoại lệ {
         Hệ thống.out.println( "----------Trước khi xử lý-------------" );
         trở lại ĐÚNG VẬY ;
     }
     // Được thực thi sau khi phương thức xử lý yêu cầu được thực thi
     công cộng vô hiệu postHandle(yêu cầu HttpServletRequest, phản hồi HttpServletResponse, trình xử lý đối tượng, ModelAndView modelAndView) ném Ngoại lệ {
         Hệ thống.out.println( "----------sau khi xử lý-------------" );
     }
     // Được thực thi sau khi xử lý bộ điều phốiServlet, thực hiện công việc dọn dẹp.
     công cộng vô hiệu afterCompletion(yêu cầu HttpServletRequest, phản hồi HttpServletResponse, trình xử lý đối tượng, ngoại lệ ví dụ) ném Ngoại lệ {
         Hệ thống.out.println( "------------Lau dọn----------" );
     }
}

Thực tế, chỉ cần ghi đè phương thức preHandle.

5. Định cấu hình bộ chặn trong tệp springmvc-servlet.xml.

?
1
2
3
4
5
6
7
8
9
10
11
< mvc:máy chặn >
     < mvc:chặn >
        
        
        
         < mvc: lập bản đồ con đường = "/**" />
        
         < đậu lớp học = "interceptor.MyInterceptor" />
     mvc:chặn >
mvc:máy chặn >

6. Viết bộ điều khiển.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
bưu kiện bộ điều khiển;
 
nhập khẩu org.springframework.web.bind.annotation.RequestMapping;
nhập khẩu org.springframework.web.bind.annotation.RestController;
 
@Bộ điều khiển nghỉ ngơi
công cộng lớp học Bộ điều khiển Interceptor {
     @Yêu cầu lập bản đồ ( "/máy chặn" )
     công cộng Kiểm tra chuỗi(){
         Hệ thống.out.println( "Bộ điều khiển chặn" );
         trở lại "Được rồi" ;
     }
}

7. Cấu hình Tomcat và kiểm tra.

Trải nghiệm đầu tiên: Trình chặn tùy chỉnh triển khai giao diện HandlerInterceptor và ghi đè phương thức preHandle. Trong phương thức preHandle, giá trị trả về xác định có chặn hay không. Khi giá trị trả về là đúng, nó sẽ không chặn, nếu không thì nó sẽ chặn;

8. Kết quả:

  • Giá trị trả về là true, bộ chặn không chặn và nhảy
  • Giá trị trả về là sai, thiết bị chặn sẽ chặn và không nhảy.

Trải nghiệm lại thiết bị chặn - xác minh đăng nhập

Thực hiện ý tưởng.

  1. Có một trang đăng nhập và bạn cần viết một bộ điều khiển để truy cập trang.
  2. Trang đăng nhập có một hành động để gửi biểu mẫu. Cần phải được xử lý trong bộ điều khiển. Xác định xem tên người dùng và mật khẩu có chính xác hay không. Nếu đúng, hãy ghi thông tin người dùng vào phiên. Trở lại đăng nhập thành công.
  3. Chặn yêu cầu của người dùng và xác định xem người dùng đã đăng nhập hay chưa. Nếu người dùng đã đăng nhập. Thả ra, nếu người dùng chưa đăng nhập, hãy chuyển đến trang đăng nhập

Giao diện đăng nhập.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ nội dung trangType= "text/html;charset=UTF-8" ngôn ngữ= "java" %>
<đầu>
    Tiêu đề
 

Trang đăng nhập

 
"${pageContext.request.contextPath}/người dùng/đăng nhập" >
   Tên người dùng: "chữ" tên= "tên người dùng" >
   Mật khẩu: "mật khẩu" tên= "mã số" >
    "nộp" giá trị= "nộp" >

Bộ điều khiển xử lý yêu cầu.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
bưu kiện bộ điều khiển;
 
nhập khẩu org.springframework.stereotype.Controller;
nhập khẩu org.springframework.web.bind.annotation.RequestMapping;
 
nhập khẩu javax.servlet.http.HttpSession;
 
@Bộ điều khiển
@Yêu cầu lập bản đồ ( "/người dùng" )
công cộng lớp học Bộ điều khiển người dùng {
 
    //Chuyển đến trang đăng nhập
    @Yêu cầu lập bản đồ ( "/jumplogin" )
    công cộng Chuỗi jumpLogin() ném Ngoại lệ {
        trở lại "đăng nhập" ;
   }
 
    //Chuyển tới trang thành công
    @Yêu cầu lập bản đồ ( "/nhảyThành công" )
    công cộng Chuỗi jumpSuccess() ném Ngoại lệ {
        trở lại "thành công" ;
   }
 
    // Gửi thông tin đăng nhập
    @Yêu cầu lập bản đồ ( "/đăng nhập" )
    công cộng Chuỗi đăng nhập (phiên HttpSession, Chuỗi tên người dùng, Chuỗi pwd) ném Ngoại lệ {
        //Ghi thông tin nhận dạng người dùng vào phiên
        Hệ thống.out.println( "Nhận giao diện người dùng===" +tên người dùng);
        phiên.setAttribute( "người dùng" , tên người dùng);
        trở lại "thành công" ;
   }
 
    // Đăng xuất
    @Yêu cầu lập bản đồ ( "đăng xuất" )
    công cộng Chuỗi đăng xuất (phiên HttpSession) ném Ngoại lệ {
        // phiên hết hạn
        session.invalidate();
        trở lại "đăng nhập" ;
   }
}

Trang đăng nhập thành công.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<%@ nội dung trangType= "text/html;charset=UTF-8" ngôn ngữ= "java" %>
<đầu>
    Tiêu đề
 

Trang đăng nhập thành công

 
${người dùng}
"${pageContext.request.contextPath}/người dùng/đăng xuất" >Đăng xuất

trang chỉ mục.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ nội dung trangType= "text/html;charset=UTF-8" ngôn ngữ= "java" %>
  <đầu>
    $Tiêu đề$
 
 
 

Trang chủ

 
<%--Đăng nhập--%>
  "${pageContext.request.contextPath}/người dùng/jumplogin" >Đăng nhập
  "${pageContext.request.contextPath}/người dùng/jumpSuccess" >Trang thành công
 

trang chỉ mục.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ nội dung trangType="text/html;charset=UTF-8" ngôn ngữ="java" %>
< html >
  < cái đầu >
    < tiêu đề >$Tiêu đề$ tiêu đề >
  cái đầu >
  < thân hình >
  < h1 >Trang chủ h1 >
  < giờ >
<%--Đăng nhập--%>
  < Một href = "${pageContext.request.contextPath}/người dùng/jumplogin" >Đăng nhập Một >
  < Một href = "${pageContext.request.contextPath}/người dùng/jumpSuccess" >Trang thành công Một >
  thân hình >
html >

Viết một bộ điều khiển.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
bưu kiện máy đánh chặn;
 
nhập khẩu org.springframework.web.servlet.HandlerInterceptor;
 
nhập khẩu javax.servlet.http.HttpServletRequest;
nhập khẩu javax.servlet.http.HttpServletResponse;
nhập khẩu javax.servlet.http.HttpSession;
 
công cộng lớp học Đăng nhậpInterceptor thực hiện HandlerInterceptor {
     công cộng Boolean preHandle(yêu cầu HttpServletRequest, phản hồi HttpServletResponse, trình xử lý đối tượng) ném Ngoại lệ {
         nếu như (yêu cầu.getRequestURI().chứa( "đăng nhập" )) {
             trở lại ĐÚNG VẬY ;
         }
 
         Phiên HttpSession = request.getSession();
 
         // Nếu người dùng đã đăng nhập thì không chặn
         nếu như (phiên.getAttribute( "người dùng" ) != vô giá trị ) {
             trở lại ĐÚNG VẬY ;
         }
 
         // Người dùng chưa đăng nhập, chặn và chuyển đến trang đăng nhập
         yêu cầu.getRequestDispatcher( "/WEB-INF/jsp/login.jsp" ).forward(yêu cầu, phản hồi);
         trở lại SAI ;
     }
}

Định cấu hình bộ chặn trong springmvc-servlet.xml.

?
1
2
3
4
< mvc:chặn >
             < mvc: lập bản đồ con đường = "/**" />
             < đậu nhận dạng = "đăng nhậpInterceptor" lớp học = "interceptor.LoginInterceptor" />
         mvc:chặn >

Cấu hình Tomcat và kiểm tra.

Kết quả: Bạn không thể truy cập trực tiếp vào trang đăng nhập thành công nếu không đăng nhập.

Trên đây là chi tiết về giải pháp cắt xén tiếng Trung của SpringMVC. Để biết thêm thông tin về mã cắt xén tiếng Trung của SpringMVC, vui lòng theo dõi các bài viết liên quan khác của tôi! .

Liên kết gốc: https://juejin.cn/post/6944667529717481485.

Cuối cùng, bài viết này về các ví dụ sử dụng của bộ chặn SpringMVC kết thúc tại đây. Nếu bạn muốn biết thêm về các ví dụ sử dụng của bộ chặn SpringMVC, vui lòng tìm kiếm bài viết CFSDN hoặc tiếp tục duyệt qua các bài viết liên quan. Tôi hy vọng bạn sẽ hỗ trợ tôi trong tương lai. blog! .

30 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress