request.getparameter()拿不到input的数据
时间: 2023-09-07 08:15:24 浏览: 39
可能是因为你没有设置正确的input name属性或者没有使用正确的请求方法。如果你使用的是GET请求,应该使用request.getParameter()方法来获取数据;如果你使用的是POST请求,应该使用request.getInputStream()方法来获取数据,并且需要使用流的方式来读取数据。另外,你也可以尝试使用request.getAttribute()方法来获取数据,前提是你已经将数据存储在request的attribute中。如果问题仍然存在,请检查你的代码是否有其他错误或者异常。
相关问题
<% String name=request.getParameter("name"); name=new String(name.getBytes("iso-8859-1"),"UTF-8"); session.setAttribute("name",name); String sex=request.getParameter("gender"); String[] hobby=request.getParameterValues("hobby"); String mes=""; if(name.equals("")){ mes="昵称不能为空,请输入昵称"; mes = URLEncoder.encode(mes); session.setAttribute("mes",mes); RequestDispatcher rd = request.getRequestDispatcher("input.jsp"); rd.forward(request,response); } else{ RequestDispatcher rd = request.getRequestDispatcher("infromation.jsp"); rd.forward(request,response); } session.setAttribute("sex",sex); session.setAttribute("hobby",hobby); %>哪里错了
这段代码中可能会出现一些问题,具体如下:
1. 在设置 name 属性时,应该先进行非空判断,否则可能会出现空指针异常。
2. 在进行转码时,应该使用 try-catch 块进行异常处理。
3. 在设置完 name 属性后,应该立即跳转到相应的页面,否则可能会出现逻辑错误。
建议修改后的代码如下:
```
<%
String name = request.getParameter("name");
String sex = request.getParameter("gender");
String[] hobby = request.getParameterValues("hobby");
String mes = "";
if (name == null || name.equals("")) {
mes = "昵称不能为空,请输入昵称";
mes = URLEncoder.encode(mes, "UTF-8");
session.setAttribute("mes", mes);
RequestDispatcher rd = request.getRequestDispatcher("input.jsp");
rd.forward(request, response);
} else {
name = new String(name.getBytes("ISO-8859-1"), "UTF-8");
session.setAttribute("name", name);
session.setAttribute("sex", sex);
session.setAttribute("hobby", hobby);
RequestDispatcher rd = request.getRequestDispatcher("information.jsp");
rd.forward(request, response);
}
%>
```
servlet用post接收不到数据
如果你使用servlet接收不到post数据,可以考虑以下几点:
1. 确认请求方式为POST:在servlet中,通过`request.getMethod()`方法可以获取请求方式,如果不是POST,则无法接收post数据。
2. 确认表单中的`<form>`标签中的`method`属性为POST:如果表单提交方式为GET,那么就无法接收post数据。
3. 确认表单中的`<input>`标签中的`name`属性与servlet中的参数名相同:当表单中的`<input>`标签中的`name`属性与servlet中的参数名不一致时,无法接收post数据。
4. 确认表单中的`<input>`标签中的`type`属性为text或textarea:如果表单中的`<input>`标签中的`type`属性为file或checkbox等类型,那么就无法接收post数据。
如果以上几点都没有问题,可以尝试在servlet中使用`request.getParameter()`方法获取post数据,例如:
```java
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
String password = request.getParameter("password");
// do something with name and password
}
```
如果还有问题,可以提供更详细的代码和错误信息,方便定位问题。