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静态资源方面的一些优化经验. 一.如何优化 用户在访问网页时, 最直观的感受就是页面内容出来的速度,我们要做的优化工作, 也主要是为了这个目标.那么为了提高页 ...
随机推荐
- jbpm4.4 spring整合
jBPM-4.4与Spring集成配置比较容易,这里我使用的是Spring-2.5.6,数据库连接池使用C3P0,将相关的两个jar文件加入到CLASSPATH中. jBPM-4.4与Spring集成 ...
- 在windows下的mysql使用
具体可参照http://jingyan.baidu.com/article/3aed632e19b5e8701080918f.html 1.安装mysql. 直接百度搜索mysql下载.
- c#自动更新+安装程序的制作 (转)
c#自动更新+安装程序的制作 (转) http://blog.csdn.net/myhuli120/article/details/6927588 一.自动更新的实现 让客户端实现自动更新,通常做法 ...
- POJ 2002 Squares 哈希
题目链接: http://poj.org/problem?id=2002 #include <stdio.h> #include <string.h> ; struct Has ...
- Remove linked list elements | leetcode
Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 -- ...
- 使用自定义《UIActivity》进行内容分享-b
简介 这段时间有很多朋友都问我关于怎么去集成ShareSDK或者友盟社会化分享SDK的问题, 其实我想说, Apple一开始就提供了一个类, 供我们去使用分享了, 在iOS 6之后更加增强了这个类, ...
- centos系统使用技巧
===============================网络配置===============================1 eth0 接口配置:/etc/sysconfig/network ...
- smarty 比较运算符对照表
smarty 比较运算符对照表 运算符 中文解释 eq 相等 ne.neq 不相等 gt 大于 lt 小于 gte.ge 大于等于 lte.le 小于等于 not 非 mod 求模 is [not] ...
- CENTOS6上禁用IPV6和DHCP
centos 6禁用ipv6方法 首先,在终端输入 ip -6 addr show 和 lsmod | grep ipv6查询一下有无安装IPV6模块,或用netstat -nuptl查看是否有i ...
- SpringSecurity的简单应用(一)
java项目首先要提的就是jar包了,Springsecurity的jar下载地址:http://static.springsource.org/spring-security/site/downlo ...