本人用SSH框架开发一个网站。遇到两个问题。
1.我的网头部跟底部还有右边的内容。大部分都是相同的。在JSP里面已经提取出来
(例如:<%@ include file="bottom.jsp" %>)。在Action里面要如何把相同的内容提取出来。2.我有两个登录界面。一个是前台用户登录,一个是后台管理员登录,该如何做才能验证用户是否登录。public class ValidateFilter extends HttpServlet implements Filter {       public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest)arg0;
HttpServletResponse response = (HttpServletResponse)arg1;
//验证用户是否登录
if(null == request.getSession().getAttribute("sysUser")){
response.sendRedirect("/web/web/account/login.jsp");
}
if(null == request.getSession().getAttribute("sysAdmin")){
response.sendRedirect("/web/backstage/login.jsp");
}


arg2.doFilter(arg0, arg1);
}注释掉的是后台的验证。web.xml下的内容
  <filter-mapping>
    <filter-name>ValidateFilter</filter-name>
    <url-pattern>/web/user/*</url-pattern>
    <url-pattern>/backstage/admin/*</url-pattern>
    
  </filter-mapping>只有一个的情况下是正常转到登录界面的,两个一起就不行了。
JavaSSH面向对象框架登录

解决方案 »

  1.   

    对于第二个问题,可以使用cookie或是session记录用户的登录状态。
      

  2.   

    sysUser和sysAdmin,不管你登录那个应该有一个为空吧,你调试一下看看。你写两个过滤器还好。
      

  3.   

    第二个问题已经解决了。多加了一个过虑器。第一个问题一楼说的Action里面的静态的可以分出来。但问题里面不是静态的。而是动态的要访问数据库里的数据。如下。 public ActionForward doGetHome(ActionMapping mapping,ActionForm from,HttpServletRequest request,
    HttpServletResponse response){

    List menuList = menuBiz.getMenu();//头部导航
    request.setAttribute("menu",menuList);
    BaseData baseData = baseDataBiz.getBase();//基础资料
    request.setAttribute("base", baseData);
    List bannerList = bannerBiz.getBanner(1);//主图切换
    request.setAttribute("banner",bannerList);
    int bannerCount = bannerBiz.getBannerCount(1);//主图切换个数
    request.setAttribute("count",String.valueOf(bannerCount));
    List textAds = textAdsBiz.getTextAds("主页",6);//文字广告
    request.setAttribute("ads", textAds);
    List topArticle = articleBiz.getNewArticle(4,11,"publishDate");//返回java最新十条记录
    request.setAttribute("topArticle", topArticle);
    List hotArticle = articleBiz.getNewArticle(4,11,"");//返回java最热的十条记录

    return mapping.findForward("home");
    }像头部导航,基础数据。这两个都是每个页面都要有的。还有底部的还没写。。
      

  4.   

    等你搞完这个可以试下用security来控制权限,不再是自己手动控制,那个重用度太低了,,来我博客看那个置顶文章
      

  5.   

    修改了头部或底部的数据 可以 直接修改缓存的 缓存管理jar 网上多的是 像 ehcache 或memcache 都行···