HTTPServletReauest 和 HTTPServletResponse

Servlet配置方式

  1. 全路径匹配
    1. 以 / 开始 /a /aa/bb
    2. localhost:8080/项目名称/aa/bb
  2. 路径匹配 , 前半段匹配
    1. 以 / 开始 , 但是以 * 结束 /a/* /*
    2. * 其实是一个通配符,匹配任意文字
  3. 以扩展名匹配
    1. 写法: 没有/ 以 * 开始 *.扩展名 *.aa *.bb

ServletContext 获取全局参数

注意(每个web工程都只有一个 ServletContext 对象。 说白了也就是不管在哪个 servlet 里面,获取到的这个类的对象都是同一个。)

 <context-param>
  	<param-name>address</param-name>
  	<param-value>重庆</param-value>
  </context-param>
  
  
  <servlet>
    <description></description>
    <display-name>ServletContext01</display-name>
    <servlet-name>ServletContext01</servlet-name>
    <servlet-class>com.heima.servlet.ServletContext01</servlet-class>
  </servlet>
  
  
  
  <servlet-mapping>
    <servlet-name>ServletContext01</servlet-name>
    <url-pattern>/ServletContext01</url-pattern>
  </servlet-mapping>
  

上面是 web.xml 中,下面是  测试类中,

注意:是全局参数,在任何测试类里,都可以拿这个 address 参数.

package com.heima.servlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class ServletContext01 extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1. 获取对象
		ServletContext context = getServletContext();
		
		String address = context.getInitParameter("address");
		System.out.println("address"+address);
		
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}

ServletContext 获取资源文件(一)

1. 获取资源在tomcat里面的绝对路径

		先得到路径,然后自己new InpuStream
	
			context.getRealPath("") //这里得到的是项目在tomcat里面的根目录。
	
			D:\tomcat\apache-tomcat-7.0.52\apache-tomcat-7.0.52\wtpwebapps\Demo03\
		
		 	String path = context.getRealPath("file/config.properties");
	
			D:\tomcat\apache-tomcat-7.0.52\apache-tomcat-7.0.52\wtpwebapps\Demo03\file\config.properties

package com.heima.servlet;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class demo03
 */
public class demo03 extends HttpServlet {
	
   
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//得到 Servlet 对象
		ServletContext context = getServletContext();
		//获得指定文件在服务器上的绝对路径
		String path = context.getRealPath("file/config.properties"); //什么都不写是根目录
		System.out.println("path"+path);
		
		
		
		//1. 创建属性对象
				Properties properties = new Properties();
				InputStream is = new FileInputStream(path);
				properties.load(is);
				
				//3. 获取name属性的值
						String name = properties.getProperty("name");
					
						System.out.println("name="+name);
				
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		doGet(request, response);
	}

}

eclipse 快捷键使用小贴士

Alt+Shift+M抽取方法
MyEclipse、Eclipse 调整格式快捷键,ctrl+shift+F
选中你要try的代码,alt+shift+z 就会弹出一个菜单

    

ServletContext 获取资源文件(二)

2. getResourceAsStream 获取资源 流对象

		直接给相对的路径,然后获取流对象。

​private void text02(){
		try {
			// 得到 Servlet 对象
			ServletContext context = getServletContext();
			
			// 1. 创建属性对象
			Properties properties = new Properties();
			//获取 web 下的资源转化成流对象,前面隐藏这当前工程的根目录。
			
			InputStream is = context.getResourceAsStream("file/config.properties");
			properties.load(is);
			// 3. 获取name属性的值
			String name = properties.getProperty("name");
			System.out.println("name22=" + name);
			is.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

​

 

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3973793/blog/2965634

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值