Servlet基础(4)
来源:互联网 发布:怎么淘宝开店 编辑:程序博客网 时间:2024/06/08 19:55
Servlet路径跳转
绝对路径:放之四海而皆准的路径
相对路径:相对于当前资源的路径
我们可以创建一个项目,并且创建一个Servlet,HelloServlet放在包servlet下。我们在index.jsp文件中可以都过超链接的方式来访问这个servlet。
如果使用相对路径来访问HelloServlet<a href="servlet/HelloServlet">访问HelloServlet</a>
这里要注意不能写为/servlet/HelloServlet,因为这里的第一个/表示服务器的根目录 。
如果想用绝对路径来访问HelloServlet的话,代码则为<a href="<"%=path%">/servlet/HelloServlet">访问HelloServlet</a>
这里边的path在上面有定义String path = request.getContextPath();
它是表示项目的根目录。
这里是超链接的写法,如果是表单的话,里边的action的写法与这个超链接的写法也是完全一样的。
这时候又会想到在web.xml文件中也出现了/servlet/HelloServlet这种写法,即url-pattern标签处必须以/开头,这个/表示项目的根目录。
已经说了从index.jsp页面跳转到servlet的方法,那么如何反过来跳转呢?可以新建一个TestServlet,让index.jsp页面先可以跳转到TestServlet,然后在创建一个test.jsp页面让TestServlet可以跳转过来。
1.可以用请求重定向的方式来跳转
在doGet或者doPost方法中加上如下代码response.sendRedirect(request.getContextPath()+"/test.jsp");
这里request.getContextPath()为项目的根目录,也就是用绝对路径来跳转。这里一定不可以写成response.sendRedirect("test.jsp");
因为当前的路径是:项目名/包名/,这里包名是servlet,在这个路径下是找不到test.jsp文件的。
2.可以使用服务器内部跳转的方式
在doGet或者doPost方法中加上如下代码request.getRequestDispatcher("/test.jsp").forward(request,response);
这里的/表示项目的根目录,如果去掉了/,则和前边出现的问题一样,目标地址是一个相对路径,在包名/servlet/ 这个路径下没有test.jsp文件。
除了写/test.jsp这种方式,还可以写为../test.jsp,因为这里的..表示回到上一层目录,所以是可以的。
- Servlet基础(4)
- Servlet & JSP 基础4(JSTL)
- Servlet基础(二)
- Servlet基础(1)
- Servlet基础(2)
- Servlet基础(3)
- Servlet基础(5)
- Servlet基础(一)
- Servlet基础(二) Servlet的生命周期
- Servlet学习笔记(三):Servlet基础
- Servlet学习笔记(三):Servlet基础
- Servlet基础(二):Servlet与JSP
- Servlet基础(入门篇)
- servlet基础梳理(一)
- servlet基础梳理(二)
- Servlet基础梳理(三)
- Servlet基础梳理(四)
- Servlet基础梳理(四)
- 信息系统项目管理师考试备考经验和心得(50天一次性通过)
- hdu 1196 lowest bit
- 什么函数不能声明为虚函数
- java toString()的用法
- url编码与解码
- Servlet基础(4)
- python dic 字典排序
- ccpc 2017 网络赛 1004 A Secret (扩展kmp)【模板】
- 二维数组的定义方式与细节
- R:向量、矩阵、数组操作
- vim+Vundle+vim-autoformat+astyle格式化代码
- [除法分块] BZOJ1257: [CQOI2007]余数之和sum
- django-pure-pagination的使用
- JZOJ4876. 【NOIP2016提高A组集训第10场11.8】基因突变(2017.8B组)