问题描述
messagedescriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionorg.apache.jasper.JasperException:AnexceptionoccurredprocessingJSPpage/insertbook.jspatline1411:StringB_total=request.getParameter("B_total");12:StringB_count=request.getParameter("B_count");13:StringAuthor=request.getParameter("Author");14:if(BNo.length()!=6){15:response.sendRedirect("err.jsp");16:}17:%>Stacktrace:org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)rootcausejava.lang.NullPointerExceptionorg.apache.jsp.insertbook_jsp._jspService(insertbook_jsp.java:69)org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)noteThefullstacktraceoftherootcauseisavailableintheApacheTomcat/6.0.18logs.<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><body><%!StringBNo=,BName,Press,Author,B_count,B_total,Price;%><%StringBNo=request.getParameter("BNo");StringBName=request.getParameter("BName");StringPress=request.getParameter("Press");StringPrice=request.getParameter("Price");StringB_total=request.getParameter("B_total");StringB_count=request.getParameter("B_count");StringAuthor=request.getParameter("Author");if(BNo.length()!=6){response.sendRedirect("err.jsp");}%><%try{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Library";Stringuser="sa";Stringpassword="";Connectionconn=DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);Stringsql="select*frombookwhereBNo='"+BNo+"'";ResultSetrs=stmt.executeQuery(sql);if(rs.getRow()>0){response.sendRedirect("err.jsp");}sql="insertintobookvalues('"+BNo+"','"+BName+"','"+Press+"','"+B_count+"','"+B_total+"','"+Author+"')";stmt.executeUpdate(sql);rs.close();stmt.close();conn.close();}catch(Exceptione){response.sendRedirect("err.jsp");}%><divalign="center"><p><fontsize="+3">添加新记录</font></p><formmethod=postaction="insertbook.jsp"><tablewidth="35%"border="1"><tr><tdwidth="37%">BNo</td><tdwidth="63%"><inputname="BNo"type="text"size="20"maxlength="85"></td></tr><tr><tdwidth="37%">BName</td><tdwidth="63%"height="5"><inputname="BName"type="text"size="20"maxlength="85"></td></tr><tr><tdwidth="37%">Press</td><tdwidth="63%"><inputname="Press"type="text"size="20"maxlength="85"></td></tr><tr><tdwidth="37%">Price</td><tdwidth="63%"><inputname="Price"type="text"size="20"maxlength="85"></td></tr><tr><tdwidth="37%">B_count</td><tdwidth="63%"><inputname="B_count"type="text"size="20"maxlength="85"></td></tr><tr><td>Author</td><td><inputname="Author"type="text"size="20"maxlength="85"></td></tr><tr><tdwidth="37%"><inputtype="submit"value="提交"name="submit"></td><tdwidth="63%"><inputtype="reset"value="取消"name="reset"></td></tr></table></form></div></body></html>
解决方案
解决方案二:
楼主发错地方了哦
解决方案三:
空指针,没有取到值
解决方案四:
你要先判断BNo是否为空当不为空之后才可以用.length()方法哦
解决方案五:
楼上正解
解决方案六:
引用3楼liu_moyan的回复:
你要先判断BNo是否为空 当不为空之后才可以用.length()方法哦
正解
解决方案七:
引用2楼javaemailkaifa的回复:
空指针,没有取到值
对
解决方案八:
BNo是空的当String类型的变量为null时,调用它的方法都会报空指针
解决方案九:
if(BNo.length()!=6){response.sendRedirect("err.jsp");}在用bno的时候要先判是不是为空,在用他的length方法
解决方案十:
正解
解决方案十一:
<%!StringBNo=,BName,Press,Author,B_count,B_total,Price;%>声明错了,应该是<%!StringBNo,BName,Press,Author,B_count,B_total,Price;%>BNo后面多了一个=号
解决方案十二:
StringBNo=request.getParameter("BNo");当没有form表单提交时,得到的值是Null,应该添加判断语句,在非Null下使用
解决方案十三:
引用8楼zhanghai921的回复:
if(BNo.length()!=6){response.sendRedirect("err.jsp");}在用bno的时候要先判是不是为空,在用他的length方法
正解
解决方案十四:
谢谢各位的指点啊!!