在上次框架中修改
创建filter包
在filter包下添加LoginFilter类
package com.zr0707.filter;
import com.zr0707.bean.User;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpServletResponse response=(HttpServletResponse)servletResponse;
HttpSession session=request.getSession();
User user=(User)session.getAttribute("user");
String uri=request.getRequestURI();
System.out.println(uri.indexOf("login.do"));
if (user==null && uri.indexOf("login.do")==-1){
response.sendRedirect(request.getContextPath()+"/");
}else {
filterChain.doFilter(request,response);
}
}
@Override
public void destroy() {
}
}
添加thread1.java类
package com.zr0707;
public class Thread1 extends Thread{
@Override
public void run(){
for (int i=0;i<100;i++){
System.out.println(Thread.currentThread().getName()+"------"+i);
}
}
}
在web.xml中添加代码
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>com.zr0707.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
在usercontroller下修改login代码
@RequestMapping("/login.do")
public ModelAndView login(User user, HttpSession session){
boolean flag=userService.login(user.getName(),user.getPassword());
ModelAndView modelAndView=new ModelAndView();
if(flag){
session.setAttribute("user",user);
modelAndView.setViewName("../ok");
}else {
modelAndView.setViewName("../failure");
}
return modelAndView;
}