Servlet项目中路径和转发的问题

在使用servlet时经常发生404错误,那么很可能是路径发生了错误。servlet项目中经常会使用到路径来进行跳转。
这里主要分为两种:

客户端发送请求服务器内部跳转
超链接跳转:< a href=“url”>< /a >
表单提交:< form action=“url”>
重定向:response.sendRedirect(“url”)
请求转发:request.getRequestDispatcher(“url”).forward(request, response)
请求响应:web.xml或注解中响应路径的配置

要注意的是,重定向虽然是在servlet中进行处理,但是相当于客户端向服务端发送请求之后,服务器返回一个响应,客户端接收到响应之后又向服务端发送一次请求,因此归纳在客户端中。

在路径的使用中," / "表示的是根目录,在客户端和服务器中,根目录代表了不同的路径。

1.客户端
        在客户端中,根目录表示的是站点,也就是服务器的地址。也就是说 ," / " 代表的是 " http://localhost:8080/ " 。例如,我需要访问项目下html文件的hello.html,就需要将路径写为 " /项目名/html/hello.html " ,这也就是我们说的绝对路径。
        而若是不使用绝对路径,通过 " " 使用相对路径,那么在客户端中代表的是应用的地址,代表的是 " http://localhost:8080/项目名/ " 。因此我们使用相对路径来找到应用下的文件就方便多了,同样是访问项目下html文件的hello.html,我们只需要将路径写为 " html/hello.html " 就可以了。

2.服务器端
        在服务器端中,根目录 " / " 代表的就是应用的地址,也就是 " http://localhost:8080/项目名/ " ,相对路径也是代表着应用的地址,不过建议在服务器端都使用绝对路径。如果在web.xml或注解中配置了使用相对路径的url来进行相应的话,会产生java.lang.IllegalArgumentException的错误。

在html页面中,配置好路径后,可以按着Ctrl并左键点击配好的路径,来检查是否可以正确地跳转。

总结:
客户端中

" / "" "
http://localhost:8080/http://localhost:8080/项目名/

服务器端中

" / "" "
http://localhost:8080/项目名/http://localhost:8080/项目名/(不建议使用)

如有错漏,请指出,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值