package com.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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/*
*TestFilter 在web.xml中配置说明
*
*
*
*
*
*
*配置需要经过login.jsp登陆过才能访问的区域
*目前配置方式仅仅是在用户访问product.jsp的时候才走过滤器,可以配置/*,/user/*等。
*
*
*
*
* 韩卫召
*
*/
public class TestFilter implements Filter {
public void destroy() {
//过滤器销毁,一般是释放资源
}
/**
* 韩卫召
* 某些url需要登陆才能访问(session验证过滤器)
*/
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
HttpSession session=request.getSession();
//userinfo,需要通过login.jsp 登陆后向session中写入用户信息,标示用户已经登陆
if(session.getAttribute("userinfo")==null){
String errors = "请先登陆,再访问此服务!";
request.setAttribute("errors", errors);
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else{
arg2.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
//初始化操作,读取web.xml中过滤器配置的初始化参数,满足你提的要求不用此方法
}
}
把product.jsp放在/WEB-INF/下面就不能直接访问到了。
不用过滤器吧,login.jsp登陆,提交到指定的servlet,然后返回product.jsp
两种做法 我发给你···