Web应用中的路径问题
2016-05-24 11:38
295 查看
1、Web应用中的路径问题
在Web应用中,涉及到路径的地方有:a)web.xml文件内,Servlet的映射配置(servlet-mapping)需要设置url-pattern:<url-pattern>路径</url-pattern>
b)在Servlet内进行转发时,需要指定路径:request.getRequestDispatcher("路径").forward(request, response);
c)在Servlet内进行重定向时,需要指定路径:response.sendRedirect("路径");
d)在网页中,超链接a标签的href属性需要指定路径:<a href="路径">超链接</a>
e)在网页中,表单form的action属性需要指定路径:<form action="路径" method="post"></form>
问题:这些路径该如何写呢?
思路:
1、在Web应用中,凡是涉及到路径的地方,都要以“/”开头
2、思考“目标资源”是给谁使用的。
给服务器使用的: / 表示在当前web应用的根目录(%tomcat%/webapps/WebRoot下)
给浏览器使用的: / 表示在当前网站(webapps)的根目录下(%tomcat%/webapps/下)
3、如果目标URL是http://localhost:8080/myweb/target.html,那么各个路径写法如下:
a)Tomcat服务器使用。<url-pattern>/target.html</url-pattern>
b)Tomcat服务器使用。request.getRequestDispatcher("/target.html").forward(request, response);
c)浏览器使用。response.sendRedirect("/myweb/target.html");
d)浏览器使用。<a href="/myweb/target.html">超链接</a>
e)浏览器使用。<form action="/myweb/target.html" method="post"></form>
2、在路径中,“.”代表的含义和具体位置。
无论在Java项目中,还是Web项目中,“.” 代表java命令的运行目录。那么,java运行命令在哪个目录呢??在Java项目中,很多Java培训机构这样讲过,MyEclipse工具会将classpath环境变量设置为%project%/bin目录下,其执行java命令的目录在%project%目录下
在Web项目中,MyEclipse工具需要启动Tomcat服务器,因此执行java命令的目录在%tomcat%/bin目录下
例如,分别在Java项目和Web项目的src目录下,分别添加db.properties文件
在Java项目中,可以用File file = new File("./src/db.properties");可以访问到db.properties文件,因为“.”代表java命令的执行目录,而MyEclipse将在项目的根目录中执行java命令。
在Web项目中,用File file = new File("./src/db.properties");就访问不到,因为在%tomcat%/bin目录下,根本就没有src文件夹,更没有db.properties文件。
3、通过getResource()和getResourceAsStream()得到资源
在Java项目和Web项目中,都可以使用下面的方法:类名.class.getResource("路径"); 使用前,需要以“/”开头
类名.class.getResourceAsStream("路径"); 使用前,需要以“/”开头
类名.class.getClassLoader().getResource("路径"); 使用前,不需要以“/”开头
类名.class.getClassLoader().getResourceAsStream("路径"); 使用前,不需要以“/”开头
4、获取Web应用的资源
通过ServletContext对象获取Web应用的资源文件:String getRealPath(String path)
InputStream getResourceAsStream(String path)
相关文章推荐
- Java如何实现系统监控、系统信息收集(转
- Android学习初步
- 实现一个TODO宏
- 用devstack快速部署 openstack
- LeetCode:Combinations
- ceph存储 ceph中pglog处理流程
- mybatis学习笔记(七)增删改查
- [leetcode] 350. Intersection of Two Arrays II
- Activity和Service的生命周期(图)
- cygwin 安装以及配置
- 欢迎使用CSDN-markdown编辑器
- 汉字转全拼
- Google I/O 2016 RecyclerView的前世今生,原理详解等
- eclipse配置external tool configurations外部工具
- (HDU 1010) Tempter of the Bone
- Visio画好的图在word中只显示一部分
- 百度地图坐标系和火星坐标系之间的互相转换
- java调用windows的wmi获取设备性能数据
- WebView的分析与使用
- liblinphone注册状态的变化