城管希课堂之Servlet

ServletConfig对象(每个servlet都有)


域对象

域就是表示在一定范围内 有作用的对象

ServletContext(作用范围内最大的域对象)

作用于整个工程(项目) 都能使用该对象

并且整个项目 只有一个该对象 是单例对象

作用:利用单例的特点 可以进行传值

该对象 内部维护了一个map集合

注意:所有的域对象 内部都是维护一个map集合

所有的域对象都有

setAttribute

getAttribute 这两个方法

获取ServletContext对象

方式1:可以通过ServletConfig对象来获取

// 方式1  ServletContext context = this.getServletConfig().getServletContext();
		// 向context对象中 保存一个值
		context.setAttribute("username","wanglong");

方式2:通过父类来获取

// 方式2(通过父类来获取 该方法在servletConfig接口中)
		ServletContext context = this.getServletContext();
		// 获取context的配置信息
		String value = context.getInitParameter("kuner"); 
		System.out.println(value);

作用:

1.存值取值

2.获取全局配置文件

3.可以获取服务器上所有的资源真实路径

    真实路径(在服务器上的路径)

    getRealPath()

4.可以进行请求转发


// 取出context域中的值
		ServletContext context = this.getServletConfig().getServletContext();
		Object object = context.getAttribute("username");
		System.out.println(object);
// 读取a文件
		// 参数的路径是相对于工程名来填的
		String path = this.getServletContext().getRealPath("/WEB-INF/classes/a.properties");
		System.out.println(path);
		// 读文件
		FileInputStream fis = new FileInputStream(path);
		Properties properties = new Properties();
		properties.load(fis);
		System.out.println(properties.getProperty("key"));

响应 response

响应行 响应的状态码 200 http 协议1.1

响应头

告诉浏览器我要做下载操作

告诉浏览器你需要什么编码格式来解析我的响应

响应体 响应浏览器的内容

TomCat 默认编码格式 iso-8859-1

response.setContentType("text/html;charset=UTF-8");


设计响应头(告诉浏览器用什么格式去解析数据) 二合一写法(之后再写servlet 第一个就写这个)

接到请求之后 向浏览器中写入字符串

通过响应对象 response 中的流对象 回写

注意:如果你在当前servlet使用了字符流 那么就不能再使用字节流

// 获取服务器的图片路径
		// 一般context域 使用 application当名字
		// 读文件
		// 通过response 对象获取字节流
		// 回写

		String path = this.getServletContext().getRealPath("/WEB-INF/classes/啦啦啦.png");
		File file = new File(path);
		String name = file.getName();
		// 修改文件名的编码格式
		name = new String(name.getBytes(),"iso-8859-1");
		response.setHeader("content-disposition", "attachment;filename="+name);
		response.setHeader("content-type","image/png");
		// 截取文件名
		// 添加响应头
		FileInputStream fis = new FileInputStream(path);
		int len = 0;
		byte[] b = new byte[1024];

		ServletOutputStream out = response.getOutputStream();
		while ((len = fis.read(b)) != -1) {
			out.write(b, 0, len);
		}
		fis.close();


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值