如何使用表单操作从JSP页面映射servlet调用?

时间:2014-05-20 05:52:25

标签: java jsp servlets

我有一个名为Welcome_2.html HTML page directory的JSP页面,在其表单操作中,我调用了一个这样的servlet:

<form action="/servlets/MyFirstServlet" method="post" id="form_id">

servlet&#34; MyFirstServlet&#34;在servlet directory下      WEB-INF      类      小服务程序      MyFirstServlet

并且jsp位于该文件夹下      HTML 与WEB-INF

处于同一级别

即。在练习中我有3个文件夹project structure      HTML      META-INF      WEB-INF

web.xml中的

我有以下代码段

    <servlet>
    <servlet-name>MyFirstServlet</servlet-name>
    <servlet-class>servlets.MyFirstServlet</servlet-class>
</servlet>  
<servlet-mapping>
    <servlet-name>MyFirstServlet</servlet-name>
    <url-pattern>/servlets/MyFirstServlet</url-pattern>
</servlet-mapping>

为什么不调用servlet?我在浏览器上单击HTML页面并尝试调用servlet ...我只是一个初学者 请原谅我,因为我的智力很差。

4 个答案:

答案 0 :(得分:7)

将您的jsp表单更改为,

<form action="/servlets/MyFirstServlet" method="post" id="form_id">

匹配url

中的web.xml模式
<servlet-mapping>
    <servlet-name>MyFirstServlet</servlet-name>
    <url-pattern>/servlets/MyFirstServlet</url-pattern>
</servlet-mapping>

此行<url-pattern>/servlets/MyFirstServlet</url-pattern>表示与模式匹配的网址将调用MyFirstServlet

在配置web.xml元素

之前,请先阅读Oracle Tutorial

希望这会有所帮助!!

答案 1 :(得分:2)

如果你使用tomcat 7,你不需要关心它。例如:

在你的servlet中:

@WebServlet("/myFirstServlet")  

public class LoginPage extends HttpServlet {

   // your code 

}

在你的HTML中:

<!-- here you write myFirstServlet in the action tag -->
<form id="somethingGoesHere" action="myFirstServlet" method="post" >

答案 2 :(得分:1)

由于您的表单操作为"/servlets/First" 所以你的网址格式应该是

<url-pattern>/servlets/First</url-pattern>

答案 3 :(得分:1)

除非您的应用部署为ROOT.war,否则您的所有网址都将相对于http://myserver/webapp。所以我的猜测是你应该使用相对URL。由于您的JSP是HTML格式,因此您需要编写:

<form action="../servlets/MyFirstServlet" method="post" id="form_id">