在JAVA WEB中,怎么控制访问JSP的权限呢,也就是所需要登陆了才能访问,否则跳到指定的页面。如果用session判断的话,不会是在每张页面上都要判断吧,那如果有很多页面的话就不现实了。请问那么大多数项目中是怎么控制这种权限的呢?

解决方案 »

  1.   

    用一个核心的servlet分发请求,对某些url进行权限控制,这只在一个地方就可以处理了
      

  2.   

    struts的继承RequestProcessor类,重写processPreprocess()方法就行了,每一个action都要经过他中转,其他的情况类似
      

  3.   

    每个页面写一个include在这个页面写入session。
      

  4.   

    怎么控制访问JSP的权限呢,
    也就是所需要登陆了才能访问
    这两个可不是一个东西。1:如果你要控制jsp的访问权限,那么哪些url才是可以访问的呢。[一般来说会定义在db中作为模块的属性]       在filter中得到请求路径,查看是否有权限访问,有则,没有。就跳转到相关提示页面2: 如果是只有登陆了才能访问,那就更简单了。直接访问session来进行判断。同样是用filter
      

  5.   

    用SEVERLET 进行分发请求 首先要截取用户要访问的所有页面URL  然后去进行判断 有则进入 无则返回,这类的代码在百度上有的  我看到过 你去找找吧
      

  6.   

    用过滤器,代码如下:package huawei;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;public class FileLogins implements Filter { public void destroy() {
    // TODO Auto-generated method stub } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpreq = (HttpServletRequest) request;
    HttpServletResponse httpresp = (HttpServletResponse) response;
    //String path = ((HttpServletRequest) request).getServletPath();
    int n1 = httpreq.getServletPath().indexOf("index.jsp"); 
    if (n1 != -1)
    chain.doFilter(request, response);
    else {
    HttpSession session = httpreq.getSession();
    String username = (String) session.getAttribute("username");
    if (username == null)
    httpresp.sendRedirect("/FileLogin/index.jsp");
    else
    chain.doFilter(request, response);
    } } public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub }}