码迷,mamicode.com
首页 > Web开发 > 详细

web工程中的各种路径(eclipse开发)

时间:2018-05-03 00:56:02      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:表单提交   ack   目录   pac   his   表单   文件   content   virt   

目前遇到的 web 工程中要写url和路径的文件有 

  • webContent中.jsp/.html
  • src中的servlet类
  • src非servlet类的普通类

.jsp/.html

  form表单提交的action

    1. 跳转到.jsp

    使用相对路径,相对于web工程根目录

    技术分享图片

 

<!-- from JSP1.jsp to JSP2.jsp --> 
<!-- JSP1.jsp中的form --> 
<form action="File/JSP2.jsp">
<!-- from JSP2.jsp to JSP1.jsp --> 
<!-- JSP2.jsp中的form --> 
<form action="../JSP1.jsp">

 

    2.跳转到servlet1

    与package无关

    技术分享图片

 

//Servlet1.java 的映射地址
@WebServlet(name = "Servlet1", urlPatterns = { "/Servlet1" })
<!-- from JSP2.jsp to Servlet1 --> 
<!-- JSP2.jsp中的form --> 
<form action="../Servlet1">

 

改变servlet的映射地址,使servlet映射到与JSP2.jsp一个文件夹下

//修改servlet1的映射地址后
@WebServlet(name = "Servlet1", urlPatterns = { "/File/Servlet1" })
<!-- from JSP2.jsp to Servlet1 --> 
<!-- JSP2.jsp中的form --> 
<form action="Servlet1">

 

 再次改变servlet映射地址,servlet映射到虚拟目录下

//再次修改servlet1的映射地址后,映射到virtualFile虚拟目录
@WebServlet(name = "Servlet1", urlPatterns = { "/virtualFile/Servlet1" })
<!-- from JSP2.jsp to Servlet1 --> 
<!-- JSP2.jsp中的form --> 
<form action="../virtualFile/Servlet1">

 

src中的servlet类

    1、url注解中的映射地址,与jsp(html)联系

    2、访问webContent中的资源文件1.txt(按照tomcat中的工程结构)

技术分享图片

技术分享图片

 

//利用getServletContext().getRealPath()获取web工程的绝对路径
String filePath = this.getServletContext().getRealPath("/sourceFile/1.txt");
//filePath=// D:\tomcat\apache-tomcat-8.0.50-windows-x64\apache-tomcat-8.0.50\webapps\test3\sourceFile\1.txt
BufferedReader br = new BufferedReader(new FileReader(filePath));

 

  2、访问src中的资源文件

技术分享图片

技术分享图片

//访问src中的文件,要按照tomcat中的工程目录获取绝对路径
//servlet不要映射到虚拟目录
String filePath = this.getServletContext().getRealPath("/WEB-INF/classes/2.txt");
BufferedWriter br = new BufferedWriter(new FileWriter(filePath));

 

 3、重定向到servlet(jsp),只能用相对路径

//重定向使用相对路径,url发生改变
response.sendRedirect("File/JSP2.jsp");

 

 4、请求转发到servlet(servlet),可以 用相对路径、绝对路径

//相对路径
RequestDispatcher rd = request.getRequestDispatcher("Servlet2");
rd.forward(request,response);
//绝对路径
RequestDispatcher rd = request.getRequestDispatcher("/Servlet2");
rd.forward(request,response);              

 

src非servlet类的普通类

  技术分享图片

 

   1、普通类访问webContent中的资源文件

//利用class获取本类所在的目录(不含pacakage,只到classes),
//利用getResource()获取资源文件绝对路径
//在webContent中则要两次返回上级目录(WEB-INF,工程名URLTest)
File filePath = new File(NormalClass.class.getClassLoader().getResource("../../sourceFile/1.txt").getPath());
FileInputStream fn = new FileInputStream(filePath);

    2、普通类访问src中的资源文件

//利用class获取本类所在的目录(不含pacakage,只到classes),
//利用getResource()获取资源文件绝对路径
File filePath = new File(NormalClass.class.getClassLoader().getResource("2.txt").getPath());
FileInputStream fn = new FileInputStream(filePath);

 

web工程中的各种路径(eclipse开发)

标签:表单提交   ack   目录   pac   his   表单   文件   content   virt   

原文地址:https://www.cnblogs.com/luiyuying/p/8981593.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!