如何在web.xml中配置servlet的Post方法

时间:2015-06-26 14:13:58

标签: servlets post web.xml

我有一个servlet作为web.xml中的欢迎文件。当请求到达应用程序时,它直接调用get方法。有什么办法可以让它调用servlet中的post方法吗?正下方是代码。你能帮我吗?

<welcome-file-list>
    <welcome-file>LoginServlet</welcome-file>
  </welcome-file-list>
   <servlet>
    <description>
        </description>
    <display-name>LoginServlet</display-name>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.eeft.login.LoginServlet</servlet-class>
  </servlet>
   <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>
        /LoginServlet</url-pattern>
  </servlet-mapping>

1 个答案:

答案 0 :(得分:0)

由于HTTP GET和POST请求之间的根本区别,这是不可能的。 POST请求附带<form>数据,因为用户首先提交了该数据。虽然欢迎文件可以满足您网站 root /的GET请求,但在所有实际情况下,用户只需输入地址即可。浏览器的地址栏。 POST没有数据,因此欢迎文件请求总是一个GET。

现在,如果您的问题背后的原因是您只想重新使用doPost()逻辑,然后将其作为上面建议的 @Avinash ,您只需从{{1}调用它即可作为

doGet()

但是,还有更好的方法。将您的public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } 逻辑拆分为LoginServletdoGet(),以便GET请求收到登录表单,如

doPost()

注意表单如何提交给自己。如果发生这种情况,POST请求将像以前一样由<form method="post" action="LoginServlet"> Username: <input type="text" name="user" /><br /> Password: <input type="password" name="pass" /><br /> <input type="submit" value="Login" /> </form> 方法处理。验证用户凭据并相应地重定向用户。如果身份验证失败,请使用doPost()将用户重新发送回sendRedirect()。由于这是一个GET请求,用户将再次看到登录表单

登录页面理想情况下应来自JSP,但由于我猜你刚开始使用 Servlets ,我不想让你复杂化。一旦熟悉了 Servlets ,就可以了解MVC模式。