将app1.war复制到tomcat\webapp目录下复制到root下,不会自动安装,而且filter的设置也没有设置啊

解决方案 »

  1.   

    补充:在JBuilder9自带的浏览器中运行(假定地址是http://localhost:8080/app1/login.jsp),结果是正确的,同时,我在IE中输入8080/app1/login.jsp,运行非常慢,不能出现结果,这是为什么呀?
      

  2.   

    有没有特别的js语句出问题呢?一个简单的办法就是用jb9建立一个最简单.jsp,再copy过去看一下有没有问题(估计是没有问题)。
      

  3.   

    IE浏览,用了一晚上才打开http://localhost:8080/app1/login.jsp,机器报虚拟内存不够,我想,这应该是程序有问题.但是在JBUILDER打开却很快,没有问题.
    只是一个简单的登陆过程:从数据库里读用户名,密码,检查用户身份.用了两个FILTER,一个是检查是否通过身份验证,一个是将编码改成GB2312
    public class SecurityServlet extends HttpServlet implements Filter {
      private FilterConfig filterConfig;
      //Handle the passed-in FilterConfig
      public void init(FilterConfig filterConfig) {
        this.filterConfig = filterConfig;
      }
      //Process the request/response pair
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
        try {
          String signOnPage="login.jsp";
          HttpServletRequest hreq=(HttpServletRequest) request;
          HttpServletResponse hres=(HttpServletResponse) response;      String currentURL=hreq.getRequestURI();
          int ctxPathLen=0;
          String ctxPath=hreq.getContextPath();
          if(ctxPath!=null)
           ctxPathLen=ctxPath.length();
          String targetURL=null;
          if(!currentURL.equals(ctxPath))
           targetURL=currentURL.substring(ctxPathLen+1,currentURL.length());
          else
           targetURL="";      if((targetURL!=null)&&(targetURL.equals("login.do"))){
            String userName = hreq.getParameter("username");
            String password=hreq.getParameter("psw");        HttpSession session=hreq.getSession(false);
            if(session!=null){
              session.invalidate();
            }
           session=hreq.getSession();       if(UserManager.login(userName,password)){
             session.setAttribute("logined",new Boolean(true));
             hres.sendRedirect("index.htm");
           }
           else{
             session.setAttribute("logined",new Boolean(false));
             hres.sendRedirect(signOnPage);
           }
           return;
        }    if(targetURL.equals(signOnPage)){
          filterChain.doFilter(request,response);
        }    HttpSession session=hreq.getSession();
        Boolean logined=(Boolean)session.getAttribute("logined");
        if(logined!=null){
          if(logined.booleanValue()==true){
            filterChain.doFilter(request,response);
            return;
          }
        }
        hres.sendRedirect(signOnPage);
        }
        catch(ServletException sx) {
          filterConfig.getServletContext().log(sx.getMessage());
        }
        catch(IOException iox) {
          filterConfig.getServletContext().log(iox.getMessage());
        }
      }
      //Clean up resources
      public void destroy() {
      }
    }
    --------------------------------------------------------------------public class encodingfiler extends HttpServlet implements Filter {
      private FilterConfig filterConfig;
      //Handle the passed-in FilterConfig
      public void init(FilterConfig filterConfig) {
        this.filterConfig = filterConfig;
      }
      //Process the request/response pair
      public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
        try {
         HttpServletRequest hreq =(HttpServletRequest) request;
         hreq.setCharacterEncoding("gb2312");     filterChain.doFilter(request,response);
        }
        catch(ServletException sx) {
          filterConfig.getServletContext().log(sx.getMessage());
        }
        catch(IOException iox) {
          filterConfig.getServletContext().log(iox.getMessage());
        }
      }
      //Clean up resources
      public void destroy() {
      }
    }---------------------------------------<web-app>
      <filter>
        <filter-name>encodingfiler</filter-name>
        <filter-class>kaohe.encodingfiler</filter-class>
      </filter>
      <filter>
        <filter-name>securityservlet</filter-name>
        <filter-class>kaohe.SecurityServlet</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>securityservlet</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      <filter-mapping>
        <filter-name>encodingfiler</filter-name>
        <url-pattern>*.do</url-pattern>
      </filter-mapping>
    </web-app>
      

  4.   

    打包之后先发布到jbuilder内置的tomcat,没问题的话再发布到你专用的tomcat.
      

  5.   

    你用Jbuilder的打包向导把Jbuilder下的Webapp打成一个war包,然后Copay到Tocmat的webapps下去 试试单都的Copy文件夹,可能会有些类没有Copy过去。
      

  6.   

    补充:找到错误地方了:SecurityServlet 这个过滤程序
    if(targetURL.equals(signOnPage)){
          filterChain.doFilter(request,response);
    //加上
          return;
        }
    没有RETURN就会出现死循环,重复调用SecurityServlet
    谢谢各位!
    再问一个问题:JSP项目做完了,如何放到别的装有TOMCAT的机器上,使之也能运行?
      

  7.   

    用Jbuilder的打包向导打成war文件,然后Copy到别的Tomcat下的webapps中,然后重新启动Tomcat服务就可以运行了。
      

  8.   

    哪用这么麻烦啊,既然JB9下能运行,那就用JB9自带的TOMCAT做为你的JSP服务器就是啦,不需COPY到别的TOMCAT里的。