初学java web,在使用servlet处理jsp时发现很多提交表单时发生的错误都是因为提交路径出错造成的。

现以自己为例说明:

项目目录结构如下:

web.xml文件主要内容如下:

  <servlet><description>This is the description of my J2EE component</description><display-name>This is the display name of my J2EE component</display-name><servlet-name>RegisterLoginServlet</servlet-name><servlet-class>RegisterLoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>RegisterLoginServlet</servlet-name><url-pattern>/servlet/RegisterLoginServlet</url-pattern></servlet-mapping>   <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>

1、在主页index.jsp或者pages/login.jsp中

使用如下语句:

<form action="servlet/RegisterLoginServlet" method="post">
...
</form>

都可以正常跳转到目标servlet,链接如下:

2、而如此使用则会报404错误(在最前面加了一个 :  /):

<form action="/servlet/RegisterLoginServlet" method="post">
...
</form>

浏览器报错如下(重点注意链接):

链接中缺失了项目名!

3、再将代码改为:

<form action="/SDUMap/servlet/RegisterLoginServlet" method="post">
...
</form>

测试通过,与第1次测试相同

出错原因分析:

/代表根目录,如果使用/开头,对于Tomcat而言就是webApp那个目录,直接找相应的servlet当然找不到,只要再加上项目名即可。

总结:

JSP页面提交表单给servlet时有两种写法:

(一). 相对路径: <form action=servlet/RegisterLoginServlet  method=post>...</form>

(二). 绝对路径:

1) <form action="/项目名/servlet/RegisterLoginServlet  " method=post>...</form>

其实绝对路径还有第二种方法:

2) <formaction="<%=request.getContextPath()%>/servlet/RegisterLoginServlet  " method=post>...</form>

关于Servlet中转发和重定向的路径问题还可参考该文:http://m.blog.csdn.net/article/details?id=51802534

关于jsp表单提交中action所指向Servlet路径问题的总结相关推荐

  1. Jsp表单提交数据乱码问题

    Jsp表单提交数据出现乱码 这个问提真的就纠结了好多天.太复杂了.说是涉及到到jsp文件的存储格式,又有解码格式,还有浏览器的解码格式. 1. 网上说了很多方法,我觉得更改server.xml文件这个 ...

  2. 表单提交中Get和Post方式的区别及EncType表明提交数据的格式详解

    表单提交中Get和Post方式的区别 1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对 ...

  3. 表单提交中get和post方式的区别

    表单提交中get和post方式的区别有5点  1.get是从服务器上获取数据,post是向服务器传送数据.  2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段 ...

  4. JSP表单提交中文乱码解决方案

    JSP表单提交中文乱码解决方案 参考文章: (1)JSP表单提交中文乱码解决方案 (2)https://www.cnblogs.com/sincoolvip/p/5746678.html (3)htt ...

  5. jsp表单提交中文乱码的解决

    jsp表单提交中文乱码的解决 <%@ page language="java" contentType="text/html; charset=utf-8 &quo ...

  6. 表单提交中get 和post方式的区别

    两者的区别需要通过提交表单后才看得出来,主要是在数据发送方式和接收方式上 1.在客户端,Get方式在通过URL提交数据,就是把表单内的元素,转化成url参数提交, 比如你有一个页面index.html ...

  7. 表单提交中的input、button、submit的区别

    参考博文:http://www.cnblogs.com/shytong/p/5087147.html 设置type=submit后,输入控件会变成一个按钮,显示的文字为其value值,默认值是Subm ...

  8. form表单提交,action需要加项目名

    <form action="/addUser" method="post">         <h3>添加用户信息</h3> ...

  9. form action表单提交

    表单提交,action为提交的目标地址,可以是在web.xml中配置的url-pattern <form action="first" method="post&q ...

  10. asp.net表单提交方法:GET\POST介绍

    表单form的提交有两种方式,一种是get的方法,一种是post 的方法,如果没有特殊指定,默认为post.看下面代码,理解ASP.NET Get和Post两种提交的区别: 1.< form i ...

最新文章

  1. 6条适用于PHP初学者的学习线路和建议
  2. 初探swift语言的学习笔记五(线程)
  3. jmeter(十一)JDBC Request之Query Type
  4. ansible普通用户部署K8s要点
  5. golang递归获取目录下的所有文件
  6. 真得好好细讲文件上传,否则漏洞百出
  7. BeetleX.FastHttpApi之JWT和自定义访问验证
  8. 新闻文本内容知识图谱表示项目
  9. 步骤1:JMeter 录制脚本接口测试
  10. 作者:钱卫宁(1976-),男,华东师范大学计算机科学与软件工程学院教授、博士生导师。...
  11. 混亂的思維 ~ 很高興能邂逅到常年不見的竹子
  12. mysql5.7 gtid问题_MySQL 5.7.5: 新语法WAIT_FOR_EXECUTED_GTID_SET 及存在的问题-阿里云开发者社区...
  13. 饥饿游戏3:嘲笑鸟(上)[The Hunger Games:Mockingjay - Part 1]
  14. 关于环信客服的集成与使用
  15. 转正实习、春招、秋招、校招、社招的4个区别和陷阱
  16. 在Ubuntu上安装MySQL8.0数据库并使用Navicat远程访问
  17. MacOS-Homebrew
  18. 20120814-虚拟串口VSPD的使用方法
  19. 【四】Java设计模式GOF23之抽象工厂模式
  20. 成都天府七中智慧校园蓝牙网关部署方案

热门文章

  1. 根据城市首字母进行分类,区分多音字,获取城市首字母
  2. Gram矩阵计算实例
  3. 科研项目研究的基本步骤
  4. Eclipse中的Unicode编码如何转为中文?
  5. php服务器代维,服务器维护
  6. SAP ERP和ORACLE ERP的区别是哪些?
  7. 每个国家对应的语言Locale和国家代码对照表(国际化支持)
  8. openg-光照贴图
  9. transformer中的多头注意力机制
  10. Python实现图片转pdf