web工程中的各种路径(eclipse开发)
目前遇到的 web 工程中要写url和路径的文件有
- webContent中.jsp/.html :action
- src中的servlet类 : 映射地址、重定向、请求转发、访问资源文件(webContent中、src中)
- src非servlet类的普通类 :访问资源文件(webContent中、src中)
以下一一说明:
.jsp/.html中的路径
form表单提交的action中要写servlet(jsp)的路径
1. 跳转到.jsp
action中使用相对路径,相对于当前页面。
<!-- from JSP1.jsp to JSP2.jsp --> <!-- JSP1.jsp中的form --> <form action="File/JSP2.jsp">
<!-- from JSP2.jsp to JSP1.jsp --> <!-- JSP2.jsp中的form --> <form action="../JSP1.jsp">
2.跳转到servlet1
注意,路径与package产生的目录无关。
//Servlet1.java 的映射地址 @WebServlet(name = "Servlet1", urlPatterns = { "/Servlet1" })
<!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="../Servlet1">
改变servlet的映射地址,使servlet映射到与JSP2.jsp一个文件夹下
//修改servlet1的映射地址后 @WebServlet(name = "Servlet1", urlPatterns = { "/File/Servlet1" })
<!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="Servlet1">
再次改变servlet映射地址,servlet映射到虚拟目录下
//再次修改servlet1的映射地址后,映射到virtualFile虚拟目录 @WebServlet(name = "Servlet1", urlPatterns = { "/virtualFile/Servlet1" })
<!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="../virtualFile/Servlet1">
3.更新:利用超链接<a>跳转到servlet,其中的href:
//相对于当前jsp的相对路径跳转到servlet,同时传递参数id = 111,111为String类//在servlet页面可以通过 request.getPatameter("id")获取111 <a href="servlet1?id=111">点击跳转到servlet1</a>
src中的servlet类
- url注解中的要写servlet的映射地址
- servlet类访问webContent中的资源文件 Servlet1访问1.txt(按照tomcat中的工程结构)
//Servlet1.java 的映射地址 @WebServlet(name = "Servlet1", urlPatterns = { "/Servlet1" })
//利用getServletContext().getRealPath()获取web工程的绝对路径 String filePath = this.getServletContext().getRealPath("/sourceFile/1.txt"); //filePath=// D:\tomcat\apache-tomcat-8.0.50-windows-x64\apache-tomcat-8.0.50\webapps\test3\sourceFile\1.txt BufferedReader br = new BufferedReader(new FileReader(filePath));
- 访问src中的资源文件 Servlet1访问2.txt
//Servlet1.java 的映射地址 @WebServlet(name = "Servlet1", urlPatterns = { "/Servlet1" })
//访问src中的文件,要按照tomcat中的工程目录获取绝对路径 //servlet不要映射到虚拟目录 String filePath = this.getServletContext().getRealPath("/WEB-INF/classes/2.txt"); BufferedWriter br = new BufferedWriter(new FileWriter(filePath));
- 重定向到servlet(jsp),只能用相对路径 servlet1重定向到JSP2.jsp
//重定向使用相对路径,url发生改变 response.sendRedirect("File/JSP2.jsp");
- 请求转发到servlet,可以 用相对路径、绝对路径 servlet1请求转发到Servlet2
//相对路径 RequestDispatcher rd = request.getRequestDispatcher("Servlet2"); rd.forward(request,response); //绝对路径 RequestDispatcher rd = request.getRequestDispatcher("/Servlet2"); rd.forward(request,response);
src非servlet类的普通类
- 普通类访问webContent中的资源文件 NormalClass中访问1.txt
//利用class获取本类所在的目录(不含pacakage,只到classes), //利用getResource()获取资源文件绝对路径 //在webContent中则要两次返回上级目录(WEB-INF,工程名URLTest) File filePath = new File(NormalClass.class.getClassLoader().getResource("../../sourceFile/1.txt").getPath()); FileInputStream fn = new FileInputStream(filePath);
- 普通类访问src中的资源文件 NormalClass中访问2.txt
//利用class获取本类所在的目录(不含pacakage,只到classes), //利用getResource()获取资源文件绝对路径 File filePath = new File(NormalClass.class.getClassLoader().getResource("2.txt").getPath()); FileInputStream fn = new FileInputStream(filePath);
注意:
注意!! 第一次打开.jsp页面时,.jsp页面的所有相对路径都是相对.jsp页面的,然而从servlet转发到jsp页面时相对路径会变成相对于servlet的路径,会导致资源文件访问不到。
如何避免:在所有相对路径前面加上 ${pageContext.request.contextPath}来获得相对web工程的目录。
如:
<!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="../Servlet1">
改为
<!-- from JSP2.jsp to Servlet1 --> <!-- JSP2.jsp中的form --> <form action="${pageContext.request.contextPath}/Servlet1">
转载于:https://www.cnblogs.com/luiyuying/p/8981593.html
web工程中的各种路径(eclipse开发)相关推荐
- eclipse的web工程中导入jir包如何放到lib目录中
eclipse的web工程中import的jar文件,如何自动部署到tomcat中 eclispe中导入external jar package 无法添加入webcontent中的lib中,导致tom ...
- html500错误原因1003无标题,web工程中404/500错误页面配置+404页面模板
[实例简介] web工程中404/500错误页面配置+404页面模板 [实例截图] [核心代码] 247959a9-c3ea-4360-8e57-105d680b29f0 ├── 404页面模板 │ ...
- java 集成logback_java web工程中logback换配置文件的路径
本人小网站: http://51kxd.com/ 欢迎大家不开心的时候访问访问,调节一下心情 web.xml中配置: logbackConfigLocation file:/datum/Data ...
- web项目中的相对路径和绝对路径
文章目录 一.相对路径与绝对路径 1.相对路径 1.绝对路径 二. web应用中相对路径与绝对路径的使用 三.Web 绝对路径与相对路径的利弊 一.相对路径与绝对路径 1.相对路径 相对路径就是相对于 ...
- java web项目中的根路径踩坑
以下总结来自于颜群老师课堂笔记. java web项目中的"/"怎样区分? 项目根目录: WebContent \ src(所有的构建目录) 如果WebContent中有一个文件i ...
- Java在WEB项目中获取文件路径
2019独角兽企业重金招聘Python工程师标准>>> jsp中获得文件路径 1.根目录所对应的绝对路径:request.getRequestURI(): 2.文件的绝对路径:app ...
- java web工程中如何添加图片_java web中如何添加图片
java web中如何添加图片 对于java可视化界面插入背景图片只需要background-image:url(图片路径)就行,而对于web项目中,并非如此 效果如下: 我们就需要在jsp页面中写J ...
- web工程中集成cas单点登录
背景 cas的服务端已经搭建成功,现在需要在web项目中集成cas client.我们项目使用spring 1.在pom中配置 <!--cas单点登录 --><dependency& ...
- (转)WebSphere的web工程中怎么获取数据源
原文:http://aguu125.iteye.com/blog/1694313 https://blog.csdn.net/bigtree_3721/article/details/44900325 ...
最新文章
- 结构化场景中的RGB-D SLAM
- POJ 2828 Buy Tickets | 线段树的喵用
- ajax重复被调用,重复jQuery ajax调用
- C#中通过HttpClient发送Post请求
- P4151 [WC2011]最大XOR和路径(线性基应用)
- 第十三期:你所了解的javascript?
- 服务器bios修改uefi,服务器 uefi bios设置
- 简单计算机app inventor,app inventor计算器
- mysql 8 nosql_MySQL8.0-NoSQL和SQL的对比及MySQL的优势
- Java 继承——3
- STM8S001J3M3还能完这么多花样,开发板尝鲜体验。
- java 网格包,求大神解答:JAVA网格包布局管理器小程序问题
- 最新python中一升级所有已安装的包方法
- 华硕a53s拆机图解_华硕a53s_拆机教程_图解_20140228更正
- 【分享贴】PCB设计思路
- 硬盘分区无法打开,提示“文件或目录损坏且无法读取”
- QGIS中WKT转为可视化涂层
- Win10 通知区域蓝牙图标消失问题
- hexo+yilia添加背景特效
- win7系统中的消息队列服务器,高手分析win7系统安装消息队列的详细