JavaWeb重要知识点(复习)

本文详述了JavaWeb开发中的重要知识点,包括自定义Servlet的三种方式及其区别,Servlet的三大作用域及其特点,filter与servlet的生命周期对比,表单提交的GET和POST方法及其差异,以及JSP内置对象的作用。此外,还讨论了MVC模式的理解,表单属性的作用,同步与异步的区别,以及JSP请求处理流程和Cookie与Session技术的工作原理。
摘要由CSDN通过智能技术生成

1.自定义 servlet 的三种方式及区别?

明确:JavaWeb中,我们学的Servlet不是专门用于处理Http请求的。
因此实际上,自定义Servlet有如下三种方式:

  • 1)从原生Servlet接口实现
  • 2)继承自GenericServlet
  • 3)继承自HttpServlet(*现在开发更常用的)

下面来看看这三种的区别:
- 1)原生Servlet接口:

package javax.servlet;

import java.io.IOException;
public interface Servlet {
   
    public void init(ServletConfig config) throws ServletException;
    public ServletConfig getServletConfig();
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
    public String getServletInfo();
    public void destroy();
}

原生Servlet接口定义在javax.servlet包中,接口定义了5个方法:
getServletConfig():
ServletConfig主要是用于加载servlet的初始化参数。在一个web应用可以存在多个ServletConfig对象(但一个Servlet对应一个ServletConfig对象)
创建时机: 在创建完servlet对象之后,在调用init方法之前创建。
得到对象: 直接从有参数的init方法中得到。
init():
在Servlet实例化之后,Servlet容器会调用init()方法,来初始化该对象,主要是为了让Servlet对象在处理客户请求之前可以完成一些初始化工作,比如:建立数据库的连接,获取配置信息。
service():
容器调用service()方法来处理客户端get/post请求。
getServletInfo():
getServletInfo()方法是一个可选的方法,它提供有关servlet的信息,如作者、版本,版权等
destroy():
当容器检测到一个Servlet对象应该从服务器中被移除的时候,容器会调用该对象的destroy方法,以便让Servlet对象可以释放它所使用的资源,保存数据到持久化存储设备中,例如:将内存中的数据保存到数据库中,关闭数据库的连接。

2)GenericServlet:
从上面可以看到,直接通过原生Servlet接口来编写一个Servlet类,需要全部实现接口中定义的5个方法。为了简化编写,在javax.servlet包中,提供了一个抽象的类GenericServlet,它提供了除Service()方法外的其他四种方法简单实现。 GenericServlet类定义了一个通用的,不依赖具体协议的Servlet。

3)HttpServlet
因为大多数网络应用是浏览器通过HTTP协议去访问服务器资源,而我们编写的Servlet也主要是应用HTTP协议的请求和响应,所以,为了能更快速地开发应用于HTTP协议的Servlet,Sun公司在javax.servlet.http包中给我们提供了一个抽象的类HttpServlet,他继承自GenericServlet类,用于创建适合Web站点的HTTP Servlet。
doPost/doGet这些方法,从request解析请求信息开始,将根据http协议的格式进行解析,分发到不同的请求方法处理中,doPost /doGet也肯定是被service方法调用的

下面是一张对以上自定义Servlet三种方式的总结图࿱

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值