我尝试从
javax.servlet.http.HttpServletRequest
实例中提取表单数据。按照网上的推荐,我尝试了request.getParameter(String paramKey)
,但是没有用。 request.getParameterValues()
、request.getParameterNames()
和 request.getParameterMap()
也不返回任何表单数据。我想要的是带有表单数据的地图或其他获取它们的方法。
它会在您编写代码 request.getParameter() 的地方运行。 这个东西总是需要像下面提到的那样写在servlet的doGetPost()方法中。参考下面的例子。
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String id = req.getParameter("realname");
String password = req.getParameter("mypassword");
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
String id = req.getParameter("realname");
String password = req.getParameter("mypassword");
}
有几个方法需要重写。他们是
doPost(), doGet(), service()
doPost()
将在接收到的请求类型为 POST 时执行。
doGet()
将在接收到的请求类型为 GET 时执行。
如果你想要一个应该为两个帖子执行的方法,让你更好地使用
service()
方法。
例子:
public class TestServlet{
public void service( HttpServletRequest request, HttpServletResponse response ){
request.getParameter( "paramterName" ).
}
}
配置的东西很少。
"Content-Type: multipart/form-data"
@MultipartConfig
注解这是我的例子
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
@WebServlet("/")
@MultipartConfig
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 5589752892736045780L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//get part by key
Part part = req.getPart("override");
//read the part
InputStream inputStream = part.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
System.out.println(sb.toString());
//set it to the response
resp.setContentType("text/plain");
resp.getWriter().write(sb.toString());
}
}