request.getParameter()在从另一个servlet调用java servlet时返回NULL [英] request.getParameter() returns NULL in java servlet on calling it from another servlet

查看:188
本文介绍了request.getParameter()在从另一个servlet调用java servlet时返回NULL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了两个servlet Authenticate.java和Accept.java

以下是Authenticate.java的doGet函数

  PreparedStatement stmt = null; 
PrintWriter out = response.getWriter();

response.setContentType(text / html);
response.setCharacterEncoding(UTF-8);
尝试{
int cnt = 0;
Class.forName(com.ibm.db2.jcc.DB2Driver);
Connection con = DriverManager.getConnection(jdbc:db2:// localhost:50000 / SSMS,kiit,kiit);
con.setAutoCommit(false);
String s = request.getParameter(userName);
if(s == null){
out.println(You Are Not Authorized);
return;
}
stmt = con.prepareStatement(SELECT COMP_ID,NAME,CONTACT FROM COMPANYREG);

ResultSet rs = stmt.executeQuery();
while(rs.next()){
cnt ++;
out.println(< form action ='Accept'method ='post'>< input type ='text'size = '20'id ='cmpid'value ='+ rs.getString (1)+'>< br>名称:+ rs.getString(2)+< br>联系人:+ rs.getString(3)+< br>< input type =' submit'class ='confirm'id ='+ cnt +'value ='Approve'>< br>< / form>);
}

和Heres Accept.java

  String user = request.getParameter(cmpid); 

PrintWriter out = response.getWriter();
response.setContentType(text / html);
response.setCharacterEncoding(UTF-8);
out.println(user =+ user);
尝试{
String cid = null,pss = null,nam = null,add = null,sec = null,cnt = null,ema = null;
Class.forName(com.ibm.db2.jcc.DB2Driver);
Connection con = DriverManager.getConnection(jdbc:db2:// localhost:50000 / SSMS,kiit,kiit);

stmt = con.prepareStatement(SELECT * FROM COMPANYREG WHERE COMP_ID ='+ user +');
ResultSet rs = stmt.executeQuery();
out.println(query1);
while(rs.next()){
out.println(query2);
cid = rs.getString(1);
pss = rs.getString(2);
nam = rs.getString(3);
add = rs.getString(4);
sec = rs.getString(5);
cnt = rs.getString(6);
ema = rs.getString(7);

}
out.println(query3);
stmt = con.prepareStatement(INSERT INTO COMPANY VALUES('+ cid +','+ pss +','+ nam +','+ add +','+ sec +' , + CNT +, ' + EMA +'));

int numRowsChanged = stmt.executeUpdate();
if(numRowsChanged == 0)out.println(遇到一些错误请正确重新输入信息值);
else out.println(您已成功注册,您的个人信息验证通过后将被允许登录。谢谢)

在Accept.java类中,当我引用变量cmpid时,使用request.getParameter(cmpid );

它返回null ......有人可以告诉我究竟是什么问题吗?

解决方案

out.println(< form action ='Accept'method ='post'>< input type =' 'rs.getString(1)+'>< br>名称:+ rs.getString(2)+< br>联系人: + rs.getString(3)+< br>< input type ='submit'class ='confirm'id ='+ cnt +'value ='Approve'>< br>< / form> ;);

将表单中的name属性添加为name = cmpid


I have made two servlets Authenticate.java and Accept.java

Here's the doGet function of Authenticate.java

      PreparedStatement stmt = null;
      PrintWriter out=response.getWriter();

      response.setContentType("text/html");  
      response.setCharacterEncoding("UTF-8");  
      try{
          int cnt=0;
          Class.forName("com.ibm.db2.jcc.DB2Driver");
          Connection con= DriverManager.getConnection("jdbc:db2://localhost:50000/SSMS", "kiit", "kiit");
          con.setAutoCommit(false);
          String s=request.getParameter("userName");
          if(s==null){
              out.println("You Are Not Authorized");
              return;
          }
          stmt=con.prepareStatement("SELECT COMP_ID,NAME,CONTACT FROM COMPANYREG");

          ResultSet rs=stmt.executeQuery();
          while(rs.next()){
              cnt++;
              out.println("<form action='Accept' method='post'> <input type='text'  size='20' id='cmpid' value='"+rs.getString(1)+"'><br> Name :"+rs.getString(2)+"<br>Contact: "+rs.getString(3)+"<br><input type='submit' class='confirm' id='"+cnt+"' value='Approve'><br></form>");
          }

And Heres Accept.java

               String user=request.getParameter("cmpid");

      PrintWriter out=response.getWriter();
      response.setContentType("text/html");  
      response.setCharacterEncoding("UTF-8"); 
      out.println("user = "+user);
      try{
          String cid = null,pss = null,nam = null,add = null,sec = null,cnt = null,ema = null;
          Class.forName("com.ibm.db2.jcc.DB2Driver");
          Connection con= DriverManager.getConnection("jdbc:db2://localhost:50000/SSMS", "kiit", "kiit");

          stmt=con.prepareStatement("SELECT * FROM COMPANYREG WHERE COMP_ID = '"+user+"'");
          ResultSet rs=stmt.executeQuery();
          out.println("query1");
          while(rs.next()){
              out.println("query2");
              cid = rs.getString(1);
              pss=rs.getString(2);
              nam=rs.getString(3);
              add=rs.getString(4);
              sec=rs.getString(5);
              cnt=rs.getString(6);
              ema=rs.getString(7);

          }
          out.println("query3");
          stmt=con.prepareStatement("INSERT INTO COMPANY VALUES ('"+cid+"','"+pss+"','"+nam+"','"+add+"','"+sec+"',"+cnt+",'"+ema+"')");

          int numRowsChanged= stmt.executeUpdate();
          if(numRowsChanged==0) out.println("Some Error Encountered Please Re-enter Information values Correctly");
          else out.println("You Were Registered Successfully.You will be allowed to login once your details are verified. Thank You");

In the Accept.java class when i refer to variable "cmpid" using request.getParameter("cmpid");

it is returning null ...... Can anybody tell me what actually is the problem here??

解决方案

out.println("<form action='Accept' method='post'> <input type='text'  size='20' id='cmpid' value='"+rs.getString(1)+"'><br> Name :"+rs.getString(2)+"<br>Contact: "+rs.getString(3)+"<br><input type='submit' class='confirm' id='"+cnt+"' value='Approve'><br></form>");

add name attribute in form as "name=cmpid"

这篇关于request.getParameter()在从另一个servlet调用java servlet时返回NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆