初识Servlet 笔记分享

本文介绍了Servlet的基础知识,包括Servlet与JSP的关系、Servlet的API、部署配置、用户请求处理以及生命周期。Servlet作为Java EE的核心组件,常用于接收和响应客户端请求。通过继承HttpServlet,重写doGet和doPost方法,可以实现HTTP请求的处理。在服务器启动时,Servlet会根据web.xml配置进行实例化和初始化,当请求到达时执行service方法。同时,文章还提到了Servlet的初始化配置及其在不同范围内的共享参数。
摘要由CSDN通过智能技术生成

初识Servlet

1. 了解Servlet和JSP的关系

在MVC设计模式中,

  • Model1:
    • M:Model :JavaBean (Service Entity DAO等统称)
    • V:View:JSP视图
    • C:Controller:JSP纯写Java代码
  • Model2:
    • M:Model :JavaBean (Service Entity DAO等统称)

    • V:View:JSP视图

    • C:Controller 既然JSP纯写Java代码,那么我们也清楚JSP是在运行过程中会被Tomcat Jasper翻译成一个Java类(Servlet),所以干脆我们就直接将Java类编写好不就可以了吗?

      Servlet

index.jsp翻译后的Java类的继承体系:

  • 父类:Pet 子类:Dog 、Cat… dog extends Pet 继承关系 -> dog is a Pet
  • 父类:GenericServlet 子类:xxxxx,xxxx,index_jsp 继承关系 index_jsp is a GenericServlet (JSP is a Servlet )

在这里插入图片描述

Servlet:Servlet本身就是Java EE中三大核心组件之一,专门用于接收客户端请求,进行响应。

2. 了解Servlet的常用API

顶级接口:Servlet 拥有接收客户端请求,进行响应的能力

  • 初始化Servlet: void init(ServletConfig config);
  • 销毁Servlet: void destroy();
  • 处理客户端请求: void service(ServletRequest request, ServletResponse response);
  • 获取Servlet初始配置:ServletConfig getServletConfig();
  • 获取Servlet描述信息:String getServletInfo();

顶级抽象类:GenericServlet

  • 帮你实现除了service()请求处理之外的所有方法

HTTP抽象类:HttpServlet

  • 帮你实现了除了HTTP请求之外的所有的协议处理方式
  • service(HttpServletRequest request,HttpServlet response)
    • 帮你实现了所有请求方式的处理

以后我们只需要重写GET请求和POST请求的处理即可。

3. 掌握Servlet的部署和配置

  • 继承HttpServlet

  • 重写doGet()和doPost()方法

  • 在web.xml中部署Servlet

      <!-- 部署Servlet -->
      <servlet>
      	<!-- Servlet名称  必须保证唯一 -->
      	<servlet-name>userServlet</servlet-name>
      	<servlet-class>cn.kgc.demo3.UserServlet</servlet-class>
      </servlet>
      
      <!-- Servlet映射 -->  
      <servlet-mapping>
      	<!-- 给userServlet进行映射配置 -->
      	<servlet-name>userServlet</servlet-name>
      	<!-- URL匹配规则  能够处理的请求URL -->
      	<!-- localhost:8080/day56-servlet/user -->
      	<url-pattern>/user</url-pattern>
      </servlet-mapping>
    

Eclipse自带Servlet创建:

  • new -> Servlet

在这里插入图片描述

  • 修改servlet-name和url-pattern

在这里插入图片描述

  • 实现doGet和doPost

在这里插入图片描述

public class ProviderServlet extends HttpServlet {

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

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

}

4. 掌握Servlet处理用户请求

用它替换掉JSP处理逻辑。

5. 掌握Servlet的生命周期(原理:面试)

服务器(Servlet容器)加载Servlet过程:

  • 服务器启动时,首先会读取web.xml
  • 将web.xml中的Servlet信息会以键值对形式进行存储
  • url-patter = servlet-name
  • servlet-name = servlet-class

当客户端第一次请求Servlet时,服务器会从键值对中查找对应的servlet-name。

找到之后,服务器会再识别其中的servlet-class,然后会通过反射进行相应Servlet的实例化,并且同时进行初始化(init())。

当客户端每次请求Servlet时,Servlet都会执行service()方法,service()方法根据请求方式的不同会执行对应的doGet()…等方法。

当服务器被正常关闭/项目从服务器移除的时候,Servlet会执行销毁动作。

6. 了解Servlet的初始化配置

  • 如果希望在Servlet运行中动态改变一些变量值,可以使用Servlet标签内的init-param子标签来进行初始参数的配置,但是这个配置仅在当前Servlet内有效。

    • ServletConfig:String getInitParameter(String name);

    因为Servlet实现了ServletConfig接口,所以直接可以使用上述方法。this.getXXX();

  • 如果希望能够在多个Servlet内共享,需要配置context-param上下文参数。

    • ServletContext:String getInitParameter(String name);
      以直接可以使用上述方法。this.getXXX();
  • 如果希望能够在多个Servlet内共享,需要配置context-param上下文参数。

    • ServletContext:String getInitParameter(String name);

注:笔记思路来自查老师!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值