以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Java/Eclipse 』  (http://bbs.xml.org.cn/list.asp?boardid=41)
----  JSP高手进 看看这个程序有什么问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=41&rootid=&id=31710)


--  作者:godspeed
--  发布时间:5/3/2006 4:58:00 PM

--  JSP高手进 看看这个程序有什么问题
<%@ page contentType="text/html; charset=gbk" %>
<%@ page import="java.sql.*"%>
<%@page import="java.util.*"%>
<html>
<title>
my god
</title>
<%String declarer=request.getParameter("declarer");
String devicename=request.getParameter("devicename");
String devicetype=request.getParameter("devicetype");
String deviceprice=request.getParameter("deviceprice");
String devicenumber=request.getParameter("devicenumber");
String declarereason=request.getParameter("declarereason");
if(declarer.length()==0||devicename.length()==0||devicetype.length()==0||deviceprice.length()==0||devicenumber.length()==0||declarereason.length()==0)
out.print("<center><font color=red size=6>输入字段不可为空</font>");
else
out.print("输入成功");
%>
</html>

提示有内部错误  怎么回事  是差什么吗?


--  作者:lixu
--  发布时间:5/4/2006 4:59:00 PM

--  
应该是缺少了主体<body> </body>
--  作者:godspeed
--  发布时间:5/4/2006 6:48:00 PM

--  
加了BODY  还是不行  出现下面的错误提示   


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.NullPointerException
 org.apache.jsp.god_jsp._jspService(god_jsp.java:59)
 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


--------------------------------------------------------------------------------


--  作者:binaryluo
--  发布时间:5/4/2006 7:35:00 PM

--  
因为在执行:
String declarer=request.getParameter("declarer");
String devicename=request.getParameter("devicename");
String devicetype=request.getParameter("devicetype");
String deviceprice=request.getParameter("deviceprice");
String devicenumber=request.getParameter("devicenumber");
String declarereason=request.getParameter("declarereason");
的时候都没有取到相应的参数值,所以declarer,devicename,devicetype,devicenumber,declarereason几个变量赋值没有成功,他们都是 null 的。

你又在下面执行:
if(declarer.length()==0||devicename.length()==0||devicetype.length()==0||deviceprice.length()==0||devicenumber.length()==0||declarereason.length()==0)
一个 null 的对象不能引用它的任何成员变量或方法。

所以,你最好在执行“declarer.length()……”前先判断这些对象是否为 null,如果为 null 就不要引用 length(),否则就不引用。这样就没问题了。


--  作者:godspeed
--  发布时间:5/5/2006 1:54:00 AM

--  
我的程序是基与一个HTML界面连接而来
所谓不为空

而且前一个 IF语句运行正常   如果字段为空时  ENTER  会出现“字段不可为空”的提示

主要是ELSE语句无法实现  当都不为空时候  提示出现内部错误

如下
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

java.lang.NullPointerException
org.apache.jsp.god_jsp._jspService(god_jsp.java:59)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.


--  作者:binaryluo
--  发布时间:5/7/2006 10:17:00 AM

--  
你没明白我的意思。

下面这种就是错的:
XxxClass XxxObject = null;
XxxObject.XxxMethod();

你的if判断的是XxxObject.XxxMethod()是否为空;而不是判断XxxObject是否为空。不知道现在说清楚没。


--  作者:noahj
--  发布时间:5/8/2006 6:29:00 PM

--  
判断获取的变量是否为null
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms