你要用get方法来传值,并且要求name要有值传过来

解决方案 »

  1.   

    我是用的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>
      

  2.   

    看看如下代码的效果:
    String name = "name";
    String value = null;
    System.out.println(name + value);试试你就会明白了
      

  3.   

    我觉得是这样:
    String value=null;
    value = request.getParameter(name); 
    if(value != null){
       out.println(name+"="+value);
    }
    在调用变量之前作个判断 
      

  4.   

    to bdsc:
    同样的错误,
    我还是不明白,请你说详细些好吗?我刚刚学,比较笨啦!
    拜托了!
      

  5.   

    System.out.println(),再输出字串时,实际上是调用对象的一个从object类继承来的方法:toString(),但是你的对象不存在,所以会有:NullPointerException 你应该这样:
    1.不管什么情况下,都尽可能初始化对象。
    如:String name = "";
        String name = xxxxxxxx;
    2.使用前进行处理:
    如:if (name == null ) {
            name = "";
        } else {
            name = xxxxxx;
        }
      

  6.   

    to bdsc:
    我明白了你的意思,可是修改了代码以后,
    调用时错误依然如故。
    你能否帮我整个修改一下,paste出来给我看看
    这个要求好象有点过份
    谢谢你
      

  7.   

    to bdsc:
    我明白了你的意思,可是修改了代码以后,
    调用时错误依然如故。
    你能否帮我整个修改一下,paste出来给我看看
    这个要求好象有点过份
    谢谢你
      

  8.   

    to bdsc:
    我明白了你的意思,可是修改了代码以后,
    调用时错误依然如故。
    你能否帮我整个修改一下,paste出来给我看看
    这个要求好象有点过份
    谢谢你
      

  9.   

    form的action会不会应该是"../servlet/ijs.forms.ParmExtractorServlet",:)
      

  10.   

    to bobosji:
    你上面贴的我试过,不行啊。
      

  11.   

    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); 


      

  12.   

    to bdsc:
    我把你写的code编译后,在IE下调用,可是还是出现一样的错误
    why?在你那是正常的吗?
    无论如何还是要谢谢你,但请再帮我找找原因吧。
    thanks a lot!
      

  13.   

    我错了:
    如果没有参数传进来,这些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); 

      

  14.   

    Agla,你的代码在我的IBM VisualAge for Java环境中已经试过了,没有任何问题。请问你用的是什么服务器,你的这个Servlet是怎么配的,它的class文件放在那个目录下?
      

  15.   

    to hezhiqiang:
    我用的是win2000server+iis+tomcat3.2+jdk1.3
    class文件放在C:\tomcat\webapps\examples\WEB-INF\classes
    关于servlet的配置我有些模糊,你能给我说说吗?
      

  16.   

    Agla,我知道了,你应该把编译好的class文件放到C:\tomcat\webapps\examples\WEB-INF\classes\ijs\forms目录下,然后在调用的时候url应该为/examples/servlet/ijs.forms.ParmExtractorServlet。
      

  17.   

    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?我越来越困惑了。
      

  18.   

    你的代码里少了"package ijs.forms;"语句啊,:)
      

  19.   

    最后一句应该是System.out..........不是out..........吧。
      

  20.   

    把package ijs.forms这句话加回去,然后照着下面的做法现再试一次,应该会成功的,成功后你或许就会明白了,:)把编译好的class文件放到C:\tomcat\webapps\examples\WEB-INF\classes\ijs\forms目录下,然后在调用的时候url应该为/examples/servlet/ijs.forms.ParmExtractorServlet
      

  21.   

    hezhiqiang
    成功了!
    可是我还不明白,:(
    请你说说吧
    thanks a lot
      

  22.   

    如果在一个java类前加了package这语句,那么该类的完整类名为package名+"."+Class名,你这个例子为ijs.forms.ParmExtractorServlet,有空看看Java相关的书吧。