城管希课堂之Servlet

本文详细介绍了ServletConfig和ServletContext的作用及使用方法,包括如何通过这两种方式获取ServletContext对象、利用其进行值的存储与读取、获取全局配置信息、获取服务器资源的真实路径等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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();


分数阶傅里叶变换(Fractional Fourier Transform, FRFT)是对传统傅里叶变换的拓展,它通过非整数阶的变换方式,能够更有效地处理非线性信号以及涉及时频局部化的问题。在信号处理领域,FRFT尤其适用于分析非平稳信号,例如在雷达、声纳和通信系统中,对线性调频(Linear Frequency Modulation, LFM)信号的分析具有显著优势。LFM信号是一种频率随时间线性变化的信号,因其具有宽频带和良好的时频分辨率,被广泛应用于雷达和通信系统。FRFT能够更精准地捕捉LFM信号的时间和频率信息,相比普通傅里叶变换,其性能更为出色。 MATLAB是一种强大的数值计算和科学计算工具,拥有丰富的函数库和用户友好的界面。在MATLAB中实现FRFT,通常需要编写自定义函数或利用信号处理工具箱中的相关函数。例如,一个名为“frft”的文件可能是用于执行分数阶傅里叶变换的MATLAB脚本或函数,并展示其在信号处理中的应用。FRFT的正确性验证通常通过对比变换前后信号的特性来完成,比如评估信号的重构质量、信噪比等。具体而言,可以通过计算原始信号与经过FRFT处理后的信号之间的相似度,或者对比LFM信号的关键参数(如初始频率、扫频率和持续时间)是否在变换后得到准确恢复。 在MATLAB代码实现中,通常包含以下步骤:首先,生成LFM信号模型,设定其初始频率、扫频率、持续时间和采样率等参数;其次,利用自定义的frft函数对LFM信号进行分数阶傅里叶变换;接着,使用MATLAB的可视化工具(如plot或imagesc)展示原始信号的时域和频域表示,以及FRFT后的结果,以便直观对比;最后,通过计算均方误差、峰值信噪比等指标来评估FRFT的性能。深入理解FRFT的数学原理并结合MATLAB编程技巧,可以实现对LFM信号的有效分析和处理。这个代码示例不仅展示了理论知识在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值