标签:表单提交 ack 目录 pac his 表单 文件 content virt
目前遇到的 web 工程中要写url和路径的文件有
.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);
标签:表单提交 ack 目录 pac his 表单 文件 content virt
原文地址:https://www.cnblogs.com/luiyuying/p/8981593.html