繁体   English   中英

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

[英]How to map a servlet call from a JSP page using form action?

我有一个名为Welcome_2.html的JSP页面 HTML页面目录 在形式上,我调用了一个像这样的servlet:

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

servlet“ MyFirstServlet”在 servlet目录 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM