WEB应用中的路径问题

一. WEB应用中的路径问题

1. 规律:

(1) 首先要全部加斜杠"/"。

(2) 思考下目标资源的地址target.html,要想清楚这个目标资源究竟是给谁用的,也就是说谁去跳转到这个html

页面。有两种可能:

① 是提供给服务器使用的:那么"/"表示在当前web应用的根目录。也就是说已经在WebRoot目录下,服务器内

部的行为一定是在当前项目下去跳转的,服务器不可能调到其他项目。

② 是给浏览器使用的:那么"/"表示在webapps的根目录下,webapps下还没有确定是具体哪一个项目。给浏览

器用前面一定要加上项目名称。

注意:最好不要去使用相对路径,比如:..

2. 实例

@WebServlet("/PathDemo")
public class PathDemo extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		/*
		 * 1.转发中的路径:目标资源是给服务器使用的。
		 */
		request.getRequestDispatcher("/target.html").forward(request, response);
		/*
		 * 2.请求重定向中的路径,
		 */
		response.sendRedirect("/czjy_day11/target.html");
		/*
		 * 3.html中的超链接href:超链接是浏览器发出超链接请求,
		 */
		response.getWriter().write("<html><body><a href = '/czjy_day11/target.html'>超链接</a></body></html>");
		/*
		 * 4.html页面中的form提交地址:也是浏览器发出请求,而不是服务器内部跳转
		 */
		response.getWriter().write(
				"<html><body><form action='/czjy_day11/target.html'><input type = 'submit'/></form></body></html>");
	}
}

二. 读取WEB应用下的资源文件(比如:src目录下的properties)

1.“.”的含义

注意:Java项目和WEB项目,它们项目不一样,所以"."代表的含义也不一样。"."表示相对路径下的当前路

径,".."表示上一层路径。

(1) Java项目中,"."表示的相对路径是相对于Java命令运行的目录,"."代表在Java项目的根目录下开始。Java命

令运行的目录就是代表"."所在的目录。也就是说Java命令在哪里运行,那么这个"."就表示在哪里

(2)在WEB项目中,"."也是代表java命令运行的目录,java运行目录在哪里?在tomcat/bin目录下。所以,"."代

表在tomcat/bin目录下开始,所以不能使用这种相对路径。

2. 实例:

@WebServlet("/ResourceDemo")
public class ResourceDemo extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 读取文件
		// File file = new File("./src/db.properties");报错,找不到
		/*
		 * 使用web应用下加载资源文件的方法
		 */
		/*
		 * //1.使用getRealPath读取,返回资源文件的绝对路径。 
		 * String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
		 * "/"代表在czjy_day11目录下。
		 * File file = new File(path); 
		 * FileInputStream in = new FileInputStream(file);
		 */
		// 2.getResourceAsStream() 得到资源文件,返回的是输入流。
		InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
		Properties prop = new Properties();
		// 读取资源文件
		prop.load(in);
		String user = prop.getProperty("user");
		String password = prop.getProperty("password");
		System.out.println("user=" + user);
		System.out.println("password=" + password);
	}
}









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

处女座的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值