如何在<form>?</form>的action属性中指定servlet

时间:2014-03-04 04:23:17

标签: java jsp

我在jsp文件中有一个在servlet中处理的表单

servlet看起来像这样

@WebServlet("/hello")
public class Test extends HttpServlet 
    //////////////

jsp文件看起来像这样

<form action="/Project/hello" method="GET">
  <input type="submit" value="Submit form "/>
 </form>

我需要这个servlet将请求转发给不同的jsp 所以我将此代码修改为

// I remove @WebService  The Test class is in the test folder
public class Test extends HttpServlet 
    ////////////// 
 forward  blah blah


<form action="/test/Test" method="GET">
  <input type="submit" value="Submit form "/>

我得到了404

如何在表单的action属性中指定我的servlet?

3 个答案:

答案 0 :(得分:1)

web.xml映射到<url-pattern> /test上。{/ p>

<servlet>
    <servlet-name>testServlet</servlet-name>
    <servlet-class>com.example.Test</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>testServlet</servlet-name>
    <url-pattern>/test</url-pattern>
</servlet-mapping>

在你的jsp中,表单操作指向此URL。

<form action="test"/>

答案 1 :(得分:1)

@WebService("/test/Test")
public class Test extends HttpServlet 

您需要注释将servlet映射到web.xml中的url或servlet条目

答案 2 :(得分:1)

首先,您需要使用web.xml中的url映射servlet,如下所示

<servlet>
 <servlet-name>testServlet</servlet-name>
 <servlet-class>com.company.Test</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>testServlet</servlet-name>
 <url-pattern>/test</url-pattern>
</servlet-mapping>

然后你需要在表单动作中给出url如下:

<form action="test" method="get">

servlet中的方法(doGet或doPost)应该与你在jsp中指定的方法相匹配。