日期:2014-05-18  浏览次数:20671 次

如何把filter改写成spring mvc里面的interceptor
之前写的filter,现在想转换成框架里面的interceptor,应该怎么改?XML文件要怎么配。

package mypack;

import java.io.IOException;
import java.net.URLEncoder;

import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
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;

public class OnlineFilter extends HttpServlet implements javax.servlet.Filter {

private static final long serialVersionUID = 1L;


public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws ServletExceptionIOException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession();

String userId = request.getParameter("UserID");
String result = request.getParameter("Result");
String uri = ((HttpServletRequest) request).getRequestURI();

if ("0".equals(result) && null != userId) {
User user = new User();
user.setUserId(userId);
session.setAttribute("user", user);
req.getSession().setAttribute("user", user);
req.getSession().setAttribute("UserID", userId);
}

if (session.getAttribute("user") == null) {

res.sendRedirect("http://127.0.0.1:8080/index.do");
System.out.println(uri);
return;
} else {
System.out.println("user has logged in.");
}

}

public void init(FilterConfig filterConfig) {
System.out.println("OnlineFilter initialized.");
}
public void destroy() {
System.out.println("OnlineFilter destroied");
}

}
------解决方案--------------------
spring的就是return true或者false呗   代码几乎不用动