Servlet--超链接,表单提交,重定向,转发4种情况的路径
来源:互联网 发布:哪个免费音乐软件好 编辑:程序博客网 时间:2024/06/13 17:42
写路径的情况无非下面4种情况,这里做一个整理。
- 1,超链接
假设使用下面的目录结构:
相对路径:
1,我们来看看在linkin.html中引入linkin.js和linkin.html文件相对路径应该怎么写?
<span style="white-space:pre"></span><script type="text/javascript" src="../scripts/linkin.js"></script><link rel="stylesheet" type="text/css" href="../styles/linkin.css">
2,如果在linkin.jsp中引入linkin.js和linkin.html文件相对路径应该怎么写?
<span style="white-space:pre"></span><script type="text/javascript" src="scripts/linkin.js"></script><link rel="stylesheet" type="text/css" href="styles/linkin.css">
注意:上面的html文件和jsp文件引入静态资源相对路径还不一样,记住下面的一句话,如果是在服务器上直接运行的静态资源比如html文件引入别的静态资源这里的“相对”就是物理意义上的相对,如果是在服务器上要跳转的这种视图资源比如jsp文件引入别的静态资源这里的“相对”是相对于上整个web工程的相对,2者不同的。
绝对路径:以“/”开头,“/”表示根目录,之后从项目名依次开始写。
<script type="text/javascript" src="/linkin/scripts/linkin.js"></script>
<link rel="stylesheet" type="text/css" href="/linkin/styles/linkin.css">
- 2,表单提交
相对路径:<form action="LinkinServlet" method="POST">
绝对路径:<form action="/linkin/LinkinServlet" method="POST">
- 3,重定向
相对路径:resp.sendRedirect("jsp/Linkin1.jsp");
绝对路径:resp.sendRedirect("/linkin/jsp/Linkin1.jsp");
- 4,转发
相对路径:req.getRequestDispatcher("jsp/Linkin1.jsp").forward(req, resp);
绝对路径:req.getRequestDispatcher("/jsp/Linkin1.jsp").forward(req, resp);
总结:
1,尽管我们不怎么写相对路径,但是难免会维护别人的代码,所以还是要了解一下的。如果在超链接中使用了到了相对路径,如果要是没有服务器跳转,比如html这些文件,则相对就是文件所在的目录,要是经过了服务器跳转,比如jsp这些文件或者通过XXX.do跳转到的页面上的话,这里的相对是相对于整个web应用,不一样的。
2,绝对路径比较好,以后我们写路径都直接写绝对路径就好。除了转发,绝对路径的开头“/”代表域名之后的东西,也就是说相当于省去了整个url上面的主机IP和端口号而已,项目名称还是要写的。转发是唯一一个比较特殊的,因为转发本身就是在web应用内部跳转的,所以不能写项目名称,直接从项目名称后面开始写。
- 如果还不理解,请好好理解下面这句话:
3,如果有代码洁癖的人在写绝对路径的时候,不想在jsp出现项目名称这种硬码,怎么办呢?用<%=request.getContextPath()%>来代替,比如:
<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/common.css" /><script type="text/javascript" src="<%=request.getContextPath()%>/jquery/base/jquery-1.8.0.js"></script>
- 最后统一来整理下请求路径:
请求路径是把请求导向到一个 servlet 来响应服务。它是由几个重要的部分来组成的。 通过 HttpRequest 对象,暴露了如下信息(对照应用的目录结构):
1)上下文路径(Context Path)
该路径的前缀是和 ServletContext 相关的。如果 Context 就是 Web 服务器的 URL 命名空间的缺省的根上下文时,那么上下文路径将会是一个空的字符串。 如果上下文并不是服务器的命名空间的根,则上下文路径就以“/”开始,但不能以“/”结束。
2)Servlet 路径(Servlet Path)
该路径就是直接与激活该请求的相应映射,它也是以“/”开头。但要注意的是,如果指定的请求是与“/*”模式相匹配,则此时 Servlet 路径就是一个空字符串。
3)路径信息(PathInfo)
请求路径中除了上下文路径和 Servlet 路径以外的部分。当没有额外的路径时路径信息就是空的(null),或者它会以“/”开始的字符串。 在 HttpServletRequest 接口中定义如下的方法来访问请求路径的相应信息:getContextPath(); getServletPath(); getPathInfo(); 值得注意的是,请求 URI 和路径的各部分之间的 URL 编码的不同之外,下面的等式恒成立: requestURI = contextPath + servletPath + pathInfo
- Servlet--超链接,表单提交,重定向,转发4种情况的路径
- Servlet--表单、超链接、转发、重定向4种情况的路径
- 关于转发、重定向、表单提交、超链接跳转路径分析
- J2EE学习笔记(三)之重定向、转发、超链接及表单提交的区别和路径
- 路径问题--转发、重定向、表单、超链接
- servlet获取表单提交的数据、请求转发、请求包含、请求重定向
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- Servlet中转发和重定向的路径问题以及表单提交路径问题
- servlet中的请求转发和重定向的路径问题
- servlet请求转发、重定向路径
- JavaEE------超链接、重定向、转发
- servlet的转发与重定向
- 46期学习心得连载5-牟文华
- 接口 抽象类
- Makefile经典教程(掌握这些足够)
- Extjs下拉框扩展
- 报错异常
- Servlet--超链接,表单提交,重定向,转发4种情况的路径
- AD多层板总结
- 快速基于echarts的大数据可视化
- qt学习笔记(五)之浅析信号与槽进制
- java新框架JFinal来啦!你还是只知道SSH框架吗?
- 汉字的区位码
- 支付宝支付,RSA加密
- linux+caffe+cuda6.5+GPU
- HTML5 中websocket长连接的具体实现方法