SpringMVC拦截器实现登录

web.xml 
Xml代码 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"  
  3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"  
  5.          version="3.1">  
  6.     <context-param>  
  7.         <param-name>contextConfigLocation</param-name>  
  8.         <param-value>/WEB-INF/applicationContext.xml</param-value>  
  9.     </context-param>  
  10.     <listener>  
  11.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  12.     </listener>  
  13.     <servlet>  
  14.         <servlet-name>dispatcher</servlet-name>  
  15.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  16.         <load-on-startup>1</load-on-startup>  
  17.     </servlet>  
  18.     <servlet-mapping>  
  19.         <servlet-name>dispatcher</servlet-name>  
  20.         <url-pattern>*.do</url-pattern>  
  21.     </servlet-mapping>  
  22.   
  23.     <error-page>  
  24.         <error-code>404</error-code>  
  25.         <location>/error404.jsp</location>  
  26.     </error-page>  
  27.   
  28.     <error-page>  
  29.         <error-code>500</error-code>  
  30.         <location>/error500.jsp</location>  
  31.     </error-page>  
  32.   
  33. </web-app>  


dispatcher-servlet.xml 
Xml代码 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xmlns:context="http://www.springframework.org/schema/context"  
  5.        xmlns:mvc="http://www.springframework.org/schema/mvc"  
  6.        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">  
  7.   
  8.     <!-- 在实际开发中通常都需配置 mvc:annotation-driven标签,这个标签是开启注解 -->  
  9.     <mvc:annotation-driven></mvc:annotation-driven>  
  10.   
  11.     <context:component-scan base-package="com.pumpkin"/>  
  12.   
  13.     <!-- 视图解析器ViewResolver -->  
  14.     <!-- 解析jsp,默认支持jstl -->  
  15.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  16.         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>  
  17.         <property name="prefix" value="/" />  
  18.         <property name="suffix" value=".jsp" />  
  19.     </bean>  
  20.   
  21.     <!-- 注册拦截器 -->  
  22.     <mvc:interceptors>  
  23.         <mvc:interceptor>  
  24.             <mvc:mapping path="/login.do"/>  
  25.             <bean class="com.pumpkin.interceptor.LoginInterceptor"></bean>  
  26.         </mvc:interceptor>  
  27.         <mvc:interceptor>  
  28.             <mvc:mapping path="/*"/>  
  29.             <bean class="com.pumpkin.interceptor.EncodingInterceptor"></bean>  
  30.         </mvc:interceptor>  
  31.     </mvc:interceptors>  
  32.       
  33. </beans>  


index.jsp 
Jsp代码 
  1. <%--  
  2.   Created by IntelliJ IDEA.  
  3.   User: Administrator  
  4.   Date: 2017/6/18  
  5.   Time: 17:27  
  6.   To change this template use File | Settings | File Templates.  
  7. --%>  
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  9. <html>  
  10.   <head>  
  11.     <title>SpringMVC拦截器</title>  
  12.   </head>  
  13.   <body>  
  14.   <%  
  15.     System.out.println("===index.jsp===");  
  16.   %>  
  17.   <form action="login.do" method="post">  
  18.     用户名:<input type="text" name="username"/>  
  19.     <br/>  
  20.     密码:<input type="password" name="password"/>  
  21.     <br/>  
  22.     <input type="submit" value="提交"/>  
  23.   </form>  
  24.   </body>  
  25. </html>  


success.jsp 
Jsp代码 
  1. <%--  
  2.   Created by IntelliJ IDEA.  
  3.   User: Administrator  
  4.   Date: 2017/6/17  
  5.   Time: 22:47  
  6.   To change this template use File | Settings | File Templates.  
  7. --%>  
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  9. <html>  
  10. <head>  
  11.     <title>成功页面</title>  
  12. </head>  
  13. <body>  
  14. <%  
  15.     System.out.println("===success.jsp===");  
  16. %>  
  17. ${username},登陆成功!  
  18. </body>  
  19. </html>  


failure.jsp 
Jsp代码 
  1. <%--  
  2.   Created by IntelliJ IDEA.  
  3.   User: Administrator  
  4.   Date: 2017/6/17  
  5.   Time: 22:47  
  6.   To change this template use File | Settings | File Templates.  
  7. --%>  
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>  
  9. <html>  
  10. <head>  
  11.     <title>失败页面</title>  
  12. </head>  
  13. <body>  
  14. <%  
  15.     System.out.println("===failure.jsp===");  
  16. %>  
  17. 登录失败!  
  18. </body>  
  19. </html>  


LoginController.java 
Java代码 
  1. package com.pumpkin.controller;  
  2.   
  3. import com.pumpkin.entity.UserBean;  
  4. import org.springframework.stereotype.Controller;  
  5. import org.springframework.ui.ModelMap;  
  6. import org.springframework.web.bind.annotation.RequestMapping;  
  7. import org.springframework.web.bind.annotation.RequestMethod;  
  8. import org.springframework.web.bind.annotation.RequestParam;  
  9. import org.springframework.web.bind.annotation.RequestPart;  
  10. import org.springframework.web.servlet.ModelAndView;  
  11.   
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletResponse;  
  14. import javax.servlet.http.HttpSession;  
  15.   
  16. @Controller  
  17. public class LoginController{  
  18.     @RequestMapping(value = "/login.do", method = RequestMethod.POST)  
  19.     public String login(HttpServletRequest request, HttpServletResponse response, ModelMap model){  
  20.   
  21.         System.out.println("===LoginController===login===start===");  
  22.   
  23.         String username = (String) request.getSession().getAttribute("username");  
  24.         String password = (String) request.getSession().getAttribute("password");  
  25.   
  26.         if ("admin".equals(username) && "admin".equals(password)) {  
  27. //            UserBean user = new UserBean();  
  28. //            user.setUsername(username);  
  29. //            user.setPassword(password);  
  30.             model.addAttribute("username",username);  
  31.             return "success";  
  32.         }  
  33.         System.out.println("===LoginController===login===end===");  
  34.         return "failure";  
  35.     }  
  36. }  


LoginInterceptor.java 
Java代码 
  1. package com.pumpkin.interceptor;  
  2.   
  3. import com.pumpkin.entity.UserBean;  
  4. import org.springframework.web.servlet.HandlerInterceptor;  
  5. import org.springframework.web.servlet.ModelAndView;  
  6.   
  7. import javax.servlet.http.HttpServletRequest;  
  8. import javax.servlet.http.HttpServletResponse;  
  9. import javax.servlet.http.HttpSession;  
  10.   
  11. public class LoginInterceptor implements HandlerInterceptor {  
  12.     @Override  
  13.     public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {  
  14.         System.out.println("===LoginInterceptor===preHandle===start===");  
  15.         HttpServletRequest request = (HttpServletRequest) httpServletRequest;  
  16.         HttpServletResponse response = (HttpServletResponse) httpServletResponse;  
  17.   
  18.         HttpSession session = request.getSession();  
  19.   
  20.         String username = request.getParameter("username");  
  21.         String password = request.getParameter("password");  
  22.   
  23.         if (username != null) {  
  24.             session.setAttribute("username",username);  
  25.             session.setAttribute("password",password);  
  26.             return true;  
  27.         }  
  28.         request.getRequestDispatcher("index.jsp").forward(request,response);  
  29.         System.out.println("===LoginInterceptor===preHandle===end===");  
  30.         return false;  
  31.     }  
  32.   
  33.     @Override  
  34.     public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {  
  35.         System.out.println("===LoginInterceptor===postHandle===");  
  36.     }  
  37.   
  38.     @Override  
  39.     public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {  
  40.         System.out.println("===LoginInterceptor===afterCompletion===");  
  41.     }  
  42. }  


EncodingInterceptor.java 
Java代码 
  1. package com.pumpkin.interceptor;  
  2.   
  3. import org.springframework.web.portlet.HandlerInterceptor;  
  4. import org.springframework.web.servlet.ModelAndView;  
  5.   
  6. public class EncodingInterceptor implements org.springframework.web.servlet.HandlerInterceptor {  
  7.     @Override  
  8.     public boolean preHandle(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, Object o) throws Exception {  
  9.         System.out.println("===EncodingInterceptor===preHandle===atart===");  
  10.         httpServletRequest.setCharacterEncoding("UTF-8");  
  11.         System.out.println("===EncodingInterceptor===preHandle===end===");  
  12.         return true;  
  13.     }  
  14.   
  15.     @Override  
  16.     public void postHandle(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {  
  17.         System.out.println("===EncodingInterceptor===postHandle===");  
  18.     }  
  19.   
  20.     @Override  
  21.     public void afterCompletion(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {  
  22.         System.out.println("===EncodingInterceptor===afterCompletion===");  
  23.     }  
  24. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值