激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - SpringMVC攔截器——實(shí)現(xiàn)登錄驗(yàn)證攔截器的示例代碼

SpringMVC攔截器——實(shí)現(xiàn)登錄驗(yàn)證攔截器的示例代碼

2020-08-16 14:56UniqueColor Java教程

本篇文章主要介紹了SpringMVC攔截器——實(shí)現(xiàn)登錄驗(yàn)證攔截器的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

本例實(shí)現(xiàn)登陸時(shí)的驗(yàn)證攔截,采用SpringMVC攔截器來(lái)實(shí)現(xiàn)

當(dāng)用戶點(diǎn)擊到網(wǎng)站主頁(yè)時(shí)要進(jìn)行攔截,用戶登錄了才能進(jìn)入網(wǎng)站主頁(yè),否則進(jìn)入登陸頁(yè)面

核心代碼

首先是index.jsp,顯示鏈接

?
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
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>" rel="external nofollow" >
  
  <title>首頁(yè)</title>
  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0"
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
  <link rel="stylesheet" type="text/css" href="styles.css" rel="external nofollow" >
  -->
 </head>
 
 <body>
   <div style="margin:0 auto;padding-top:100px;font-size:18px;" align="center">
     <p><a href="loginpage.html" rel="external nofollow" >登陸</a></p>
     <p><a href="user/home.html" rel="external nofollow" >用戶中心</a></p>
     <p><a href="exception.html" rel="external nofollow" >觸發(fā)異常</a></p>
   </div>
 </body>
</html>

controller類

?
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package com.jikexueyuan.demo.springmvc.lesson4.controller;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
 
import com.jikexueyuan.demo.springmvc.lesson4.constant.Global;
import com.jikexueyuan.demo.springmvc.lesson4.exception.MyException;
import com.jikexueyuan.demo.springmvc.lesson4.model.User;
import com.jikexueyuan.demo.springmvc.lesson4.service.LoginService;
 
/**
 * 這個(gè)例子講解了如何定義MVC三層注解,使用@Resource進(jìn)行注入,以及使用@RequestMapping、@RequestParam 、@SessionAttributes
 */
 
@Controller
public class LoginController extends BaseController {
 
  @Resource
  LoginService service;
  
  @Resource
  HttpServletRequest request;
  
  @RequestMapping("/exception")
  public void exception() throws MyException{
    throw new MyException("測(cè)試springmvc中的異常捕獲");
  }
  
  @RequestMapping("/loginpage")
  public String toLoginPage(){
    return "/WEB-INF/jsp/login.jsp";
  }
  
  @RequestMapping("/user/home")
  public String toUserHome(){
    return "/WEB-INF/jsp/userhome.jsp";
  }
  
  @RequestMapping("/logout")
  public String logout(){
    request.getSession().removeAttribute(Global.USER_SESSION_KEY);
    return "redirect:/";
  }
  
  @RequestMapping(value = "/doLogin", method = RequestMethod.POST)
  public String doLogin(@RequestParam String userName, @RequestParam String password){
    
    try {
      User user = service.doLogin(userName, password);
      request.getSession().setAttribute(Global.USER_SESSION_KEY, user);
      return "redirect:/user/home.html";
    } catch (Exception e) {
      return "/WEB-INF/jsp/login.jsp";
    }
    
  }
  
}

當(dāng)點(diǎn)擊用戶中心時(shí),觸發(fā)攔截,相關(guān)配置如下

在spring-mvc.xml中加上攔截配置,攔截所有URL中包含/user/的請(qǐng)求,當(dāng)然請(qǐng)求用戶中心時(shí)就會(huì)觸發(fā)這個(gè)攔截器了

?
1
2
3
4
5
6
7
<mvc:interceptors>
    <mvc:interceptor>
      <!-- 攔截所有URL中包含/user/的請(qǐng)求 -->
      <mvc:mapping path="/user/**"/>
      <bean class="com.jikexueyuan.demo.springmvc.lesson4.interceptor.LoginInterceptor"></bean>
    </mvc:interceptor>
  </mvc:interceptors>

然后是bean指向的具體的interceptor類,如果session保存的用戶信息為null,則跳到login頁(yè)面,postHandle和afterCompletion方法都不執(zhí)行,反之都執(zhí)行。

?
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
package com.jikexueyuan.demo.springmvc.lesson4.interceptor;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
 
import com.jikexueyuan.demo.springmvc.lesson4.constant.Global;
 
public class LoginInterceptor implements HandlerInterceptor {
 
  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    Object user = request.getSession().getAttribute(Global.USER_SESSION_KEY);
    if (user == null) {
      System.out.println("尚未登錄,調(diào)到登錄頁(yè)面");
      response.sendRedirect("/loginpage.html");
      return false;
    }
    
    return true;
  }
 
  @Override
  public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    System.out.println("postHandle");
  }
 
  @Override
  public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    System.out.println("afterCompletion");
  }
 
}

至此,簡(jiǎn)單的springmvc攔截器就完成了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/UniqueColor/p/5778199.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 好吊色37pao在线观看 | 成人一级视频 | 久久国产精品久久久久久 | 国产在线精品一区二区三区 | 亚洲精品久久久久www | 美女羞羞视频在线观看 | 久久免费视频3 | 成人午夜在线观看视频 | 亚洲一级簧片 | 亚洲国产网站 | 草莓视频久久 | 水卜樱一区二区av | 超碰97人| 国产美女视频一区 | 免费网站看v片在线a | 色视频在线观看 | 国产成人综合在线视频 | 国产pron| 久久精品欧美一区 | 久综合 | 91成人免费在线观看 | 亚洲精品av在线 | www.91成人| 国产毛片自拍 | 午夜久久久精品一区二区三区 | 福利在线小视频 | 噜噜噜在线| 农村少妇吞精夜夜爽视频 | 国产一有一级毛片视频 | 国产一级毛片高清 | 国产午夜免费福利 | 精品成人免费一区二区在线播放 | 国产免费一级淫片 | 国产二区三区视频 | 一级做a爰性色毛片免费 | 国产乱一区二区三区视频 | 欧美毛片在线观看 | 国产精品视频一区二区三区四区国 | 欧美中文字幕一区二区 | 成年人黄色免费电影 | 精品一区二区三区免费 |