日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)

發布時間:2023/12/3 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本例實現登陸時的驗證攔截,采用SpringMVC攔截器來實現

核心代碼

首先是index.jsp,顯示鏈接

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

首頁

登陸

用戶中心

觸發異常

controller類

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;

/**

* 這個例子講解了如何定義MVC三層注解,使用@Resource進行注入,以及使用@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("測試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";

}

}

}

當點擊用戶中心時,觸發攔截,相關配置如下

在spring-mvc.xml中加上攔截配置,攔截所有URL中包含/user/的請求,當然請求用戶中心時就會觸發這個攔截器了

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

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("尚未登錄,調到登錄頁面");

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");

}

}

至此,簡單的springmvc攔截器就完成了。

總結

以上是生活随笔為你收集整理的Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。