Web资源文件的加载
2016-11-01 15:02
162 查看
一、关于页面跳转的一下几种方法:
package com.gqx.load; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Test extends HttpServlet { /** * 给服务器端使用的: /表示当前web的根目录 (webroot下) * 给浏览器端使用的:/表示在webapps的根目录(webapps下) */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); /** * 转发 */ // request.getRequestDispatcher("/index.jsp").forward(request, response); /** * 请求的重定向 */ // response.sendRedirect("/TestService/index.jsp"); /** * html超链接 */ response.getWriter().write("<html><body><a href='/TestService/index.jsp'>超连接</a></body><html>"); /** * html页面中表单的提交 */ response.getWriter().write("<html><body><form action='/TestService/index.jsp'><input type='submit'/></form></body><html>"); } }
注意:要正确区分浏览器还是服务器端使用“.”符号来获取路径,请求的转发是直接由Servlet实现的,所以是由服务器端来完成的,而重定向是服务器向浏览器发送location和状态码302使浏览器去完成页面的跳转,此时是在浏览器的目录下实现跳转的,同理,表单请求和超链接都是浏览器短的目录,所以要注意点号的不同意义
二、读取服务器端的文件,路径的注意事项:
假设在服务器端设置了一个属性文件,需要读取如图:属性的内容:
通过简单的文件读取如下:
File file=new File("./src/db.porperties);
我们会发现此时去运行,会发生错误,因为根本找不到文件,究其原因,不难发现,web项目的“.”与java项目的"."所指示的文件目录不同,web目录的“.”代表的是tomcat下的bin目录,此时就无法找到相应的文件和资源,这个时候我们可以用到servletContext下面的方法去获取路径
package com.gqx.load; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.Properties; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 读取web应用下面的资源文件(例如propertis) * @author Administrator * */ public class ResDemo extends HttpServlet { /** * "." 相对于java命令运行的当前路径 * 在java项目中,“.”代表java目录的根目录下开始, * 在web项目中:"."代表当前在tomcat/bin目录下开始,所以不能使用这种相对路径 */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 得到web应用资源下的文件 //方法1、servletContxt中的方法,拿到项目下的文件 // String path=this.getServletContext().getRealPath("/WEB-INF/classes/db.properties"); // File file=new File(path); // System.out.println(file.getAbsolutePath()); // // FileInputStream in=new FileInputStream(file); //方法2、getResourceAsStream() 得到资源文件,返回输入流 InputStream in=this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties"); Properties pro=new Properties(); //读取资源文件 pro.load(in); String user=pro.getProperty("user"); String password=pro.getProperty("password"); System.out.println("user="+user); System.out.println("password="+password); } }
这时就会得到相对应的结果:
相关文章推荐
- Java Web项目加载properties资源文件
- Android Webview加载外部html时选择加载本地的js,css等资源文件
- Android Webview 加载外部html时选择加载本地的js,css等资源文件
- 获取web应用下加载资源文件的方法
- IOS开发(7)WKWebView加载本地HTML、CSS、JS文件JS(解决html内访问其他资源路径问题)
- web下加载资源文件
- JFinal的Web项目从ClassPath加载静态资源文件
- iOS WebView 加载本地资源(图片,文件等)
- ServlertContext与类加载器获取Web应用中的资源文件
- javaWeb-web项目中加载资源文件路径的两种方式
- iOS WebView 加载本地资源(图片,文件等)
- Android Webview 加载外部html时选择加载本地的js,css等资源文件
- Unity加载Web资源需求crossdomain.xml文件格式
- web无法加载资源文件
- 关于未能加载文件或程序集 system.web.extensions解决方法
- 资源文件打包到Web自定义控件中应用
- web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序 研究
- 如何加载自定义的资源文件(pro.properties)
- 使用AJAX时错误:未能加载文件或程序集 system.web.extensions解决方法
- Spring笔记之八(国际化,资源文件的加载)