request.getParameter()在从另一个servlet调用java servlet时返回NULL [英] request.getParameter() returns NULL in java servlet on calling it from another servlet
问题描述
我创建了两个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屋!