在同一个Javaservlet中处理多个请求(不同的或相同类型的),如何?
所以我想做的是,我有2个html页面-1个允许通过电子邮件在DB中搜索用户,1个允许通过ID搜索用户。因此,我在每个页面上有2个表单,允许用户插入数字和字符串。现在我希望这2个页面中的每个页面上的请求都转到同一个servlet进行不同的处理,这可能吗 这是一个servlet,它重定向到带有搜索表单的2个html页面中的1个,即searchbyid.html和searchbyemail.html在同一个Javaservlet中处理多个请求(不同的或相同类型的),如何?,java,html,http,servlets,request,Java,Html,Http,Servlets,Request,所以我想做的是,我有2个html页面-1个允许通过电子邮件在DB中搜索用户,1个允许通过ID搜索用户。因此,我在每个页面上有2个表单,允许用户插入数字和字符串。现在我希望这2个页面中的每个页面上的请求都转到同一个servlet进行不同的处理,这可能吗 这是一个servlet,它重定向到带有搜索表单的2个html页面中的1个,即searchbyid.html和searchbyemail.html public class SearchServlet extends HttpServlet {
public class SearchServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String value = request.getParameter("searchType");
RequestDispatcher view;
if(value.equals("ById")){
view = request.getRequestDispatcher("searchbyid.html");
view.forward(request, response);
}else{
view = request.getRequestDispatcher("searchbyemail.html");
view.forward(request, response);
}
Utils.searchBy(request, response);
}
<div id="container">
<form method="POST" action="ResultServlet">
<p>
<label for="searchEmail">Please enter user E-mail:</label>
<input id="searchEmail" name="searchEmail" type="text">
</p>
<p>
<input id="submitButton" type="SUBMIT">
</p>
</form>
</div>
这是我的两份表格:
按id搜索表单位于“searchbyid.html”上
请输入用户id
现在第二种形式,通过电子邮件搜索是在searchbyemail.html上
public class SearchServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String value = request.getParameter("searchType");
RequestDispatcher view;
if(value.equals("ById")){
view = request.getRequestDispatcher("searchbyid.html");
view.forward(request, response);
}else{
view = request.getRequestDispatcher("searchbyemail.html");
view.forward(request, response);
}
Utils.searchBy(request, response);
}
<div id="container">
<form method="POST" action="ResultServlet">
<p>
<label for="searchEmail">Please enter user E-mail:</label>
<input id="searchEmail" name="searchEmail" type="text">
</p>
<p>
<input id="submitButton" type="SUBMIT">
</p>
</form>
</div>
请输入用户电子邮件:
我的问题的解决办法是为每个表单创建两个servlet,但我不想这样做。我想创建一个servlet,它将处理两个表单,即使它们来自两个不同的html页面。
现在我的问题是:
1.servlet只能有1个doGet和1个doPost吗?是否可以重载
2.我应该使用GET还是POST填写表格?为什么
3.我是否应该在同一个servlet中对其中一个表单使用GET方法,对另一个表单使用POST方法
4.有没有办法让doXXX方法接受不同的请求
5.让一个servlet管理两个表单而不使用任何框架(仅使用servlet和html/jsp)的最优雅的解决方案是什么?您面临的具体问题是什么,我的帖子不够具体吗?是的。不够具体。你说的是你想做什么,而不是你想做什么时面临的问题。这是一个可以找到问题答案的地方,而不是进行特技表演。我的问题是,我不知道如何使用一个servlet来处理来自两个不同html页面的两个请求,这在我的帖子中是如何不清楚的?你在问题中展示了一个特定的代码,当你运行该代码时,你会遇到什么问题?这有意义吗?在您的测试之后,或者在不执行代码的情况下尝试预先解决问题,是否有任何异常、错误?