Web资源文件的加载
一、关于页面跳转的一下几种方法:
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); } }
这时就会得到相对应的结果:
Web资源文件的加载的更多相关文章
- HTML页面处理以及资源文件的加载
Javascript 异步加载详解 这篇文章很详细的介绍了HTML的页面处理以及资源文件的加载. 本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading ...
- 下载某资源文件并加载其中的所有Prefab到场景中
using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...
- Direct2D开发:MFC下从资源文件中加载位图
转载请注明出处:http://www.cnblogs.com/ye-ming 0X01 概述: 相对于GDI处理界面,Direct2D有得天独厚的优势,下图就是Direct2D与GDI的效果对比,wi ...
- WEB相关文件的加载顺序
一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xml,读取<context-param>和<listener>两个节点. 2.接着,容器创建一个Serv ...
- web.xml文件中加载顺序的优先级
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...
- <context-param> 标签引出的 web.xml 文件的加载顺序 [转]
代码示例 : <context-param> <param-name>contextConfigLocation</param-name> <param-va ...
- 白鹭引擎 - 资源文件的加载 ( RES, loadConfig, loadGroup )
class Main extends egret.DisplayObjectContainer { public constructor() { super(); this.addEventListe ...
- 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件
[源码下载] 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件 作者 ...
- Web前端性能优化——如何有效提升静态文件的加载速度
WeTest 导读 此文总结了笔者在Web静态资源方面的一些优化经验. 一.如何优化 用户在访问网页时, 最直观的感受就是页面内容出来的速度,我们要做的优化工作, 也主要是为了这个目标.那么为了提高页 ...
随机推荐
- [BUGFIX]__import_pywin32_system_module__
import_pywin32_system_module 修复方法: 编辑 X:/Python27/Lib/site-packages/win32/lib/pywintypes.py 第114行 if ...
- 隐私:网民最常用密码MD5解密
国内知名网络安全商瑞星公司曾发布过一项针对密码强度的专业研究报告,这项研究中列举了中国网民和美国网民最常用的密码集.研究表明,全球互联网大部分用户在密码使用中都存在着种种疏漏,一些极其简单的密码被广泛 ...
- Asp.net MVC2中你必须知道的扩展点(一):Controller Factory
Asp.net mvc2中提供很多可以扩展的地方,利用这些扩展之后,asp.net mvc使用起来更加灵活.Simone Chiaretta曾写过一篇文章:13 ASP.NET MVC extensi ...
- SVN版本控制与Visual Studio 2012的完美结合
今天电脑重装了,所以vs,sqlserver,svn都得重装,因为我的公司目前使用的版本控制工具是svn.vs和sqlserver的安装均正常没有出现问题,但是在装svn的时候出了一点小插曲!svn下 ...
- Codeforces Round #197 (Div. 2) : A
水题一个: 直接贴代码: #include<cstdio> #include<algorithm> #include<cstring> using namespac ...
- HDU 1394 Minimum Inversion Number(线段树的单点更新)
点我看题目 题意 :给你一个数列,a1,a2,a3,a4.......an,然后可以求出逆序数,再把a1放到an后,可以得到一个新的逆序数,再把a2放到a1后边,,,,,,,依次下去,输出最小的那个逆 ...
- Android Studio 打包及引用 aar
Android Studio 打包及引用 aar 1. 简述 在比较大的 Android 项目的开发中,我们经常会遇到工程.jar 包等等之间相互引用的方式.一般我们通过在 gradle 文件中配置依 ...
- WordPress Complete Gallery Manager插件‘upload-images.php’任意文件上传漏洞
漏洞名称: WordPress Complete Gallery Manager插件‘upload-images.php’任意文件上传漏洞 CNNVD编号: CNNVD-201309-377 发布时间 ...
- Xamarin.Android 4.10.01068 & Xamarin.iOS 1.8.361
Xamarin.Android 4.10.01068 & Xamarin.iOS 1.8.361 NEW support for Visual Studio 2013 & Portab ...
- CG&Game资源(转)
cg教程下载: http://cgpeers.com http://cgpersia.com http://bbs.ideasr.com/forum-328-1.html http://bbs.ide ...