java登录拦截器

1.定义拦截器实现接口HttpServletRequest

public class LoginInterceptor implements HandlerInterceptor {

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		System.out.println("进入登录拦截器");
		//放行登录操作
		String uri= request.getRequestURI();
		if(uri.indexOf("login")>=0){
			return true;
		}
		//获取session对象
		HttpSession session = request.getSession();
		//登录成功是的User
		Object user = session.getAttribute("user");
		if(user!=null){
			return true;
		}else{
			request.getRequestDispatcher("/jsp/login.jsp").forward(request, response);;
			return false;
		}
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// TODO Auto-generated method stub

	}

	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		// TODO Auto-generated method stub

	}

}

2.在SpringMvc.xml上配置拦截器

<!-- 配置登录拦截器 -->
	<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/**"/>
			<bean class="com.yh.interceptor.LoginInterceptor"></bean>
		</mvc:interceptor>	
	</mvc:interceptors>

3.编写登录的controller方法

@Controller
public class LoginController {
	@Autowired
	private UserService userService;
	@RequestMapping("/login")
	public String loginController(TbUser user, HttpSession session,Model model){
		//获取登录页面的User
		TbUser userLogin =	userService.findUserByName(user);
		//将登录页面的User放入session中
		if(userLogin!=null){
			session.setAttribute("user", userLogin);
			return "redirect:/item/all.action";
		}else{
			model.addAttribute("user", user);
			return "/login";
		}
		
	}
	//退出
	@RequestMapping("/logout")
	@ResponseBody
	public void logoutController(HttpSession session){
		session.invalidate();
		
	}
}
//这里通过注解的方式将controller类交给Spring管理还有属性的注入以及页面的跳转

4.编写jsp即可

<form action="${pageContext.request.contextPath}/login" method="post">
	用户名:<input type="text" name="username" value="${user.userName }"><br>
	密码:<input type="password" name="address"><br>
	<input type="submit" value="提交" >
</form>

注意在写拦截器时一定不能阻碍登录拦截器的进入

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值