一、关于页面跳转的一下几种方法:

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资源文件的加载的更多相关文章

  1. HTML页面处理以及资源文件的加载

    Javascript 异步加载详解 这篇文章很详细的介绍了HTML的页面处理以及资源文件的加载. 本文总结一下浏览器在 javascript 的加载方式. 关键词:异步加载(async loading ...

  2. 下载某资源文件并加载其中的所有Prefab到场景中

    using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> / ...

  3. Direct2D开发:MFC下从资源文件中加载位图

    转载请注明出处:http://www.cnblogs.com/ye-ming 0X01 概述: 相对于GDI处理界面,Direct2D有得天独厚的优势,下图就是Direct2D与GDI的效果对比,wi ...

  4. WEB相关文件的加载顺序

    一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xml,读取<context-param>和<listener>两个节点. 2.接着,容器创建一个Serv ...

  5. web.xml文件中加载顺序的优先级

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  6. <context-param> 标签引出的 web.xml 文件的加载顺序 [转]

    代码示例 : <context-param> <param-name>contextConfigLocation</param-name> <param-va ...

  7. 白鹭引擎 - 资源文件的加载 ( RES, loadConfig, loadGroup )

    class Main extends egret.DisplayObjectContainer { public constructor() { super(); this.addEventListe ...

  8. 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件

    [源码下载] 背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件 作者 ...

  9. Web前端性能优化——如何有效提升静态文件的加载速度

    WeTest 导读 此文总结了笔者在Web静态资源方面的一些优化经验. 一.如何优化 用户在访问网页时, 最直观的感受就是页面内容出来的速度,我们要做的优化工作, 也主要是为了这个目标.那么为了提高页 ...

随机推荐

  1. jbpm4.4 spring整合

    jBPM-4.4与Spring集成配置比较容易,这里我使用的是Spring-2.5.6,数据库连接池使用C3P0,将相关的两个jar文件加入到CLASSPATH中. jBPM-4.4与Spring集成 ...

  2. 在windows下的mysql使用

    具体可参照http://jingyan.baidu.com/article/3aed632e19b5e8701080918f.html 1.安装mysql. 直接百度搜索mysql下载.

  3. c#自动更新+安装程序的制作 (转)

    c#自动更新+安装程序的制作 (转)  http://blog.csdn.net/myhuli120/article/details/6927588 一.自动更新的实现 让客户端实现自动更新,通常做法 ...

  4. POJ 2002 Squares 哈希

    题目链接: http://poj.org/problem?id=2002 #include <stdio.h> #include <string.h> ; struct Has ...

  5. Remove linked list elements | leetcode

    Remove all elements from a linked list of integers that have value val. Example Given: 1 --> 2 -- ...

  6. 使用自定义《UIActivity》进行内容分享-b

    简介 这段时间有很多朋友都问我关于怎么去集成ShareSDK或者友盟社会化分享SDK的问题, 其实我想说, Apple一开始就提供了一个类, 供我们去使用分享了, 在iOS 6之后更加增强了这个类, ...

  7. centos系统使用技巧

    ===============================网络配置===============================1 eth0 接口配置:/etc/sysconfig/network ...

  8. smarty 比较运算符对照表

    smarty 比较运算符对照表  运算符 中文解释 eq 相等 ne.neq 不相等 gt 大于 lt 小于 gte.ge 大于等于 lte.le 小于等于 not 非 mod 求模 is [not] ...

  9. CENTOS6上禁用IPV6和DHCP

    centos 6禁用ipv6方法   首先,在终端输入 ip -6 addr show 和 lsmod | grep ipv6查询一下有无安装IPV6模块,或用netstat -nuptl查看是否有i ...

  10. SpringSecurity的简单应用(一)

    java项目首先要提的就是jar包了,Springsecurity的jar下载地址:http://static.springsource.org/spring-security/site/downlo ...