就是一个LOGIN.JSP进行登陆验证,成功后显示数据SHOW.JSP.如何防止直接进入SHOW.JSP我现在的方法是在LOGIN.JSP验证通过往SESSION中放属性.
然后在SHOW.JSP再SESSION中取出来,如果没有则没有成功登陆.FORWARD到LOGIN.JSP..这样是不是很麻烦啊?大家有什么技巧啊,在项目中怎么做的啊,这很常用啊..感谢.
然后在SHOW.JSP再SESSION中取出来,如果没有则没有成功登陆.FORWARD到LOGIN.JSP..这样是不是很麻烦啊?大家有什么技巧啊,在项目中怎么做的啊,这很常用啊..感谢.
解决方案 »
- svn报错
- jsp 下拉列表 事件
- struts2页面保护
- fckeditor 绑定textarea后获取textarea的值
- 求助,http 200状态码,
- 请问浏览器关于js文件的缓存机制是怎样的?我能设置缓存过期时间吗?
- 新手请教。有一些java源文件在编译时老同时import的包不存在,可在jcreator中的包视图中已经看到了啊!
- 如何实现jsp页面的树型菜单,类似microsoft页面的??
- 这是什么问题?难道是我的错?
- jsp 执行sql的问题,头痛不已,再线等,急急!!!help!!!!
- 【错误】输出提交之后不能创建Session (Cannot create a session after the response has been committed)
- 今天答辩,导师问到一个这样的问题~
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import com.ydzj.pojo.*;public class Filter1 implements Filter {
String LOGIN_PAGE;
protected FilterConfig filterConfig;
public Filter1() {
LOGIN_PAGE = "../index.jsp";
} public void doFilter(ServletRequest servletrequest,
ServletResponse servletresponse,
FilterChain filterchain) throws IOException,
ServletException {
HttpServletRequest request = (HttpServletRequest) servletrequest;
HttpServletResponse response = (HttpServletResponse)
servletresponse;
HttpSession session = request.getSession(true);
try {
//通过验证时在session中存的一个标志
UserBean ub = (UserBean) session.getAttribute("userinfo");
if (ub != null) {
filterchain.doFilter(servletrequest, servletresponse);
} else {
response.sendRedirect(LOGIN_PAGE);
//System.out.println("被拦截一个未认证的请求");
}
} catch (Exception exception) {
exception.printStackTrace();
}
} public void setFilterConfig(FilterConfig filterconfig) {
filterConfig = filterconfig;
} public void destroy() {
filterConfig = null;
} public void init(FilterConfig filterconfig) throws ServletException {
filterConfig = filterconfig;
}
}
我也是这么做的,不过有个问题也一直弄不懂,就是过滤器的设置范围的问题,应该怎么设置呢,要是设成任何文件都过滤,则login.jsp本身也过滤,则会陷入无限死循环中, 要是只过滤.jsp文件,还是不行,login.jsp还是被过滤,然后就是一直login的加载画面.....要是将login.jsp改名为login.html,则有点勉强,因为这似乎不是好办法.