在同一个Javaservlet中处理多个请求(不同的或相同类型的),如何?

在同一个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 {

所以我想做的是,我有2个html页面-1个允许通过电子邮件在DB中搜索用户,1个允许通过ID搜索用户。因此,我在每个页面上有2个表单,允许用户插入数字和字符串。现在我希望这2个页面中的每个页面上的请求都转到同一个servlet进行不同的处理,这可能吗

这是一个servlet,它重定向到带有搜索表单的2个html页面中的1个,即searchbyid.html和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>
这是我的两份表格: 按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页面的两个请求,这在我的帖子中是如何不清楚的?你在问题中展示了一个特定的代码,当你运行该代码时,你会遇到什么问题?这有意义吗?在您的测试之后,或者在不执行代码的情况下尝试预先解决问题,是否有任何异常、错误?