`
思念-悲伤
  • 浏览: 25056 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于提交表单到servlet时,action的取值问题

阅读更多

要在web.xml中配置servlet配置好了后 在form的action中直接写你在web.xml中配置的<url-pattern>的名字。。例如
<servlet>
<servlet-name>AdminLogin</servlet-name>
<servlet-class>
com.java.servlet.AdminLogin
</servlet-class>
<load-on-startup>22</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AdminLogin</servlet-name>
<url-pattern>/AdminLogin</url-pattern>
</servlet-mapping>
在form的action中就直接写AdminLogin就行了

 

 

① 完全匹配
  <url-pattern>/test/list.do</url-pattern>  

② 路径匹配
  <url-pattern>/*</url-pattern> struts2匹配根路径下的全部请求

③ 扩展名匹配
  <url-pattern>*.do</url-pattern> struts1
  <url-pattern>*.html</url-pattern> 匹配全部html结尾的请求
  <url-pattern>*</url-pattern> 不能用*,否则报错

 

 

 

action写web.xml中对应的url值~~~比如说有一个LoginServlet,他在web.xml中显示的应该是这样:
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>servlet.LoginServlet</servlet-class>
  </servlet>
<servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/loginServlet</url-pattern>
  </servlet-mapping>

而要提交的,也就是action应该等于<url-pattern>中的内容:
action="<%=request.getContextPath()%>/loginServlet"

其中<%=request.getContextPath()%>为获得当前工程目录,jsp提交到servlet中必须加这个,否则会出现404找不到页的错误~~
 
JSP页面提交表单给Servlet时,路径的写法要格外注意。

例如在web.xml中注册如下的servlet:

<servlet>
    <servlet-name>addStudent</servlet-name>
    <servlet-class>org.mytest.addStudent</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>addStudent</servlet-name>
    <url-pattern>/servlet/addStudent</url-pattern>
  </servlet-mapping>

假如说,你工程名字为HibernateApp3,JSP页面提交表单给servlet时有两种写法:

1. <form action=servlet/addStudent method=post>...</form>

2. <form  action=/HibernateApp3/servlet/addStudentmethod=post>...</form>

注意:/代表根目录,如果路径是使用/开头,Tomcat就是webApp那个目录,如果你不是/开头代表你从当前工程的目录开始,例如:webApp/HibernateApp3/

这一点非常重要,很多提交表单时发生的错误都是因为提交路径出错造成的。 

 

这些都是从网上收集到的各种回答,总而言之,action的提交路径,和<url-pattern></url-pattern>中的路径保持一致就不会有错,不过是有前提的,就是路径入口处要是指向这个工程的,例如下面这种就是错误:

 

<form method="get" action="/yutao"> ,,而 <url-pattern>/yutao</url-pattern>,这样提交表单时,就会报404错误:The requested resource is not available。因为前面的“/”,指的是服务器的根目录,也就是Tomcat目录下的webapps。改为:<form method="get" action="/工程名/yutao",即可。

url-parrern里面放的是servlet访问路径,我目前的结论是这路径随便写都写,当然,注意我上面说的。。。
分享到:
评论

相关推荐

    Java+MyEclipse+Tomcat Servlet提交表单和数据库简单操作

    该资源主要参考博客http://blog.csdn.net/eastmount/article/details/45725077完成,是关于Java+MyEclipse+Tomcat (四)Servlet提交表单和数据库操作。其中包括两个资源,一个是Servlet简单提交表单并获取表单结果的...

    IDEA中HTML通过servlet3.0注解名提交表单到servlet类找不到页面的问题

    这样,当表单提交时,浏览器将直接使用这个根路径加上Servlet的注解名,从而正确地找到Servlet。完成这些设置后,重启服务器,问题应该得到解决。 这种方法更加推荐,因为它允许你在不修改代码的情况下,保持...

    通过表单提交实现调用不同的action方法

    在表单提交时,我们可以通过`action`属性设置表单数据的提交地址,即URL。例如: ```html &lt;form action="doSomething" method="post"&gt; &lt;!-- 表单内容 --&gt; ``` 这里的`doSomething`就是Action方法的标识,它会被...

    servlet接收form表单提交的数据

    本篇将详细介绍如何使用Servlet来接收form表单提交的数据,并将其在网页上呈现。 一、Servlet生命周期 Servlet具有三个主要阶段:加载、初始化和服务。当客户端首次请求Servlet时,服务器会加载并初始化Servlet,...

    jsp+servlet做的form表单元素的提交

    表单的`action`属性指定了Servlet的URL(在这个例子中是"ProcessForm"),`method`属性则定义了数据提交的方式,通常有GET和POST两种。当用户点击提交按钮后,表单数据将以POST方式发送到指定的Servlet。 接下来,...

    关于表单的Servlet708

    "关于表单的Servlet708"这个标题暗示我们将探讨如何使用Servlet处理用户通过表单提交的数据,这通常涉及到注册和登录功能。在这个场景下,开发者会创建一个Servlet来接收、处理并响应这些HTTP请求。 描述中提到的...

    ajax提交表单到后台

    本主题将深入探讨如何使用jQuery库的AJAX功能将表单数据提交到后台,以及后台如何使用Spring框架来处理这些数据。下面将详细阐述这一过程。 ### 一、前端:使用jQuery的AJAX提交表单 1. **引入jQuery库**:首先...

    ActionServlet深入探讨

    9. **locale**:定义默认使用的Locale对象,当从session中获取不到Locale时,ActionServlet会自动创建并保存一个Locale对象。 10. **mapping**:应用中使用的ActionMapping类,默认为`org.apache.struts.action....

    表单重复提交问题1

    - **令牌技术**:为每个表单生成唯一的令牌,提交时验证令牌,重复提交的请求会因为令牌无效而被拒绝。 每种策略都有其适用场景,开发者应根据实际需求选择合适的方法来防止表单重复提交,确保系统数据的一致性和...

    jsp中在提交表单时的中文处理问题

    当用户在JSP页面上填写包含中文的表单并提交时,浏览器会按照页面编码发送数据。如果服务器没有正确识别这个编码,就会出现乱码。 1. 页面编码设置:在JSP页面的头部,通常使用`&lt;meta&gt;`标签来指定页面的字符编码。...

    js验证表单大全,用JS控制表单提交 ,javascript提交表单

    js验证表单大全,用JS控制表单提交 ,javascript提交表单

    java Servlet对表单的处理过程

    如果表单的action属性指向了一个Servlet,那么这个请求就会被Servlet接收。 3. 初始化Servlet Servlet容器(如Tomcat)接收到请求后,检查是否有Servlet实例已经存在。如果没有,它会创建一个新的Servlet实例,并...

    servlet调用的几种方式

    用户在HTML表单中填写数据并提交,表单的`action`属性指向Servlet的URL。例如,创建一个HTML文件,其中包含一个表单,表单的`action`属性设置为`/myservlet/hello`。当用户点击提交按钮时,浏览器发送POST请求到...

    ExtJS+Servlet表单验证和注册

    如果验证无误,Servlet将这些数据保存到数据库,通常涉及到数据库操作,如JDBC或ORM框架(如Hibernate)。成功后,Servlet会返回一个响应,告知前端注册是否成功。 总结来说,这个小例子展示了如何结合ExtJS的前端...

    用iframe提交表单,主要是将表单提交到iframe中,可实现无刷新提交。

    用iframe提交表单,主要是将表单提交到iframe中,可实现无刷新提交。 html页面: &lt;iframe name="FORMSUBMIT" width="1" height="1" &gt;&lt;/iframe&gt; &lt;form action="login....

    jsp+servlet+from表单提交,上传头像,写入服务器

    本教程将聚焦于"jsp+servlet+from表单提交,上传头像,写入服务器"这一主题,非常适合初学者理解并掌握Web开发中的文件上传功能。 首先,我们需要了解基础概念。JSP(JavaServer Pages)是Java平台上的一个动态网页...

    Servlet、Struts、SpringMVC对于表单重复提交的解决方案

    2. **令牌(Token)机制**:生成一个唯一的令牌,将其隐藏在表单中,当表单提交时,服务器验证该令牌是否有效。如果已处理过,则忽略请求。 3. **Redirect重定向**:处理完表单后,使用HttpServletResponse的`...

    struts1.2 from表单提交包含list的对象

    在Struts1.2中,这个请求会被Struts的ActionServlet捕获,ActionServlet会根据配置的Struts配置文件(struts-config.xml)来决定调用哪个Action类来处理请求。 对于包含列表的表单,用户可能需要在页面上输入多条...

    ActionServlet demo

    当用户提交表单或点击链接时,请求会被发送到ActionServlet,它解析请求参数,根据配置的Action Mapping找到对应的Action类,然后调用该Action的execute()方法执行业务逻辑。ActionServlet是Struts的核心,它将用户...

    Servlet的5种方式实现表单提交(注册小功能),后台获取表单数据实例

    Servlet实现表单提交的5种方式 本文主要介绍了Servlet实现表单提交的5种方式,并且详细讲解了每种方式的实现方法和优缺点。通过本文,读者可以了解Servlet如何实现表单提交,并在实际项目中应用这些知识。 方式一...

Global site tag (gtag.js) - Google Analytics