由于很久没有从事JEE开发,在使用SSH开发一个小网站的时候,遇到一个小问题,需要请教指示。就是整个网站的JSP网页在没有登录的情况下不能对其他网页进行访问,这个功能是怎样实现的。我记着好像是使用Session来保存相关的登录信息,在加载网页的时候对Session中的值进行校验。但是不知道怎么实现,请各位大侠指教下。

解决方案 »

  1.   

    可以过滤~~~!!!
       也可以像你说的、把用户信息保存起来、!
    有些特殊页面、就在页面上把session值取出来、如果有值就给显示、没有值就叫用户登录!
      

  2.   

    首先先写个过滤器:
    package com.store.common.web.leach;import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.FilterChain;
    import javax.servlet.ServletException;
    import javax.servlet.FilterConfig;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;/**
     * @see 未登录用户的过滤器
     * @version 1.0
     */
    public class UserRole implements Filter {

    public void destroy() {

    } public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    HttpServletRequest request1 = (HttpServletRequest) request;
    HttpServletResponse response1 = (HttpServletResponse) response;
    if (null == request1.getSession().getAttribute("loginUser")) {// 登录用户保存在这个位置
    System.out.println("未登录访问");
    response1.sendRedirect(request1.getContextPath());
    } else {
    chain.doFilter(request, response);
    }
    } public void init(FilterConfig config) throws ServletException {

    }

    }然后修改web.xml的配置:
    <!-- 当用户访问到page和upload这两个文件夹的资源时,如果用户登录就直接弹出 -->
      <filter>
       <filter-name>UserRole</filter-name>
       <filter-class>com.store.common.web.leach.UserRole</filter-class>
      </filter>
      <filter-mapping>
       <filter-name>UserRole</filter-name>
       <url-pattern>/page/*</url-pattern>
      </filter-mapping>
      <filter-mapping>
       <filter-name>UserRole</filter-name>
       <url-pattern>/upload/*</url-pattern>
      </filter-mapping>最后重新启动服务器,打开浏览器试试,包你管用!
      

  3.   

       一般的都是在做项目时公司自己的框架中会自带这个功能,就是权限, 登录成功后框架会自动保存并封装用户信息,则访问页面时会经过过滤器判断是否有权限(不管是否登录,还有未登录的权限) ,在数据库中一般有几个表装着权限列表的。  但有些功能则是我们自己用代码控制就像 1L 说的查看用户是否存在SESSION 中。  不知道我这样回答你听的懂吗?
      

  4.   

    用过滤器,简单一点,登录后保存用户信息到session,再在每个页面includ一个判断session里是否有用户信息的jsp,就好了
      

  5.   

    把其他的页面放到WEB-INF里面。登录页面放外面
      

  6.   

    就在登录成功后给session一个值,之后判断该值是否存在就可以了。
      

  7.   

    用过滤器 在Action触发前进行拦截,通过获取上下文环境中的session,看session是否已经保存用户信息,如果没重定向到登录页面或者其它
      

  8.   

    用层的实现的话   struts 标签一偶服务器标签的   检查session里面的值 判断  显示与否
      

  9.   

    你可以放在WEB-INF文件夹下 在struts配置中把首页设置成可以直接访问 其他的链接都在首页上 这样别的网页就不能直接访问到了