Servlet路径跳转问题

时间:2021-08-23 13:17:52

Servlet中路径跳转(服务器端跳转)JSP


  1. 相对路径
         注意这里的相对含义,相对于谁而言
              经过多次试验总结,servlet相对路径跳转相对于servlet配置的xml路径(或servlet3.0注解路径)
              如下:
   
   
   
  1. //XML文件
  2. <servlet-mapping>
  3. <servlet-name>RegServlet</servlet-name>
  4. <url-pattern>/servlet/RegServlet</url-pattern>
  5. </servlet-mapping>

    项目目录:
                      Servlet路径跳转问题
Servlet中相对路径

   
   
   
  1. request.getRequestDispatcher("../userinfo.jsp").forward(request,response);
这里的servlet路径配置在/servlet/RegServlet下(即根目录下的setvlet/目录下),则 ../ 目录则倒回到根目录下,而userInfo.jsp同样位于根目录下
    第二种情况:servlet3.0中的注解情况
   
   
   
  1. @WebServlet("/RegServlet") //新特性 访问地址直接配置好了
同样的项目目录,则在servlet中访问则需要如下修改:
   
   
   
  1. request.getRequestDispatcher("userinfo.jsp").forward(request, response); //相对路径方式
解释:因为系统注解的servlet配置在根目录(‘/’意味着根目录)下,则意味userInfo.jsp与servlet文件位于同一目录下,可可以直接访问。

2. 绝对路径
         绝对路径则相对而言简单很多,
         这里注意一点,对照着上面的目录图,我们要理解到,服务器在解析路径时,'src','WebRoot',这些文件夹其实都忽略了,这样说或许不准确,但便于理解,也解释说,则两个目录下的文件,都是在同一个根目录下,
         如果访问同一个Jsp页面,这绝对路径的表示方式如下:
   
   
   
  1. request.getRequestDispatcher("/userinfo.jsp").forward(request, response);// ‘/’表示根目录 绝地路径



Servlet中路径跳转(请求重定向跳转)JSP


  •         请求重定向( response.sendRedirect () )跳转多用下面的方式:
   
   
   
  1. response.sendRedirect(request.getContextPath()+"/userinfo.jsp"); //这里使用的是加上了上下文的绝对路径
                解释:服务器在解析绝对路径时,比浏览器解析绝对路径时,,多了一部分,这部分就是项目名,也就是,上下文环境
   或者使用相对路径,这里的相对于与上面的相对是同一样含义(servlet配置的访问路径,这里配置的是/RegSevlet),则相对路径的表示方式为:
   
   
   
  1. response.sendRedirect("userinfo.jsp"); //这里使用的是相对路径