路径问题分析

路径问题:

	1. java中的路径:转发,重定向路径,refresh,servlet绑定的路径
	
	2. 流读取图片/文件,路径 (getRealPath或者直接是电脑上的某个绝对路径:d:\\stu.txt)
	
	3. html中的路径,img,link,a的href,form的action

绝对路径: 以”/”开头的都是绝对路径(全路径:项目虚拟路径+资源路径)

	1. 转发:req.getRequestDispatcher("/servletDemo10").forward(req,resp);
		
		转发这里没有写全路径,是因为转发只能转发当前项目内的url,所以相当于默认就有项目虚拟路径
		
	2. 重定向:resp.sendRedirect(req.getContextPath() + "/servletDemo07"); //例如:/response/servletDemo07
	
	3. 定时刷新:resp.setHeader("Refresh","3;URL=/response/login.html"); // 这里其实也可以通过req.getContextPath()动态获取虚拟路径,然后进行拼接
	
	4. servlet绑定路径: @WebServlet("/addStudentServlet");// servlet绑定的路径相当于是给servlet指定一个访问的url,那肯定不需要写项目虚拟路径
		
		访问此servlet的路径:例如:/stu/addStudentServlet
		
	5. 文件:
	
		BufferedWriter bw = new BufferedWriter(new FileWriter("d:\\stu.txt",true));//本地真实路径
	   
		String realPath = getServletContext().getRealPath("/img/hm.png"); //在项目中的路径:web/img/hm.png
		
	6. <frame src="/crm/html/frame/left1.html" scrolling="no"/>  //在项目中的路径web/html/frame/left1.html (/crm是虚拟路径)
	
	7. <a href="/stu/addStudent.html">添加学生</a> //在项目中的路径:web/addStudent.html  (/stu是虚拟路径)
	
	8. <form action="/stu/addStudentServlet"> //(/stu是虚拟路径)

相对路径: 不以”/”开头的都是相对路径(相对于当前浏览器地址栏的地址)

	1. img的src: <img src="../img/1.jpg">  
	2. link的href: <link rel="stylesheet" href="../css/login.css"/>

路径总结:一般项目中使用的路径都是绝对路径

	1. 转发:req.getRequestDispatcher(req.getContextPath()+"/servletDemo10").forward(req,resp);
	2. 重定向: 重定向:resp.sendRedirect(req.getContextPath() + "/servletDemo07");
	3. 定时刷新: resp.setHeader("Refresh","3;URL="+req.getContextPath()+"/login.html");
	4. jsp的form: <form action="${pageContext.request.contextPath}/addStudentServlet">
	5. jsp的a:<a href="${pageContext.request.contextPath}/addStudent.html">添加学生</a> 
	6. jsp的js跳转:location.href="${pageContext.request.contextPath}/xxxServlet"

版权声明:本文为a1120467800原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。