有时我们不能用一个超链接链接到JSP页面,中间需要通过一个Servlet,再通过转发的方式去链接,因为有些JSP上面需要去显示数据库中的数据,通过MVC设计模式需要先通过Servlet去到DAO里查出结果,再给到JSP,JSP本身是没有显示数据的能力的。
比如:先写三个jsp文件,然后放在不同的路径下,你让a.jsp去跳转到b.jsp,b.jsp再去跳转到c.jsp,c.jsp能跳转到a.jsp,这样是可以跳转回来的,但当你要从某个数据库中提取某个单位,比如从图书管理系统中找一本书,然后再b.jsp中显示,这时候你从a.jsp是可以跳转到b.jsp的,但从b.jsp跳转到c.jsp时则会出现404。。。因为它从b.jsp访问c.jsp的时候会认为是和Servlet同一路径的。
在由servlet转发到JSP页面时,此时浏览器地址栏上显示的事Servlet的路径,而若JSP还是相对于JSP页面的地址,则可能会出现路径混乱的问题。
编写绝对路径可以避免上述问题。
绝对路径:相对于WEB应用的根路径的路径。即任何的路径都必须带上contextPath()
如:http://localhost:8080/contextPath/a.jsp 这个是绝对
而,http://localhost:8080/a.jsp 不是绝对路径
方法:request.getContextPath(); 或 application的getContextPath()方法获取。