用Java Servlet作一个表单的提交程序,可是调用时出错了?应该怎么解决啊? 你要用get方法来传值,并且要求name要有值传过来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是用的get方法啊附html文件<html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF" text="#000000"><form name="form1" method="get" action="../servlet/ParmExtractorServlet"> <p>to: <input type="text" name="companyname"> </p> <p>you name: <input type="text" name="name"> </p> <p>email: <input type="text" name="email"> </p> <p> <input type="submit" name="Submit" value="Submit"> </p></form></body></html> 看看如下代码的效果:String name = "name";String value = null;System.out.println(name + value);试试你就会明白了 我觉得是这样:String value=null;value = request.getParameter(name); if(value != null){ out.println(name+"="+value);}在调用变量之前作个判断 to bdsc:同样的错误,我还是不明白,请你说详细些好吗?我刚刚学,比较笨啦!拜托了! System.out.println(),再输出字串时,实际上是调用对象的一个从object类继承来的方法:toString(),但是你的对象不存在,所以会有:NullPointerException 你应该这样:1.不管什么情况下,都尽可能初始化对象。如:String name = ""; String name = xxxxxxxx;2.使用前进行处理:如:if (name == null ) { name = ""; } else { name = xxxxxx; } to bdsc:我明白了你的意思,可是修改了代码以后,调用时错误依然如故。你能否帮我整个修改一下,paste出来给我看看这个要求好象有点过份谢谢你 to bdsc:我明白了你的意思,可是修改了代码以后,调用时错误依然如故。你能否帮我整个修改一下,paste出来给我看看这个要求好象有点过份谢谢你 to bdsc:我明白了你的意思,可是修改了代码以后,调用时错误依然如故。你能否帮我整个修改一下,paste出来给我看看这个要求好象有点过份谢谢你 form的action会不会应该是"../servlet/ijs.forms.ParmExtractorServlet",:) to bobosji:你上面贴的我试过,不行啊。 package ijs.forms; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class ParmExtractorServlet extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { response.setContentType("text/plain"); ServletOutputStream out=response.getOutputStream(); String strName = "没取到";String strEmail = "没取到";String strCompanyName = "没取到";strCompanyName = request.getParameter("companyname");strName = request.getParameter("name");strEmail = request.getParameter("email");out.println("companyname=" + strCompanyName + "<br>");out.println("name=" + strName + "<br>");out.println("email=" + strEmail); } } } to bdsc:我把你写的code编译后,在IE下调用,可是还是出现一样的错误why?在你那是正常的吗?无论如何还是要谢谢你,但请再帮我找找原因吧。thanks a lot! 我错了:如果没有参数传进来,这些String 变量还是null,看来你在使用前判断一下package ijs.forms; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class ParmExtractorServlet extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { response.setContentType("text/plain"); ServletOutputStream out=response.getOutputStream(); String strName,strEmail,strCompanyName;strCompanyName = request.getParameter("companyname");strName = request.getParameter("name");strEmail = request.getParameter("email");if (strCompanyName == null) { out.println("companyname=null<br>");else {out.println("companyname=" + strCompanyName + "<br>");}if (strName == null) {out.println("name=null<br>");}elseout.println("name=" + strName + "<br>");if (strEmail == null) {out.println("strEmail=null<br>");}elseout.println("email=" + strEmail); } } Agla,你的代码在我的IBM VisualAge for Java环境中已经试过了,没有任何问题。请问你用的是什么服务器,你的这个Servlet是怎么配的,它的class文件放在那个目录下? to hezhiqiang:我用的是win2000server+iis+tomcat3.2+jdk1.3class文件放在C:\tomcat\webapps\examples\WEB-INF\classes关于servlet的配置我有些模糊,你能给我说说吗? Agla,我知道了,你应该把编译好的class文件放到C:\tomcat\webapps\examples\WEB-INF\classes\ijs\forms目录下,然后在调用的时候url应该为/examples/servlet/ijs.forms.ParmExtractorServlet。 to bdsc and hezhiqiang好奇怪哦,我改成这样就行了:import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;public class ParmExtractorServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException { response.setContentType("text/plain"); ServletOutputStream out=response.getOutputStream(); Enumeration eParmNames=request.getParameterNames(); while(eParmNames.hasMoreElements()) { String name=(String)eParmNames.nextElement(); String value=request.getParameter(name); System.out.println(name+"="+value); out.println(name+"="+value); } }}只是加了一条System.out.println(name+"="+value);啊why?我越来越困惑了。 你的代码里少了"package ijs.forms;"语句啊,:) 最后一句应该是System.out..........不是out..........吧。 把package ijs.forms这句话加回去,然后照着下面的做法现再试一次,应该会成功的,成功后你或许就会明白了,:)把编译好的class文件放到C:\tomcat\webapps\examples\WEB-INF\classes\ijs\forms目录下,然后在调用的时候url应该为/examples/servlet/ijs.forms.ParmExtractorServlet hezhiqiang成功了!可是我还不明白,:(请你说说吧thanks a lot 如果在一个java类前加了package这语句,那么该类的完整类名为package名+"."+Class名,你这个例子为ijs.forms.ParmExtractorServlet,有空看看Java相关的书吧。 大家有用过Oracle Jdeveloper 11g吗? 怎样将自己的计算机配置成服务器以便可以让其他人访问 新手提问,大家快来帮忙啊!!!!!! 求类似百度知道的回答内容中插入图片的java程序实现 急!请教页面问题! 急!!!关于日期的运算 如何将字符串转换为二进制的数 jsp支持事件吗 有关javamail发邮件问题,如何指定发件人??? 用js跳转页面报错,Error 500--Internal Server Error 各位先知,能否将.jsp文件打包,在tomcat等服务器运行? tomcat ,resin, jrun,我有点糊涂了
附html文件
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head><body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="get" action="../servlet/ParmExtractorServlet">
<p>to:
<input type="text" name="companyname">
</p>
<p>you name:
<input type="text" name="name">
</p>
<p>email:
<input type="text" name="email">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>
String name = "name";
String value = null;
System.out.println(name + value);试试你就会明白了
String value=null;
value = request.getParameter(name);
if(value != null){
out.println(name+"="+value);
}
在调用变量之前作个判断
同样的错误,
我还是不明白,请你说详细些好吗?我刚刚学,比较笨啦!
拜托了!
1.不管什么情况下,都尽可能初始化对象。
如:String name = "";
String name = xxxxxxxx;
2.使用前进行处理:
如:if (name == null ) {
name = "";
} else {
name = xxxxxx;
}
我明白了你的意思,可是修改了代码以后,
调用时错误依然如故。
你能否帮我整个修改一下,paste出来给我看看
这个要求好象有点过份
谢谢你
我明白了你的意思,可是修改了代码以后,
调用时错误依然如故。
你能否帮我整个修改一下,paste出来给我看看
这个要求好象有点过份
谢谢你
我明白了你的意思,可是修改了代码以后,
调用时错误依然如故。
你能否帮我整个修改一下,paste出来给我看看
这个要求好象有点过份
谢谢你
你上面贴的我试过,不行啊。
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*; public class ParmExtractorServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
response.setContentType("text/plain");
ServletOutputStream out=response.getOutputStream(); String strName = "没取到";
String strEmail = "没取到";
String strCompanyName = "没取到";strCompanyName = request.getParameter("companyname");
strName = request.getParameter("name");
strEmail = request.getParameter("email");out.println("companyname=" + strCompanyName + "<br>");
out.println("name=" + strName + "<br>");
out.println("email=" + strEmail);
}
}
}
我把你写的code编译后,在IE下调用,可是还是出现一样的错误
why?在你那是正常的吗?
无论如何还是要谢谢你,但请再帮我找找原因吧。
thanks a lot!
如果没有参数传进来,这些String 变量还是null,看来你在使用前判断一下
package ijs.forms; import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*; public class ParmExtractorServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
response.setContentType("text/plain");
ServletOutputStream out=response.getOutputStream(); String strName,strEmail,strCompanyName;strCompanyName = request.getParameter("companyname");
strName = request.getParameter("name");
strEmail = request.getParameter("email");if (strCompanyName == null) {
out.println("companyname=null<br>");
else {
out.println("companyname=" + strCompanyName + "<br>");
}if (strName == null) {
out.println("name=null<br>");
}else
out.println("name=" + strName + "<br>");if (strEmail == null) {
out.println("strEmail=null<br>");
}else
out.println("email=" + strEmail);
}
}
我用的是win2000server+iis+tomcat3.2+jdk1.3
class文件放在C:\tomcat\webapps\examples\WEB-INF\classes
关于servlet的配置我有些模糊,你能给我说说吗?
好奇怪哦,我改成这样就行了:
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;public class ParmExtractorServlet extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
response.setContentType("text/plain");
ServletOutputStream out=response.getOutputStream();
Enumeration eParmNames=request.getParameterNames();
while(eParmNames.hasMoreElements())
{
String name=(String)eParmNames.nextElement();
String value=request.getParameter(name);
System.out.println(name+"="+value);
out.println(name+"="+value);
}
}
}只是加了一条System.out.println(name+"="+value);啊
why?我越来越困惑了。
成功了!
可是我还不明白,:(
请你说说吧
thanks a lot