requestDispatcher 对象可以有两中方式获得
1.通过request对象的getRequestDispatcher方法获得
2.通过ServletContext的getRequestDispatcher方法获得,但是这个方法获得的requestDispatcher 对象中的path必须以“/”开头,代表应用程序根目录,而第一中方法获得的requestDispatcher 对象则没有这种限制
不管是那种方式获得的,只要以"/"开头就代表应用程序根目录。你的问题出在jsp页面中链接和图片的路径使用都是相对路径,转向后的相对路径还是相对于你的Servlet所在的路径
比如你的servlet的地址是/servlet/myservlet,重定向到/aaa/bbb/myjsp.jsp后,这个jsp页面中图片的相对路径是img/aa.jpg,则此时图片的完整路径就变成了/servlet/img/aa.jpg,所以就显示不出来了。解决方案是把图片的路径写成<img src=<%=request.getContextPath()%>"/img/aa.jpg">或者<img src=${pageContext.request.contextPath}"/img/aa.jpg">,其它的链接也得改
时间: 2024-10-11 22:22:05