web.xml
dispatcher-servlet.xml
index.jsp
success.jsp
failure.jsp
LoginController.java
LoginInterceptor.java
EncodingInterceptor.java
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
- version="3.1">
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/applicationContext.xml</param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <servlet>
- <servlet-name>dispatcher</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>dispatcher</servlet-name>
- <url-pattern>*.do</url-pattern>
- </servlet-mapping>
- <error-page>
- <error-code>404</error-code>
- <location>/error404.jsp</location>
- </error-page>
- <error-page>
- <error-code>500</error-code>
- <location>/error500.jsp</location>
- </error-page>
- </web-app>
dispatcher-servlet.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="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">
- <!-- 在实际开发中通常都需配置 mvc:annotation-driven标签,这个标签是开启注解 -->
- <mvc:annotation-driven></mvc:annotation-driven>
- <context:component-scan base-package="com.pumpkin"/>
- <!-- 视图解析器ViewResolver -->
- <!-- 解析jsp,默认支持jstl -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
- <property name="prefix" value="/" />
- <property name="suffix" value=".jsp" />
- </bean>
- <!-- 注册拦截器 -->
- <mvc:interceptors>
- <mvc:interceptor>
- <mvc:mapping path="/login.do"/>
- <bean class="com.pumpkin.interceptor.LoginInterceptor"></bean>
- </mvc:interceptor>
- <mvc:interceptor>
- <mvc:mapping path="/*"/>
- <bean class="com.pumpkin.interceptor.EncodingInterceptor"></bean>
- </mvc:interceptor>
- </mvc:interceptors>
- </beans>
index.jsp
- <%--
- Created by IntelliJ IDEA.
- User: Administrator
- Date: 2017/6/18
- Time: 17:27
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>SpringMVC拦截器</title>
- </head>
- <body>
- <%
- System.out.println("===index.jsp===");
- %>
- <form action="login.do" method="post">
- 用户名:<input type="text" name="username"/>
- <br/>
- 密码:<input type="password" name="password"/>
- <br/>
- <input type="submit" value="提交"/>
- </form>
- </body>
- </html>
success.jsp
- <%--
- Created by IntelliJ IDEA.
- User: Administrator
- Date: 2017/6/17
- Time: 22:47
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>成功页面</title>
- </head>
- <body>
- <%
- System.out.println("===success.jsp===");
- %>
- ${username},登陆成功!
- </body>
- </html>
failure.jsp
- <%--
- Created by IntelliJ IDEA.
- User: Administrator
- Date: 2017/6/17
- Time: 22:47
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>失败页面</title>
- </head>
- <body>
- <%
- System.out.println("===failure.jsp===");
- %>
- 登录失败!
- </body>
- </html>
LoginController.java
- package com.pumpkin.controller;
- import com.pumpkin.entity.UserBean;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RequestPart;
- import org.springframework.web.servlet.ModelAndView;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- @Controller
- public class LoginController{
- @RequestMapping(value = "/login.do", method = RequestMethod.POST)
- public String login(HttpServletRequest request, HttpServletResponse response, ModelMap model){
- System.out.println("===LoginController===login===start===");
- String username = (String) request.getSession().getAttribute("username");
- String password = (String) request.getSession().getAttribute("password");
- if ("admin".equals(username) && "admin".equals(password)) {
- // UserBean user = new UserBean();
- // user.setUsername(username);
- // user.setPassword(password);
- model.addAttribute("username",username);
- return "success";
- }
- System.out.println("===LoginController===login===end===");
- return "failure";
- }
- }
LoginInterceptor.java
- package com.pumpkin.interceptor;
- import com.pumpkin.entity.UserBean;
- import org.springframework.web.servlet.HandlerInterceptor;
- import org.springframework.web.servlet.ModelAndView;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- public class LoginInterceptor implements HandlerInterceptor {
- @Override
- public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
- System.out.println("===LoginInterceptor===preHandle===start===");
- HttpServletRequest request = (HttpServletRequest) httpServletRequest;
- HttpServletResponse response = (HttpServletResponse) httpServletResponse;
- HttpSession session = request.getSession();
- String username = request.getParameter("username");
- String password = request.getParameter("password");
- if (username != null) {
- session.setAttribute("username",username);
- session.setAttribute("password",password);
- return true;
- }
- request.getRequestDispatcher("index.jsp").forward(request,response);
- System.out.println("===LoginInterceptor===preHandle===end===");
- return false;
- }
- @Override
- public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
- System.out.println("===LoginInterceptor===postHandle===");
- }
- @Override
- public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
- System.out.println("===LoginInterceptor===afterCompletion===");
- }
- }
EncodingInterceptor.java
- package com.pumpkin.interceptor;
- import org.springframework.web.portlet.HandlerInterceptor;
- import org.springframework.web.servlet.ModelAndView;
- public class EncodingInterceptor implements org.springframework.web.servlet.HandlerInterceptor {
- @Override
- public boolean preHandle(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, Object o) throws Exception {
- System.out.println("===EncodingInterceptor===preHandle===atart===");
- httpServletRequest.setCharacterEncoding("UTF-8");
- System.out.println("===EncodingInterceptor===preHandle===end===");
- return true;
- }
- @Override
- public void postHandle(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
- System.out.println("===EncodingInterceptor===postHandle===");
- }
- @Override
- public void afterCompletion(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
- System.out.println("===EncodingInterceptor===afterCompletion===");
- }
- }