我有一个名为Welcome_2.html 的JSP页面,在其表单操作中,我调用了一个这样的servlet:
<form action="/servlets/MyFirstServlet" method="post" id="form_id">
servlet&#34; MyFirstServlet&#34;在下 WEB-INF 类 小服务程序 MyFirstServlet
并且jsp位于该文件夹下 HTML 与WEB-INF
处于同一级别即。在练习中我有3个文件夹 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 ...我只是一个初学者 请原谅我,因为我的智力很差。
答案 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
元素
希望这会有所帮助!!
答案 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">