request.getparameter 取到 null 值
jsp页面:<formmethod="POST"action="GetDetailedRegister"ENCTYPE="multipart/form-data"><pa...
jsp页面:
<form method="POST" action="GetDetailedRegister" ENCTYPE="multipart/form-data">
<p align="center">
用户名:<input type="text" name="User" size="20" id="User">
<p align="center">
年龄:
<input type="text" name="age" id="age">
<p align="center">
性别:
<input type="radio" name="sexy" value=male id="sexy" CHECKED> 男
<input type="radio" name="sexy" value=female id="sexy"> 女</p>
<p align="center">
请上传照片:
<INPUT TYPE="file" NAME="uploadfile" id= "uploadfile"></p>
<p align="center">
<input type="submit" value=" 提交">
<input type="reset" value="重写"></p>
</form>
java页面:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String user = request.getParameter("User");
String age= request.getParameter("age");
String sexy =request.getParameter("sexy") ;
String file =request.getParameter("uploadfile");
String forwardUrl=null;
System.out.println("USER"+request.getParameter("User"));
System.out.println(user+"','"+age+"','"+sexy+"','"+file);
//file=uploadfile(request,file); //上传头像文件
if(insertintoDI(user,age,sexy,file))
forwardUrl="RegisterSucceed.jsp";
else
forwardUrl = "Login.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(forwardUrl);
dispatcher.forward(request, response);
}
private boolean insertintoDI(String user, String age, String sexy,String file)
{
Connection conn=null;
Statement st=null;
try
{
conn=tx.beans.DBConnection.getConnection();
st=conn.createStatement();
String sql;
sql ="insert into detailedinfo(username,age,sexy,picturelocation) values ('"+user+"','"+age+"','"+sexy+"','"+file+"')";
st.executeUpdate(sql);
return true;
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
conn.close();
st.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
return false;
}
取到的都是null,为什么呢? 展开
<form method="POST" action="GetDetailedRegister" ENCTYPE="multipart/form-data">
<p align="center">
用户名:<input type="text" name="User" size="20" id="User">
<p align="center">
年龄:
<input type="text" name="age" id="age">
<p align="center">
性别:
<input type="radio" name="sexy" value=male id="sexy" CHECKED> 男
<input type="radio" name="sexy" value=female id="sexy"> 女</p>
<p align="center">
请上传照片:
<INPUT TYPE="file" NAME="uploadfile" id= "uploadfile"></p>
<p align="center">
<input type="submit" value=" 提交">
<input type="reset" value="重写"></p>
</form>
java页面:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
// TODO Auto-generated method stub
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String user = request.getParameter("User");
String age= request.getParameter("age");
String sexy =request.getParameter("sexy") ;
String file =request.getParameter("uploadfile");
String forwardUrl=null;
System.out.println("USER"+request.getParameter("User"));
System.out.println(user+"','"+age+"','"+sexy+"','"+file);
//file=uploadfile(request,file); //上传头像文件
if(insertintoDI(user,age,sexy,file))
forwardUrl="RegisterSucceed.jsp";
else
forwardUrl = "Login.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(forwardUrl);
dispatcher.forward(request, response);
}
private boolean insertintoDI(String user, String age, String sexy,String file)
{
Connection conn=null;
Statement st=null;
try
{
conn=tx.beans.DBConnection.getConnection();
st=conn.createStatement();
String sql;
sql ="insert into detailedinfo(username,age,sexy,picturelocation) values ('"+user+"','"+age+"','"+sexy+"','"+file+"')";
st.executeUpdate(sql);
return true;
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try
{
conn.close();
st.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
return false;
}
取到的都是null,为什么呢? 展开
3个回答
展开全部
ENCTYPE="multipart/form-data"
你的提交方式是二进制提交过去的,当然不能直接获取表单的参数了啊,得把二进制转换为字符串才行啊!
除非你取消ENCTYPE="multipart/form-data"这种提交方式!
你可以尝试一下用以下这种方式是否可以取到值?
request.getAttribute("XXX").toString();
你的提交方式是二进制提交过去的,当然不能直接获取表单的参数了啊,得把二进制转换为字符串才行啊!
除非你取消ENCTYPE="multipart/form-data"这种提交方式!
你可以尝试一下用以下这种方式是否可以取到值?
request.getAttribute("XXX").toString();
追问
我把这个改成了get方式就没有问题了。。。是为什么
追答
我不是说把ENCTYPE="multipart/form-data去掉吗?直接改成GET的话,ENCTYPE="multipart/form-data"是不可能生效的。post的话改成以下:
………………………………………………
………………………………………………
………………………………………………
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
action="GetDetailedRegister" 这提交到哪去了 页面的编码也是UTF-8的吗
追问
提交到了底下的java代码那里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你确定配置文件写对了吗
追问
配置文件和页面编码应该都没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询