①:使用Filter,判断用户名是否为空,为空的话返回登录画面。 1,web.xml: 1.<filter> 2. <filter-name>SecurityServlet</filter-name> 3. <filter-class>com.msm2.filter.MyFilter</filter-class> 4. </filter> 5. 6. <filter-mapping> 7. <filter-name>SecurityServlet</filter-name> 8. <url-pattern>/*</url-pattern> 9. </filter-mapping> 2,spring-mvc.xml: 1<bean id="loginController" class="com.msm2.controller.LoginController" /> 2.<bean id="mainController" class="com.msm2.controller.MainController" /> 3.<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 4. <property name="mappings"> 5. <props> 6. <prop key="login">loginController</prop> 7. <prop key="userLogin">mainController</prop> 8. </props> 9. </property> 10.</bean> package com.msm2.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; public class MyFilter extends HttpServlet implements Filter { private static final long serialVersionUID = 1L; private static final Logger LOGGER = Logger.getLogger(MyFilter.class); String encode = null; @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { arg0.setCharacterEncoding(encode); arg1.setCharacterEncoding(encode); HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; HttpSession session = request.getSession(true); String url=request.getRequestURI(); if (url.indexOf("login")<0){ // 不是login画面 System.out.println("不是login画面"); if (request.getParameter("userId") ==null || "".equals(request.getParameter("userId"))) { // 不是login画面并且用户名为null System.out.println("不是login画面并且用户名为null"); response.sendRedirect(request.getContextPath() + "/login"); } else { System.out.println("不是login画面但是用户名不为null"); // 不是login画面但是用户名不为null arg2.doFilter(arg0, arg1); } } else { // login画面 System.out.println("login画面"); arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig arg0) throws ServletException { encode = "utf-8"; } } 写的虽然简单,但是初步实现了目标,以后对Filter理解的更深,再进一步记录。