JSP+tomcat下使用javabean出现异常。求助

问题描述

最近学习JSP,使用书本上的例子,就是显示不了,总出现异常。比如我要使用自己建立的一个javabean,packagebean;publicclassSimpleCalculator{privateStringfirst;privateStringsecond;privatedoubleresult;privateStringoperator;publicvoidsetFirst(Stringfirst){this.first=first;}publicvoidsetSecond(Stringsecond){this.second=second;}publicvoidsetOperator(Stringoperator){this.operator=operator;}publicStringgetFirst(){returnthis.first;}publicStringgetSecond(){returnthis.second;}publicStringgetOperator(){returnthis.operator;}publicdoublegetResult(){returnthis.result;}publicvoidcalculate(){doubleone=Double.parseDouble(first);doubletwo=Double.parseDouble(second);try{if(operator.equals("+"))result=one+two;elseif(operator.equals("-"))result=one-two;elseif(operator.equals("*"))result=one*two;elseif(operator.equals("/"))result=one/two;}catch(Exceptione){System.out.println(e);}}}

作用是计算器。将Bean编译到/Webapps/ch06/WEB-INF/classes中。再在/webapps/ch06下创建一calculate.jsp页面,代码如下:<%@pagecontentType="text/html;charset=GB2312"%><%@pageimport="bean.SimpleCalculator"%><html><head><title>实现简单的计数器</title><metahttp-equiv="Content-Type"content="texthtml;charset=GB2312"></head><body><palign=center><b>简单的计算器</b></p><hr/>计算结果<jsp:useBeanid="calculator"scope="request"class="bean.SimpleCalculator"><jsp:setPropertyname="calculator"property="*"/></jsp:useBean><%calculator.calculate();out.println(calculator.getFirst()+calculator.getOperator()+calculator.getSecond()+"="+calculator.getResult());%><hr/><formaction="calculate.jsp"method=get><tablewidth="75%"><tr><tdalign=right>第一个操作数</td><td><inputtype=textname="first"></td></tr><tr><tdalign=right>操作符号</td><td><selectname="operator"><optionvalue="+">+</option><optionvalue="-">-</option><optionvalue="*">*</option><optionvalue="/">/</option></select></td></tr><tr><tdalign=right>第二个操作数</td><td><inputtype=textname="second"></td></tr><tr><td></td><td><inputtype=submitvalue="点我计算"></td></tr></table></form></body></html>

在浏览器中打开http://localhost:8080/ch06/calculate.jsp时候,出现异常.typeExceptionreportmessagedescriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionorg.apache.jasper.JasperException:AnexceptionoccurredprocessingJSPpage/calculate.jspatline1613:<jsp:setPropertyname="calculator"property="*"/>14:</jsp:useBean>15:<%16:calculator.calculate();17:out.println(calculator.getFirst()+calculator.getOperator()+calculator.getSecond()+"="18:+calculator.getResult());19:%>Stacktrace:org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:428)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)rootcausejava.lang.NumberFormatException:Forinputstring:"-1212`"sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1222)java.lang.Double.parseDouble(Double.java:510)bean.SimpleCalculator.calculate(SimpleCalculator.java:39)org.apache.jsp.calculate_jsp._jspService(calculate_jsp.java:85)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:386)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)noteThefullstacktraceoftherootcauseisavailableintheApacheTomcat/6.0.32logs.求解,不甚感激。

解决方案

解决方案二:
字符串"-1212`"转换不了double类型,注意输入的数字"-1212`",-1212后面有个字符,在doubleone=Double.parseDouble(first);操作是会出异常的,去掉"-1212`"最后的一个字符"-1212"
解决方案三:
这是我修改后的,并实验可以运行:packagebean;publicclassSimpleCalculator{privateStringfirst;privateStringsecond;privatedoubleresult;privateStringoperator="+";publicvoidsetFirst(Stringfirst){this.first=first;}publicvoidsetSecond(Stringsecond){this.second=second;}publicvoidsetOperator(Stringoperator){this.operator=operator.trim();}publicStringgetFirst(){returnthis.first;}publicStringgetSecond(){returnthis.second;}publicStringgetOperator(){returnthis.operator;}publicdoublegetResult(){returnthis.calculate();}publicdoublecalculate(){doubleone=Double.parseDouble(first);doubletwo=Double.parseDouble(second);if(operator.equals("+"))result=one+two;elseif(operator.equals("-"))result=one-two;elseif(operator.equals("*"))result=one*two;elseif(operator.equals("/"))result=one/two;returnresult;}}<%@pagecontentType="text/html;charset=GB2312"%><%@pageimport="bean.SimpleCalculator"%><html><head><title>实现简单的计数器</title><metahttp-equiv="Content-Type"content="texthtml;charset=GB2312"></head><body><palign=center><b>简单的计算器</b></p><hr/>计算结果<jsp:useBeanid="calculator"scope="session"class="bean.SimpleCalculator"><jsp:setPropertyname="calculator"property="*"/></jsp:useBean><hr/><formaction=""method=postname=form><tablewidth="75%"><tr><tdalign=right>第一个操作数</td><td><inputtype=textname="first"value="<jsp:getPropertyproperty="first"name="calculator"/>"></td></tr><tr><tdalign=right>操作符号</td><td><selectname="operator"><optionvalue="+">+</option><optionvalue="-">-</option><optionvalue="*">*</option><optionvalue="/">/</option></select></td></tr><tr><tdalign=right>第二个操作数</td><td><inputtype=textname="second"value="<jsp:getPropertyproperty="second"name="calculator"/>"></td></tr><tr><td>结果:<jsp:getPropertyname="calculator"property="result"/></td><td><inputtype=submitvalue="点我计算"></td></tr></table></form></body></html>
解决方案四:
1楼看的果然仔细,佩服佩服!
解决方案五:
calculator.calculate();运行到这一步有问题,第一次访问该页面的时候,calculator对象的属性被设置成NULL值,所以计算时会抛出异常,如2楼或新建个js页面作为action1楼果然看的很认真!好眼力!
解决方案六:
嗯,输入非法数据时会报异常,建议楼主做异常处理
解决方案七:
引用1楼wj594594520的回复:

字符串"-1212`"转换不了double类型,注意输入的数字"-1212`",-1212后面有个字符,在doubleone=Double.parseDouble(first);操作是会出异常的,去掉"-1212`"最后的一个字符"-1212"

+1
解决方案八:
以前做的MVC模式,楼主参考下/***@(#)HandleComputer.java***@author*@version1.002011/2/1*/packageuser.yourservlet;importuser.yourbean.ComputerBean;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHandleComputerextendsHttpServlet{publicvoidinit(ServletConfigconfig)throwsServletException{super.init(config);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ComputerBeandataBean=null;HttpSessionsession=request.getSession(true);try{dataBean=(ComputerBean)session.getAttribute("ok");//判断是否属于同一用户?。。。if(dataBean==null){dataBean=newComputerBean();//创建Javabean对象session.setAttribute("ok",dataBean);//将dataBean存储到session对象中}}catch(Exceptionexp){dataBean=newComputerBean();session.setAttribute("ok",dataBean);}Stringmessage;StringNumone=request.getParameter("numberOne");StringNumtwo=request.getParameter("numberTwo");if(Numone==null||Numtwo==null)Numone=Numtwo="";try{doublenumberOne=Double.parseDouble(Numone);//获取表单提交的数据doublenumberTwo=Double.parseDouble(Numtwo);Stringoperator=request.getParameter("operator");doubleresult=0;if(operator.equals("+"))result=numberOne+numberTwo;elseif(operator.equals("-"))result=numberOne-numberTwo;//进行数据处理elseif(operator.equals("*"))result=numberOne*numberTwo;elseif(operator.equals("/"))result=numberOne/numberTwo;message="数据操作成功!";dataBean.setNumberOne(numberOne);//将处理后的数据存储在dataBean中dataBean.setNumberTwo(numberTwo);dataBean.setOperator(operator);dataBean.setResult(result);dataBean.setMessage(message);}catch(NumberFormatExceptione){message="数据操作失败,请输入数字字符!";dataBean.setMessage(message);}/*RequestDispatcher对象可以把用户对当前JSP页面或servlet的请求转发给另一个JSP**页面或servlet,而且将用户对当前JSP页面或servlet的请求和响应(HttpServletRequest**对象和HttpServletResponse对象传递给所转发的JSP页面或servlet)**/RequestDispatcherdispatcher=request.getRequestDispatcher("lookResult.jsp");dispatcher.forward(request,response);//请求lookResult.jsp显示dataBean中的数据}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}}

时间: 2024-07-29 14:05:57

JSP+tomcat下使用javabean出现异常。求助的相关文章

jsp+tomcat+mysql&amp;sevlet&amp;javabean配置全过程

js|mysql|过程 在配置jsp开发环境的过程中会碰到不少问题,感谢网上的许多前辈的经验总结,作者cl41的JSP连接Mysql数据库攻略和作者Saulzy的MySQL学习笔记等文章对我来说简直是雪中送碳,为了帮助象我一样的初学者在此总结了不少作者的经验,非常感谢他们的无私奉献精神,也希望更多的人把这种精神发扬光大,呵呵,再次对所参考文章的作者表示最崇高的敬意!以下软件下载连接地址无法显示的话,请直接到官方网站下载即可! 软件下载Mysql下载版本:mysql-4.1.13-win32.zi

在Tomcat下JSP、Servlet和JavaBean环境的配置

js|servlet 经常看到jsp的初学者问tomcat下如何配置jsp.servlet和bean的问题,于是总结了一下如何tomcat下配置jsp.servlet和ben,希望对那些初学者有所帮助. 第一步:下载j2sdk和tomcat:到sun官方站点(http://java.sun.com/j2se/1.4.2/download.html)下载j2sdk,注意下载版本为Windows Offline Installation的SDK,同时最好下载J2SE 1.4.2 Documentat

Tomcat下JSP、Servlet和JavaBean环境的配置

js|servlet 经常看到jsp的初学者问tomcat下如何配置jsp.servlet和bean的问题,于是总结了一下如何tomcat下配置jsp.servlet和ben,希望对那些初学者有所帮助.  第一步:下载j2sdk和tomcat:到sun官方站点(http://java.sun.com/j2se/1.4.2/download.html)下载j2sdk,注意下载版本为Windows Offline Installation的SDK,同时最好下载J2SE 1.4.2 Documenta

Tomcat下JSP、Servlet和JavaBean环境配置

经常看到Jsp的初学者问tomcat下如何配置jsp.servlet和bean的问题,于是总结了一下如何tomcat下配置jsp.servlet和ben,希望对那些初学者有所帮助. 第一步:下载j2sdk和tomcat:到sun官方站点([url]http://java.sun.com/j2se/1.4.2/download.html[/url])下载j2sdk,注意下载版本为Windows Offline Installation的SDK,同时最好下载J2SE 1.4.2 Documentat

jsp连接SQL server在tomcat下如何配置数据连接

问题描述 <%@pageimport="java.lang.*,java.io.*,java.sql.*,java.util.*"contentType="text/html;charset=gb2312"%><html><body><%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl

java web 异常求助,Myeclipse 的 Tomcat出现404错误

问题描述 java web 异常求助,Myeclipse 的 Tomcat出现404错误 求求大神们帮帮忙,过几天就要答辩了,没想到昨天突然就出现这个错误,自己一个人瞎搞了一个晚上也无济于事 解决方案 你 的图片已经看不到了.你加我qq413159383给我发过来.我给你看看 解决方案二: 看web.xml配置文件是否正确,映射的路径和servlet -class是否配置正确 解决方案三: 参考http://www.cnblogs.com/kaixin110/archive/2007/12/12

tomcat下的jsp文件里 嵌入JAVA代码 如今想要修改JAVA代码 该如何编译?

问题描述 tomcat下的jsp文件里嵌入JAVA代码如今想要修改jsp上面的一个list里的东西JAVA代码该如何编译?源代码已丢失只有服务器tomcat下的JSP和.class文件. 解决方案 解决方案二:该回复于2011-04-28 08:39:06被版主删除解决方案三:list里存的估计也就是javabean吧,要是这样的话反编译下class类,自己模仿着再重写下吧.编译,替换原来的文件,试试呗先解决方案四:不是很清楚

tomcat下的jsp和servlet的字符编码问题

js|servlet|编码|问题 使用filter来改变request的编码 在前面的文章里面,我们讨论了在tomcat下的jsp和servlet的字符编码问题! 知道当没有指定request的编码的时候,从客户端得到的数据是iso-8859-1编码的(request.getParameter()得到传递的参数值): 但是我们怎么来改变request的编码呢? 方法有很多种!  比如:在getRequestDispatcher("/jsp/jsptoserv/hello.jsp").f

在JSP环境下JavaBean的应用

JavaBean 是一种基于 Java 的软件组件.JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持.这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性. JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等.如果我们有三个 JavaBean ,它们分别具有显示新闻.股票价格.天气情况的功能,则创建包含所有这三种功能的 Web 页面只需要实例化这三个 Bean ,使用