在项目开发过程中,难免会遇见各种加载文件的问题,那么文件路径的书写是不是同样困扰过你,如果是,那么这篇文章就是为你而写~
1、第一步
不论你要加载的文件路径是什么,先写一个斜杠/
2、第二步
思考一下,你要加载的这个文件是浏览器请求的,还是服务器请求的(不同请求对象斜杠会有不同含义哦)
浏览器:/表示服务器中所有项目的根目录,例如tomcat服务器中的webapps目录
服务器:/表示该项目的根目录,例如webdemo
3、第三步
明白了自己目前在哪个根目录下之后就可以找到要加载文件的路径了哦,如果是浏览器请求,那么/项目名/../文件名
服务器请求的话就简单了,不用写项目名,之间写文件在项目中的路径即可
4.实例
比如,我在我的项目20170323中的web下创建一个test.html文件,通过Servlet访问这个文件
文件目录结构如下:
PathDemo.java文件代码如下:
package lm.practice; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * Created by Administrator on 2017/3/24. */ public class PathDemo extends HttpServlet{ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8;"); //转发,服务器请求 request.getRequestDispatcher("/test.html").forward(request,response); //重定向,浏览器请求 response.sendRedirect("/20170323/test.html"); //超链接href,浏览器请求 response.getWriter().write("<html><body><a href='/20170323/test.html'>超链接</a></body></html>"); //提交form表单,浏览器请求 response.getWriter().write("<html><body><form action='/20170323/test.html'><input type='submit' value='提交'/></form></body></html>"); } }
web.xml配置如下:
<servlet> <servlet-name>PathDemo</servlet-name> <servlet-class>lm.practice.PathDemo</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>PathDemo</servlet-name> <url-pattern>/path</url-pattern> </servlet-mapping>
test.html代码如下:
<body> --------------------------<br/> This is a simple page! <br/> 123456789 <br/> jjjjjjjjj <br/> 哈哈哈哈 <br/> -------------------------- </body>
看到了哦,我的路径是怎么写的~快点启动你的服务器,测试一下吧^_^
