我有半年多没接触java了,不知道java现在发展得怎样了?

解决方案 »

  1.   

    此页源代码:
    而且连接池已检查过了,没有问题啊?
    <html>
    <head>
    <title>管理界面</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style type="text/css">
    <!--
    a            { color: #0000FF; text-decoration: none }
    a:link       { text-decoration: none; color: #0000FF; font-family: "宋体" }
    a:visited    { text-decoration: none; color: #0000FF; font-family: "宋体" }
    a:hover      { text-decoration: underline; color: #FF0000 }
    a:active     { text-decoration: underline; color: #FF0000 }
    body {  font-family: "宋体"; font-size: 9pt}
    table {  font-family: "宋体"; font-size: 9pt}
    -->
    </style>
    </head><body bgcolor="#FFFFFF" text="#000000">
    <div align="center">管理界面
      <form name="form1" method="post" action="addadmin.jsp">
        添加管理员
        <input type="text" name="adminname" size="20" maxlength="20">
        <input type="submit" name="pub_adda" value="添加">
        <input type="hidden" name="action" value="addadmin">
      </form>
      
      <table width="500" border="0" cellpadding="1" cellspacing="1">
        <tr bgcolor="#B6B7C9"> 
          <td width="43"> 
            <div align="center">ID</div>
          </td>
          <td width="93"> 
            <div align="center">用户名</div>
          </td>
          <td width="68"> 
            <div align="center">Super</div>
          </td>
          <td width="68"> 
            <div align="center">主版区管理</div>
          </td>
          <td width="68"> 
            <div align="center">公告发布</div>
          </td>
          <td width="68"> 
            <div align="center">用户管理</div>
          </td>
          <td width="70"> 
            <div align="center">修改</div>
          </td>
        </tr>
         
      </table>
      <hr width="500">
      <form name="addb" method="post" action="addboard_ok.jsp">
        <table width="272" border="0" align="center">
          <tr> 
            <td colspan="2"> 
              <div align="center">添加版区</div>
            </td>
          </tr>
          <tr> 
            <td width="90"> 
              <div align="right">名称(中):</div>
            </td>
            <td width="172"> 
              <input type="text" name="boardname" size="20" maxlength="20">
            </td>
          </tr>
          <tr> 
            <td width="90"> 
              <div align="right">名称(英):</div>
            </td>
            <td width="172"> 
              <input type="text" name="eboardname" size="20" maxlength="20">
            </td>
          </tr>
          <tr> 
            <td width="90"> 
              <div align="right">斑竹:</div>
            </td>
            <td width="172"> 
              <input type="text" name="bmaster" size="20" maxlength="20">
            </td>
          </tr>
          <tr> 
            <td width="90"> 
              <div align="right">版区属性:</div>
            </td>
            <td width="172"> 
              <select name="attrib">
                <option value="1">中文版区</option>
                <option value="2">英文版区</option>
              </select>
            </td>
          </tr>
          <tr> 
            <td width="90"> 
              <div align="right">序:</div>
            </td>
            <td width="172"> 
              <input type="text" name="xu" size="3" maxlength="3">
            </td>
          </tr>
          <tr> 
            <td colspan="2"> 
              <div align="center"> 
                <input type="submit" name="pub_addb" value="添加">
                <input type="reset" name="Submit2" value="重填">
              </div>
            </td>
          </tr>
        </table>
      </form>
      <table width="371" border="0" cellpadding="1" cellspacing="1">
        <tr bgcolor="#B6B7C9"> 
          <td width="161"> 
            <div align="center"><font color="#5E6180"><b>版区名称</b></font></div>
          </td>
          <td width="155"> 
            <div align="center"><font color="#5E6180"><b>斑竹</b></font></div>
          </td>
          <td width="45"> 
            <div align="center"><font color="#5E6180"><b>删除</b></font></div>
          </td>
        </tr>
        
      </table>
    </div>
    <p><CENTER><a href="logout.jsp">退出系统</a></CENTER></p>
    </body>
    </html>
      

  2.   

    由于不能一次全发,分为三部分,程序的第一部分;
    <%@ page language="java" %>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.io.*" %> 
    <%@ page import="java.util.*" %>
    <jsp:useBean id="DBconnBean" scope="page" class="db.DbConnection" />
    <jsp:useBean id="ReOutputBean" scope="page" class="db.ReOutput" />
    <%@ page contentType="text/html;charset=gb2312" %><%
    String ID = null;
    String name = null;
    String nick = null;
    String post = null;
    ID = (String) session.getValue("ID");
    name = (String) session.getValue("name");
    nick =(String) session.getValue("nick");
    post = (String) session.getValue("post");if (ID!=null && name!=null && nick!=null) {
      DBconnBean.openConnection();
      String SQL = "";
      ResultSet rs;
      String bid = request.getParameter("bid");
    // by zzl at 2002.03.02
    bid =db.DbConnection.bytes2gb(bid);%>
    <html>
    <head>
    <title>虚拟社区</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <style>
    <!--
    a            { color: #0000FF; text-decoration: none }
    a:link       { text-decoration: none; color: #0000FF; font-family: 宋体 }
    a:visited    { text-decoration: none; color: #0000FF; font-family: 宋体 }
    a:hover      { text-decoration: underline; color: #FF0000 }
    a:active     { text-decoration: underline; color: #FF0000 }
    body         { font-size: 14px }
    table        { font-size: 14px }
    .bt { font-family: 宋体; font-size: 9pt }
    -->
    </style>
    <script language="JavaScript" src="win.js"></script>
    </head><body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0">
    <%
      int usuper = 0;
      int ubulletin = 0;
      SQL = "select super,bulletin from adminuser where UID="+ ID;
      rs =  DBconnBean.executeQuery(SQL);
      if (rs.next()) {
        usuper = rs.getInt("super");
        ubulletin = rs.getInt("bulletin");
      }
      rs.close();  if (bid != null && bid.length()>0) {
      int boardID = 0;
      String boardsname = "";
      String eboardsname = "";
      String bsmaster = "";
      String boardgg = "";
      int attrib = 1;
      boolean imaster = false;
      SQL = "select * from boards where ID="+ bid;
      rs =  DBconnBean.executeQuery(SQL);
      if (rs.next()) {
        boardID = rs.getInt("boardID");
        boardsname = rs.getString("boardsname");
    // by zzl at 2002.03.02
    boardsname =db.DbConnection.bytes2gb(boardsname);
        eboardsname = rs.getString("eboardsname");
    // by zzl at 2002.03.02
    eboardsname =db.DbConnection.bytes2gb(eboardsname);
    bsmaster = rs.getString("bsmaster");
    // by zzl at 2002.03.02
    bsmaster =db.DbConnection.bytes2gb(bsmaster);
    boardgg = rs.getString("boardgg");
    // by zzl at 2002.03.02
    boardgg =db.DbConnection.bytes2gb(boardgg);
        attrib = rs.getInt("attrib");
      }
      rs.close();  StringTokenizer masterok = new StringTokenizer(bsmaster,",");
      //String token[] = new String[4];
      //int i = 0;
      
      while(masterok.hasMoreTokens()) {
       if (name.equals(masterok.nextToken())) {
        imaster = true;
       }
      //token[i] = tok.nextToken();
      //i++;
      }  String echomaster = "";
      String echoname = "";
      StringTokenizer echomasters = new StringTokenizer(bsmaster,",");
      //String token[] = new String[4];
      //int i = 0;
      

  3.   

    程序的第二部分:
      while(echomasters.hasMoreTokens()) {
         echoname = echomasters.nextToken();
         echomaster = echomaster + "<a href='userinfo.jsp?uname="+ echoname +"'>"+ echoname +"</a>,";
       }
     
      
       // if (bsmaster.equals(name)) {
     //   imaster = true;
    //  }  int i;
      int allCol = 0;
      int ipage = 20; //分页单位
      int allpage = 1; //总页数
      int pages = 1; //接受的页码变量
      int cpage = 1; //当前页
      int spage = 1; //开始页  String pagesql = "select count(*) as total from forum where board = "+ bid +" and new=1";
      //取总文章数
      ResultSet pagers = DBconnBean.executeQuery(pagesql);
      if (pagers.next()) {
      allCol = pagers.getInt("total");
      }
      pagers.close();  //获得总页面数
      allpage = (int)Math.ceil((allCol + ipage-1) / ipage);  //判断参数pages是否为空
      if (request.getParameter("pages")==null || request.getParameter("pages").length() == 0) {
      pages = 1;
      } else {
      pages = new Integer(request.getParameter("pages")).intValue();
      }  //判断当前页
      if(pages > allpage){ // pages == 0
      cpage = 1;
      } else {
      cpage = pages;
      }  //判断起始页
      spage=(cpage-1)*ipage;  // by zzl at 2002.03.01 SQL = "select * from forum where board = "+ bid +" and new=1 order by lasttime desc limit "+ spage +","+ ipage; 
      SQL = "select top " + ipage + " * from forum where board = "+ bid +" and new=1 order by lasttime desc"; 
      rs = DBconnBean.executeQuery(SQL);
      //int cu=1;
    %>
    <!-- 广告 -->
    <jsp:include page="headeradv.jsp" flush="true" />
    <!-- 广告结束 --><!-- 版面信息、查询输入 -->
    <table width="615" border="0" align="center" cellpadding="0" cellspacing="0">
      <form name="formt1" method="post" action="searchforum.jsp">
      <INPUT TYPE="hidden" name="bid" value="<%=bid%>">
        <tr bgcolor="#EEF3F9">
          <td width="61" class="bt" height="11">版面公告:</td>
          <td width="296" height="11"><marquee><span class="bt"><%=boardgg%></span></marquee></td>
          <td width="258" class="bt" height="11"> 
            <div align="right">文章查找 
              <input type="text" name="zhuti" size="10">
              <select name="tj">
                <option value="title" selected>主题</option>
                <option value="name">姓名</option>
              </select>
              <input type="image" border="0" name="imageField" src="images/search.gif" width="50" height="19">
            </div>
          </td>
        </tr>
      </form>
    </table>
    <!-- 版面信息、查询输入结束 -->
    <!-- 珍藏、精华、订阅、调转信息 -->
    <table width="615" border="0" align="center" cellpadding="1" cellspacing="1">
    <form name="formt2" method="post" action="tiaozhuan.jsp">
    <INPUT TYPE="hidden" name="bid" value="<%=bid%>">
    <INPUT TYPE="hidden" name="pages" value="<%=pages%>">
      <tr>
          <td class="bt" width="419"><%=boardsname%>(<%=eboardsname%>) <a href="javascript:view('jrzc.jsp?bid=<%=bid%>');">加进珍藏</a> <a href="jinghua2.jsp?boardID=<%=boardID%>&bid=<%=bid%>">精华区</a> <a href="javascript:view1('ydy.jsp?BID=<%=bid%>');">订阅</a> <% if (imaster) { out.print("<a href=javascript:view('xggg.jsp?bid="+ bid +"');>修改版面公告</a> <a href='unpostconf.jsp?bid="+ bid +"'>封用户POST权限</a>");}%></td>  <td width="189" class="bt"> 
            <div align="right">跳到第 
              <input type="text" name="recid" size="1">
              主题 <% out.print(spage+1);%>-<%out.print(spage+ipage);%>,共<%=allCol%>主题</div>
          </td>
      </tr>
      </form>
    </table>
    <!-- 珍藏、精华、订阅、调转信息结束 --><!-- 斑竹、发表、翻页标志 -->
      

  4.   

    程序的第三部分
    <table width="615" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="396" class="bt">版主:<%out.print(echomaster.substring(0,echomaster.length()-1));%><!-- <a href='userinfo.jsp?uname=<%=bsmaster%>'><%=bsmaster%></a> --></td>
        <td width="219" class="bt"> 
          <div align="right"><font color="#FF0000"><% if ((attrib==1 || attrib==3) && post.equals("0")) {%>[<a href="post.jsp?bid=<%=bid%>"><font color="#FF0000">发表</font></a>]<%}else {
      if (attrib==2 && (usuper==1 || ubulletin==1)) {
          %>
      [<a href="post.jsp?bid=<%=bid%>"><font color="#FF0000">发表</font></a>]
      <%
      }
      }%> [论坛阅读] <% if (cpage>1) { %> [<a href="right.jsp?bid=<%= bid%>&pages=<%= cpage-1 %>"><font color=#FF0000>上一页</font></a>] <% } else { out.print("[上一页] ");} if (cpage<allpage) { %> [<a href="right.jsp?bid=<%= bid%>&pages=<%= cpage+1 %>"><font color=#FF0000>下一页</font></a>]<% } else { out.print("[下一页]");}%></font></div>
        </td>
      </tr>
    </table>
    <!-- 斑竹、发表、翻页标志结束 --><!-- 文章列表 -->
    <table width="615" border="0" align="center" cellpadding="1" cellspacing="1">
      <tr bgcolor="#355397"> 
        <td width="26"> 
          <div align="center"><font color="#FFFFFF"><span class="bt">回复</span></font></div>
        </td>
        <td width="27"> 
          <div align="center"><font color="#FFFFFF"><span class="bt">表情</span></font></div>
        </td>
        <td width="334"> 
          <div align="center"><font color="#FFFFFF"><span class="bt">题目</span></font></div>
        </td>
        <td width="110"> 
          <div align="center"><font color="#FFFFFF"><span class="bt">发表人</span></font></div>
        </td>
        <td width="102"> 
          <div align="center"><font color="#FFFFFF"><span class="bt">时间</span></font></div>
        </td>
      </tr>
      <%
      int i1 = 1;
      int n = 2;
      while (rs.next()) {
      %>
      <tr bgcolor="<% if ((i1 %= n)==1) {out.print("#EEF3F9");} else { out.print("#E1EAF4");}%>"> 
      <!--<td width="26"><CENTER><span class="bt"><% if (rs.getInt("re")==0) {out.print(db.DbConnection.bytes2gb(rs.getString("artsize")));} else { out.print("<font color=#ff0000>[+"+ rs.getInt("re") +"]<font>");}%></span></CENTER></td>-->
        <td width="26"><CENTER><span class="bt"><% int re=rs.getInt("re"); if (re==0) {out.print(db.DbConnection.bytes2gb(rs.getString("artsize")));} else { out.print("<font color=#ff0000>[+"+ re +"]<font>");}%></span></CENTER></td>
        <td width="27"><CENTER><img src="images/<%out.print(rs.getInt("bq"));%>.gif"></CENTER></td>
        <td width="334"><a href="showdoc.jsp?bid=<%=bid%>&recid=<%out.print(rs.getInt("id"));%>&pages=<%=pages%>" title ="点击:<%out.print(rs.getInt("click"));%>"><%String s=rs.getString("title");s=db.DbConnection.bytes2gb(s);out.print(s);%></a><% if (rs.getInt("jd") == 1) { out.print("<font color=#FF0000><span class=bt>荐</span></font>");}%></td>
        <td width="110"><CENTER><a href="userinfo.jsp?UID=<%out.print(rs.getInt("UID"));%>"><%out.print(db.DbConnection.bytes2gb(rs.getString("name")));;%></a></CENTER></td>
        <td width="102"><CENTER><%out.print(db.DbConnection.bytes2gb(rs.getString("time")).substring(5,16));%></CENTER></td>
      </tr>
      <%
      i1++;
      }
      %>
    </table>
    <!-- 文章列表结束 --><!-- 发表、翻页标志 -->
    <table width="615" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="396">&nbsp;</td>
        <td width="219" class="bt">
          <div align="right"><font color="#FF0000"><% if ((attrib==1 || attrib==3) && post.equals("0")) {%>[<a href="post.jsp?bid=<%=bid%>"><font color="#FF0000">发表</font></a>]<%}else {
      if (attrib==2 && (usuper==1 || ubulletin==1)) {
          %>
      [<a href="post.jsp?bid=<%=bid%>"><font color="#FF0000">发表</font></a>]
      <%
      }
      }%> <% if (cpage>1) { %> [<a href="right.jsp?bid=<%= bid%>&pages=<%= cpage-1 %>"><font color=#FF0000>上一页</font></a>] <% } else { out.print("[上一页] ");} if (cpage<allpage) { %> [<a href="right.jsp?bid=<%= bid%>&pages=<%= cpage+1 %>"><font color=#FF0000>下一页</font></a>]<% } else { out.print("[下一页]");}%></font></div>
        </td>
      </tr>
    </table>
    <!-- 发表、翻页标志结束 -->
    <%
      }
      else {
        out.print(ReOutputBean.ReOutput(false,"参数错误!","javascript:history.go(-1);"));
      }
    %>
    </body>
    </html>
    <%
      DBconnBean.close();
    }
    else {
      out.println("错误!你已被系统弹出!");
    }
    %>
      

  5.   

    这里:if (request.getParameter("pages")==null || request.getParameter("pages").length() == 0) {
      pages = 1;
      } else {
      pages = new Integer(request.getParameter("pages")).intValue();
      }
    其中:
    request.getParameter("pages").length() == 0)
    在最开始时
    request.getParameter("pages")的值是null使用length()方法,会出现异常。
      

  6.   

    stupidball(小菜鸟) 说的这种情况应该不是,我测试过,这种情况不会发生空指针例外。因为它如果为null他将不会执行||后面的表达式。
    贴出来的代码中我还没有发现会发生上面的错误,会不会是你<jsp:include page="headeradv.jsp" flush="true" />
    中的headeradv.jsp中的错误,这个文件好像与该页没有关系,是不是显示广告的一个页面,先去掉再试试~!
      

  7.   


        if (request.getParameter("pages")==null || request.getParameter("pages").length() == 0) 
    改为
    String pages=(String)request.getParameter("pages");
    if(pages==null||pages.length()==0)
      

  8.   

    很遗憾,还是不行-->1.按照 yuanzi(远子) 的方法,把<jsp:include page="headeradv.jsp" flush="true" />给注释掉,出现“该页无法显示!”2.另一种方法,对if (request.getParameter("pages")==null || request.getParameter("pages").length() == 0) 
    进行改写,则会出现下列错误提示:
    A Servlet Exception Has Occurred
    org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    g:\tomcat\work\localhost\bbs\_0002fright_0002ejspright_jsp_4.java:691: 'try' without 'catch' or 'finally'.
                    else {
                    ^
    g:\tomcat\work\localhost\bbs\_0002fright_0002ejspright_jsp_4.java:691: 'else' without 'if'.
                    else {
                    ^
    g:\tomcat\work\localhost\bbs\_0002fright_0002ejspright_jsp_4.java:696: Type expected.
            } catch (Throwable t) {
              ^
    3 errors, 1 warning at org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)
    at org.apache.jasper.servlet.JspServlet.doLoadJSP(JspServlet.java:478)
    at org.apache.jasper.servlet.JasperLoader12.loadJSP(JasperLoader12.java:146)
    at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:449)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:159)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:171)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:328)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:407)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:251)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:464)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2041)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:414)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:818)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:897)
    at java.lang.Thread.run(Thread.java:536)
      

  9.   

    很遗憾,问题依然存在:(问题一:把“<jsp:include page="headeradv.jsp" flush="true" />
    ”给注释掉,出现错误提示信息-->该页无法显示;问题二:如果把if(request.getParameter("pages"==null || request.getParameter("pages").length()==0)改成-->String pages=(String)request.getParameter("pages");
    if(pages==null||pages.length()==0)则会出现报错信息:A Servlet Exception Has Occurred
    org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
    g:\tomcat\work\localhost\bbs\_0002fright_0002ejspright_jsp_4.java:691: 'try' without 'catch' or 'finally'.
                    else {
                    ^
    g:\tomcat\work\localhost\bbs\_0002fright_0002ejspright_jsp_4.java:691: 'else' without 'if'.
                    else {
                    ^
    g:\tomcat\work\localhost\bbs\_0002fright_0002ejspright_jsp_4.java:696: Type expected.
            } catch (Throwable t) {
              ^
    3 errors, 1 warning at org.apache.jasper.compiler.Compiler.compile(Compiler.java:294)
    at org.apache.jasper.servlet.JspServlet.doLoadJSP(JspServlet.java:478)
    at org.apache.jasper.servlet.JasperLoader12.loadJSP(JasperLoader12.java:146)
    at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:449)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspServlet.java:159)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:171)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:328)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:407)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:251)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:464)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:242)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2041)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)
    at org.apache.catalina.valves.ValveBase.invokeNext(ValveBase.java:242)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:414)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:975)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:159)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:977)
    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:818)
    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:897)
    at java.lang.Thread.run(Thread.java:536)