日期:2014-05-17  浏览次数:20837 次

如何防止用户跳过登录页面直接访问要登陆后才可以访问的页面呢?
如何防止用户跳过登录页面直接访问要登陆后才可以访问的页面呢?都说用Struts2的拦截器,请问您们常用的是这个吗? 另外,如何进行权限管理?某个页面只有经理才可访问这该怎么做?

谢谢了

------解决方案--------------------
用filter结合session
例如:
public class CheckStuLoginFilter implements Filter {

public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletResponse resp = (HttpServletResponse) response;
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
Stuinfo stuinfo = (Stuinfo) session.getAttribute("stuinfo");
String requestURI = req.getRequestURI().substring(
req.getRequestURI().indexOf("/", 1),
req.getRequestURI().length());
if (!requestURI.equals("/index.jsp")) {
if (stuinfo == null) {
resp.sendRedirect(req.getContextPath() + "/index.jsp");
return;
}
}
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}

}
------解决方案--------------------
至于权限其实也是一样的,在数据库中给每个用户一个权限码,数字什么的都可以。在访问的时候,可以拦截器中的session中的读取这个权限码,如果是“经理”,通过。否则通过拦截器拦截到你知道的页面即可。