servlet中的请求转发和重定向的路径问题
来源:互联网 发布:java 没错溢出 编辑:程序博客网 时间:2024/05/16 06:29
一、
- 相对路径(即在路径最前面没有/)
- 绝对路径(即在路径最前面有/)
二、
请求转发:
- 使用相对路径:(原来请求的URL’目录‘)+参数
- 使用绝对路径:(当前的WEB应用本身)+参数———-请求转发中WEB应用本身指发布工程名
请求重定向:
- 使用相对路径:(原来请求的URL’目录‘)+参数
- 使用绝对路径:(当前的WEB应用本身)+参数———-重定向中WEB应用本身指端口号之后(不包含发布工程名)
- 其他web应用地址:容器直接定向到该URL
三、举例
假设发起的请求为:http:localhost:8080/mvc/sys/shxt01
(mvc为发布的工程名,/sys/shxt01为@WebServlet(“”)所写的)
请求转发
使用相对路径
request.getRequestDispatcher(“WEB-INF/jsp/demo01.jsp”).forward(request, response);
则转发的地址为:http:localhost:8080/mvc/sys/WEB-INF/jsp/demo01.jsp(错误)使用绝对路径
request.getRequestDispatcher(“/WEB-INF/jsp/demo01.jsp”).forward(request, response);
则转发的地址为:http:localhost:8080/mvc/WEB-INF/jsp/demo01.jsp(正确)
请求重定向:(cy40为WebContent下与WEB-INF同级的文件夹,里面有一个demo02.jsp)
使用相对路径:
response.sendRedirect(“cy40/demo02.jsp”);
则重定向的地址为:http:localhost:8080/mvc/sys/cy40/demo02.jsp(错误)使用绝对路径
response.sendRedirect(“/cy40/demo02.jsp”);
则重定向的地址为:http:localhost:8080/cy40/demo02.jsp(错误)
所以应当为response.sendRedirect(request.getContextPath()+”/cy40/demo02.jsp”);(正确)其他web应用地址
response.sendRedirect(“http://www.baidu.com“);
五、补充
(1)请求转发也可以使用
ServletContext.getRequestDispatcher(String),不过参数只能为绝对路径
生成的URL和HttpServletRequest.getRequestDispatcher(String)相同
(2)在@WebServlet(“”)中不能不写 /
在SpringMVC中的ResultMapping()中可以不写
- servlet中的请求转发和重定向的路径问题
- servlet的重定向和请求转发
- Servlet的请求转发和重定向
- servlet的请求转发和重定向
- servlet的请求转发和重定向
- 重定向和转发中的路径问题
- servlet请求转发、重定向路径
- Servlet的请求转发和重定向转发
- 请求转发和重定向的问题
- servlet的请求转发和请求重定向的理解
- Servlet请求转发和请求重定向之间的区别
- 关于servlet中的请求转发与重定向的区别
- Jsp&Servlet 重定向、请求转发与绝对路径的问题
- servlet请求转发和重定向
- Servlet请求转发和重定向
- servlet之重定向和请求转发
- Servlet 请求转发和重定向
- Servlet:重定向和请求转发
- Java中的Zip进行多文件的保存
- Media Queries
- 【20】五款常用配色
- nginx ssl 107 (net::ERR_SSL_PROTOCOL_ERROR) 无法与服务器建立安全连接 解决方法
- Swift
- servlet中的请求转发和重定向的路径问题
- 京东Android一面答错的知识
- 使用faster-rcnn训练自己的模型
- 接口测试用例小结
- Linux vim命令
- one_plus
- python简单的笔记
- Parameter '0' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]
- 关于N皇后问题