当用户没用登陆, 想跳到登陆后的页面时. 用过滤器处理这个请求.
最好是有注释的
package 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.HttpSession;
public class EncodingFilter implements Filter {
public void destroy() {
// 这里可以什么都不做
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession(false);
//看用户登陆没,假如你的User是用户类
User user=(User)session.getAttribute("...");//这里你之前要有session.serAttribute("...",arg)
//接下来是判断user是否为null,null即没有登陆
if(user!=null){你想把页面跳到那里}
else{你想把页面跳到那里}
filterChain.doFilter(request, response);//不要忘记这行
}
public void init(FilterConfig arg0) throws ServletException {
// 这里可以什么都不做
}
}
当用户没用登陆, 想跳到登陆后的页面时.
上面的是你的问题??
你根本不需要帐号密码查出一个USER的对象,只要它登陆了,user就不为null,给你写多点注释,剩下的要自己解决了!
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession(false);
//获得session,这个session是你之前就应该有的,没有它就不会创建
//看用户登陆没,假如你的User是用户类
User user=(User)session.getAttribute("...");//这里你之前要有session.serAttribute("...",arg)
//接下来是判断user是否为null,null即没有登陆
if(user!=null){你想把页面跳到那里} //如果user不为null,就表示用户已经登陆了
else{你想把页面跳到那里} //user为null用户没有登陆,你可以在这里把它跳转到登陆页面
filterChain.doFilter(request, response);//不要忘记这行
}
记得做完Filter要在web.xml上配置