Servlet学习篇

本文介绍了Servlet相关知识。广义上Servlet规范是技术标准,狭义指接口或实现类。阐述了创建Servlet步骤,其执行流程从启动服务器到浏览器显示结果。还介绍了生命周期方法,以及ServletConfig与ServletContext的作用。此外,说明了Servlet接口扩展方式,和请求与响应、转发与重定向的相关内容。

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

1.Servlet简介

从广义上来讲,Servlet规范是Sun公司制定的一套技术标准,包含与Web应用相关的一系列接口,是Web应用实现方式的宏观解决方案。而具体的Servlet容器负责提供标准的实现。
●从狭义上来讲,Servlet指的是javax.servlet.Servlet接口及其子接口,也可以指实现了Servlet接口的实现类。
●Servlet作为服务器端的一个组件,它的本意是“服务器端的小程序”。Servlet的实例对象由Servlet容器负责创建;Servlet的方法由容器在特定情况下调用;Servlet容器会在Web应用卸载时销毁Servlet对象的实例。

创建Servlet的步骤:
1、创建Servlet类:
1.1创建类实现Servlet接口,实现接口的抽象方法
1.2在service方法中编写业务逻辑
分析请求报文
发送响应报文
2、在web.xml文件中配置Servlet映射信息
1.1节点:配置Servlet逻辑名和完整类名间的映射信息
1.2节点:配置Servlet逻辑名和URL地址间的映射信息

2.Servlet的执行流程

1、启动Tomcat服务器
2、在浏览器中输入Servlet的虚拟路径访问Servlet
3、浏览器向Web容器(Tomcat)发送Http请求
4、Web容器接收到Http请求后,动态创建ServletRequest和ServletResponse对象
5、分析请求的虚拟路径
6、通过读取配置文件中的配置信息,获取完整的Servlet全类名
7、利用Java的反射机制动态创建Servlet对象
8、条用Servlet对象的service方法,并将前面创建的request对象response作为方法的参数
9、执行service方法中的业务逻辑并调用其他业务组件得到返回结果
10、将需要发送给客户端浏览器的响应结果组织成响应报文发送给客户端的浏览器
11、客户端浏览器中可以接收到服务器端返回的响应报文
12、浏览器解析响应报文并将内容显示在浏览器上

3.Servlet生命周期

生命周期方法:
四个方法:构造函数、init、service、destroy
执行流程:
服务器启动后Servlet第一次被访问时:
1、先执行构造方法初始化Servlet实例
2、再执行init方法对Servlet进行初始化配置
3、接下来调用Service方法执行核心业务逻辑
4、当服务器正在关闭或项目销毁时,会调用destroy方法,并执行垃圾回收工作

再次被访问时:
直接执行Service方法

4.ServletConfig与ServletContext

  1. ServletConfig(了解):
    代表Servlet配置信息
    对象:由Servlet容器创建,并传入init(ServletConfig config)方法
    作用:
    (1)获取Servlet友好名称
    (2)获取Servlet初始化参数
    (3)获取ServletContext对象
  2. ServletContext(重要):
    意思是Servlet上下文,代表当前Web应用
    对象由Servlet容器创建,通过ServletConfig对象获取
    作用:
    (1)获取WEB应用程序的初始化参数
    (2)获取虚拟路径所映射的本地路径
    (3)application域范围的属性

5.Servlet接口扩展

为什么要扩展Servlet接口?封装不常用方法
实现类体系
GenericServlet实现Servlet接口
HttpServlet继承GenericServlet
创建Servlet的最终方式:继承HttpServlet
创建Servlet集成HttpServlet
默认会有两个方法需要被完善:doGet、doPost
doGet:当客户端以get形式发送请求的时候会被自动调用
doPost:当客户端以post形式发送请求的时候会被自动调用

6.请求与响应,转发与重定向

  • request对象:

表示:客户端提交的请求报文
创建时机:Web容器接收到Http请求后,动态创建ServletRequest对象
作用:
1、获取客户端提交的数据
2、获取请求头信息
3、获取上下文路径
4、进行请求转发

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//1、获取请求参数
		String id = request.getParameter("id");
		System.out.println("参数 id=" + id );
		
		//2、获取请求头信息
		String referer = request.getHeader("referer");
		System.out.println(referer);
		
		//3、获取上下文路径
		String contextPath = request.getContextPath();
		System.out.println(contextPath);
		
		//4、请求转发
		RequestDispatcher requestDispatcher = request.getRequestDispatcher("info.html");
		requestDispatcher.forward(request, response);
		
		//response.getWriter().append("Served at: ").append(request.getContextPath());
	}

  • response对象:

    表示:服务器发送给客户端的响应报文
    创建时机:Web容器接收到Http请求后,动态创建ServletResponse对象
    作用:
    1、向客户端发送响应数据
    2、设置响应头
    3、进行请求重定向

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		if("admin".equals(username) && "123".equals(password)) {
			
			//3、请求重定向
			response.sendRedirect("1.html");
			
		}else {
			//2、设置响应头
			//注意:一定要在发送响应报文之前设置响应头
			response.setHeader("Content-Type", "text/html;charset=UTF-8");
			
			//1、发送响应报文
			response.getWriter().write("<h1>失败响应response ....</h1>");
			
			
		}
		
		
		
		
	}
内容概要:本文档详细介绍了一个基于MATLAB实现的跨尺度注意力机制(CSA)结合Transformer编码器的多变量时间序列预测项目。项目旨在精准捕捉多尺度时间序列特征,提升多变量时间序列的预测性能,降低模型计算复杂度训练时间,增强模型的解释性可视化能力。通过跨尺度注意力机制,模型可以同时捕获局部细节全局趋势,显著提升预测精度泛化能力。文档还探讨了项目面临的挑战,如多尺度特征融合、多变量复杂依赖关系、计算资源瓶颈等问题,并提出了相应的解决方案。此外,项目模型架构包括跨尺度注意力机制模块、Transformer编码器层输出预测层,文档最后提供了部分MATLAB代码示例。 适合人群:具备一定编程基础,尤其是熟悉MATLAB深度学习的科研人员、工程师研究生。 使用场景及目标:①需要处理多变量、多尺度时间序列数据的研究应用场景,如金融市场分析、气象预测、工业设备监控、交通流量预测等;②希望深入了解跨尺度注意力机制Transformer编码器在时间序列预测中的应用;③希望通过MATLAB实现高效的多变量时间序列预测模型,提升预测精度模型解释性。 其他说明:此项目不仅提供了一种新的技术路径来处理复杂的时间序列数据,还推动了多领域多变量时间序列应用的创新。文档中的代码示例详细的模型描述有助于读者快速理解复现该项目,促进学术技术交流。建议读者在实践中结合自己的数据集进行调试优化,以达到最佳的预测效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值