转发重定向路径斜杆符号的'/'使用问题
1、转发和重定向的区别:
转发是同一次请求(由服务器请求下一个资源)
重定向是多次请求(由服务器重定向到客户端,由客户端请求下一个资源)
2、重定向相对路径和绝对路径问题
规则与 cmd 的 cd 命令一致,有加斜杠,为绝对路径(从根目录开始算),反之为相对路径(从当前目录开始算)
通过表单请求指定的Url资源 action=”LoginServlet” 则表单生成的请求地址为:
http://localhost:8080/项目名/LoginServlet
在servlet处理请求之后重定向到指定的Uri:
①相对路径:response.sendRedirect("Manager/index.jsp")
生成的地址:原来请求地址+参数生成完整的URL即:
http://localhost:8080/项目名/Manager/index.jsp
②绝对路径:response.sendRedirect("/Manager/index.jsp")
生成的地址:Web服务器本身地址+参数生成完整的URL 即:
http://localhost:8080/Manager/index.jsp
③其他web应用地址response.sendRedirect("http://www.baidu.com")
容器直接定向到该URL。
3 . 转发相对路径和绝对路径问题
参数可以指定为相对路径或绝对路径,转发用相对路径和绝对路径地址效果一样。
①相对路径
相对路径情况下生成的完整URL与重定向方法相同。
②绝对路径
绝对路径与重定向不同,容器将相对于Web应用的根目录加参数生成完整的URL生成的地址:
原来请求地址+参数生成完整的URL(项目名+页面的Uri)即:
http://localhost:8080/项目名/Manager/index.jsp
4 . ServletContext.getRequestDispatcher(UrlString)
参数只能指定为绝对路径,生成的完整URL与HttpServletRequest.getRequestDispatcher(String)相同。
5、转发页面Uri问题
目标页面如果采用相对地址作为资源文件,转发过程中可能导致资源文件的uri失效问题,
这时候可以使用${pageContext.request.contextPath}可以将资源文件的相对地址转换成绝对地址,
如果使用${pageContext.request.contextPath}时页面报错,这时候需要额外导包jap-api.jar 。
示例:
<img alt="adas" src="${pageContext.request.contextPath}/image/baidu.png">
代码示例:
//正确做法
// request.getRequestDispatcher("/main/testPlus.jsp").forward(request,response);
// request.getRequestDispatcher("main/testPlus.jsp").forward(request,response);
// 正确的做法
// String basePath = request.getScheme() + "://" + request.getServerName() +
// ":" + request.getServerPort() + path;
// response.sendRedirect(basePath+"/main/testPlus.jsp");
// 正确的做法
// String path = request.getContextPath();
// response.sendRedirect(path+"/snc.jsp");
// 正确的做法
// response.sendRedirect("snc.jsp");
// 发生错误
// response.sendRedirect("/snc.jsp");
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY