jsp 跳到servlet路径_Servlet路径跳转问题

response.sendRedirect("userinfo.jsp"); //这里使用的是相对路径

Servlet的路径跳转

一、JSP跳转到Servlet

1、相对路径,如href="servlet/TestServlet" 如果写成"/servlet/TestServlet"会报错,因为第一个“/”表示的是【服务器根目录】

2、绝对路径,通过内置成员变量path实现,如href="/servlet/TestServlet" ,path得到的是项目根目录,如【http://localhost:8080/ServletDemo】

其中path指的就是:

例子:

访问HelloServlet!

访问HelloServlet!

二、Servlet跳转JSP

1、请求重定向:response.sendRedirect(request.getContextPath()+"/xxx.jsp");

request.getContextPath()获得项目根目录,或者通过"../xxx.jsp"取得上层路径得到

2、服务器内部转发: request.getRequestDispatcher("../xxx.jsp").forward(req,resp);

request.getRequestDispatcher("/test.jsp").forward(request, response);  /斜线表示项目的根目录

小结:Servlet都可以通过../xxx.jsp获取路径

三、web.xml的路径

web.xml的必须以“/”开头,“/”表示项目的根目录

在JSP页面上使用相对路径和绝对路径调用servlet web.xml的必须以“/”开头,“/”表示项目的根目录。

如果在Servlet中使用请求重定向方式跳转到其他jsp页面,则需要:

response.sendRedirect(request.getContextPath()+"/test.jsp");

服务器内部跳转路径:

request.getRequestDispatcher("/test.jsp").forward(request,response);//这里的斜线表示项目的根目录

或者

request.getRequestDispatcher("../test.jsp").forward(request,response);//“..”表示回到上层目录也就是根目录;

PS:如果带一层路径 如:/servlet/loginServlet,则内部转发的时会从WebRoot/servlet/路径下找jsp页面。

如果要转发的页面不在WebRoot/servlet/路径下,则需要“..”回到上层或根目录再定位到jsp页面,如下:

request.getRequestDispatcher("../test.jsp").forward(request,response);

如果要转发的页面在WebRoot/servlet/路径下,则如下:

request.getRequestDispatcher("/test.jsp").forward(request,response);

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值