项目结构
项目结构如图所示,工程名称为myWeb
1.“/”的使用(web项目下)
给服务器用: “/” 表示当前web应用的根目录(webContent下)
//请求转发 是内部服务器内的资源跳转,浏览器的地址不会变
request.getRequestDispatcher("/target.html").forward(request, response);
给浏览器用: "/"表示webapps(tomcat的webapps)的根目录下
//重定向 是发送302状态码给浏览器,让浏览器重新请求其他链接
response.sendRedirect("/myWeb/target.html");
//写页面跳转
response.getWriter().write("<a href='/myWeb/target.html'>点我跳转</a>");
//可以使用request.getContextPath()获取当前项目的名称(在这里为/myWeb)
System.out.println(request.getContextPath()+"/target.html");
"."表示tomcat的bin目录下
2.使用web应用下加载资源文件的方法
src目录下的资源文件,实际是放在tomcat的webapp目录下的字节码文件中,参考我的目录为:
F:\tomcat\apache-tomcat-7.0.82\wtpwebapps\myWeb\WEB-INF\classes
或者
F:\tomcat\apache-tomcat-7.0.82\webapps\myWeb\WEB-INF\classes
getRealPath
//读取静态资源路径
Properties p = new Properties();
p.load(new FileInputStream(this.getServletContext().getRealPath("WEB-INF\\classes\\db.properties")));
getResourceAsStream
Properties p = new Properties();
p.load(this.getServletContext().getResourceAsStream("WEB-INF\\classes\\db.properties"));
3.java项目与Web项目通用读取资源文件
会直接去字节码文件的目录(即classes目录下)下去加载
Properties p = new Properties();
//通过获取类的字节码文件的内加载器找到字节码文件目录classes
p.load(this.getClass().getClassLoader().getResourceAsStream("db.properties"));