Java Web 回顾总结(四) - Servlet - 常用路径获取与使用
2018-03-21 19:47
309 查看
一般使用如下几种方法
1.可以在servlet
的init()
方法里
String path = this.getServletContext().getRealPath("/");
这将获取web项目的全路径
例如 :
H:\eclipse\wepapps\app\
app是
web项目的根目录
2.通用获取路径方式获取 任意的class
的绝对路径
this.getClass().getClassLoader().getResource("/").getPath();
这将获取 到该
class目录的全路径
例如 :
H:\eclipse/webapps/app/com/server/Demon1
这个方法也可以不在
web环境里确定路径,比较好用
java Web url 路径映射
在JavaWeb开发中,只要是写
URL地址,那么建议最好以
/开头,也就是使用绝对路径的方式
当
/是给服务器用的,则代表当前的web工程,如果
/是给浏览器用的,则代表
webapps目录。
示例
1.ServletContext.getRealPath(String path)
获取资源的绝对路径
/** * ServletContext.getRealPath("/download/1.JPG")是用来获取服务器上的某个资源, * 那么这个"/"就是给服务器用的,"/"此时代表的就是web工程 * ServletContext.getRealPath("/download/1.JPG")表示的就是读取web工程下的download文件夹中的1.JPG这个资源 */ //得到 要访问的web资源的绝对路径(要在 init() 中使用) this.getServletContext().getRealPath("/download/1.JPG");
2.在服务器端forward
传参跳转到其他页面
/** * 客户端请求某个web资源,服务器跳转到另外一个web资源,这个forward也是给服务器用的, * 那么这个"/"就是给服务器用的,所以此时"/"代表的就是web工程 */ this.getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
3.使用include
指令或者<jsp:include>
标签引入页面
<%@include file="/jspfragments/head.jspf" %> <jsp:include page="/jspfragments/demo.jsp" /> 此时"/"代表的都是web工程。
“/”代表webapps目录的常见应用场景
示例
1.使用sendRedirect实现请求重定向response.sendRedirect("/req/index.jsp");
服务器发送一个
URL地址给浏览器,浏览器拿到
URL地址之后,再去请求服务器,所以这个
/是给浏览器使用的
此时
/代表的就是
webapps目录,”/req/index.jsp
这个地址指的就是webapps\req\index.jsp`
response.sendRedirect("/项目名称/文件夹目录/页面");
这种写法是将项目名称写死在程序中的做法,不灵活,万一哪天项目名称变了,此时就得改程序,所以推荐使用下面的灵活写法:
将
response.sendRedirect("/req/index.jsp");
这种写法改成
response.sendRedirect(request.getContextPath()+"/index.jsp");
request.getContextPath()获取到的内容就是
/req,这样就比较规范
使用request.getContextPath()
代替/项目名称
,推荐使用这种方式
2.使用超链接跳转<a href="/JavaWeb_HttpServletResponse_Study_20140615/index.jsp">跳转到首页</a>
这是客户端浏览器使用的超链接跳转,这个”/”是给浏览器使用的,此时”/”代表的就是webapps目录。
使用超链接访问web资源,绝对路径的写法推荐使用下面的写法改进:
<a href="${pageContext.request.contextPath}/index.jsp">跳转到首页</a>
这样就可以避免在路径中出现项目的名称,使用
${pageContext.request.contextPath}取代”/req”
3.Form表单提交
<form action="/req/servlet/CheckServlet" method="post"> <input type="submit" value="提交"> </form>
这是客户端浏览器将
form表单提交到服务器,所以这个
/是给浏览器使用的,此时
/代表的就是
webapps目录。
对于
form表单提交中
action属性绝对路径的写法,也推荐使用如下的方式改进:
<form action="${pageContext.request.contextPath}/servlet/CheckServlet" method="post"> <input type="submit" value="提交"> </form>
${pageContext.request.contextPath}的效果等同于
request.getContextPath(),两者获取到的都是
/项目名称
4.js脚本和css样式文件的引用
<%--使用绝对路径的方式引用js脚本--%> <script type="text/javascript" src="${pageContext.request.contextPath}/js/index.js"> </script> <%--${pageContext.request.contextPath}与request.getContextPath()写法是得到的效果是一样的--%> <script type="text/javascript" src="<%=request.getContextPath()%>/js/login.js"></script> <%--使用绝对路径的方式引用css样式--%> <link rel="stylesheet" href="${pageContext.request.contextPath}/css/index.css" type="text/css"/>
相关文章推荐
- 关于JavaWeb中Servlet里基本路径获取的总结
- 关于java和web工程项目中各种路径的获取总结
- Java Web 回顾总结(五) - HttpServlet - Request - 开发常用方法总结
- JavaWeb学习总结(四十八)——模拟Servlet3.0使用注解的方式配置Servlet
- ServletContext对象(4)、web项目中路径使用、ServletConfig,ServletContext方法总结
- 关于Java和web工程项目中各种路径的获取总结
- Java web 中几个常用的获取项目路径的方法
- 【javaWeb】HttpServletRequest常用获取URL的方法
- java中HttpServletRequest常用获取url、资源名等方法总结
- Java Web 回顾总结(四) - servlet线程安全 - 并发访问(待补充)
- JavaWeb开发使用Cookie创建-获取-持久化、自动登录、购物记录、作用路径
- 使用Java获取系统信息的常用代码整理总结
- JavaWeb项目里面的路径获取方法总结
- javaweb工程,Servlet里面获取当前WEB跟路径的文件绝对路径地址
- JavaWeb常用开发技术总结-js、spring、javabean、mysql数据库、dwr的使用等
- Java Web 回顾总结(五) - HttpServlet - Request - 常用方法手册
- JAVA Web中【路径使用】总结
- java(Web)中相对路径,绝对路径问题总结
- JSP、JAVA获取各种路径总结
- java(Web)中相对路径,绝对路径问题总结