[英]How to map a servlet call from a JSP page using form action?
我有一个名为Welcome_2.html的JSP页面 在形式上,我调用了一个像这样的servlet:
<form action="/servlets/MyFirstServlet" method="post" id="form_id">
servlet“ MyFirstServlet”在 WEB-INF类Servlet 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 ...我只是一个初学者,请原谅我的拙劣知识。
将您的jsp表单更改为,
<form action="/servlets/MyFirstServlet" method="post" id="form_id">
匹配您的web.xml
中的url
模式
<servlet-mapping>
<servlet-name>MyFirstServlet</servlet-name>
<url-pattern>/servlets/MyFirstServlet</url-pattern>
</servlet-mapping>
这行<url-pattern>/servlets/MyFirstServlet</url-pattern>
表示与模式匹配的url将调用MyFirstServlet
在配置web.xml
元素之前,请阅读Oracle教程。
希望这可以帮助 !!
如果您使用的是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" >
由于您的表单操作是"/servlets/First"
因此您的网址格式应为
<url-pattern>/servlets/First</url-pattern>
除非您的应用程序部署为ROOT.war,否则所有URL都将相对于http://myserver/webapp
。 因此,我的猜测是您应该使用相对URL。 由于您的JSP是HTML,因此您需要编写:
<form action="../servlets/MyFirstServlet" method="post" id="form_id">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.