servlet 核心技术

servlet 核心技术

servlet 生命周期

在 servlet 生命周期中,servlet 容器完成加载 servlet 类和实例化一个 servlet 实例,并通过3个方法来完成生命周期中的其他阶段。

  • init() 方法:负责 servlet 的初始化工作,该方法由 servlet 容器调用完成。
  • service() 方法:处理客户端请求,并返回响应结构。
  • destroy() 方法:在 servlet 容器卸载 servlet 之前被调用,释放系统资源。

使用方法Servlet

创建 servlet 类的 java 文件,然后在 WEB-INF 中的 web.xml 中修改配置,配置过程是由<servlet><servlet-mapping> 元素实现的。

举个例子:

  <!-- 配置Servlet -->
    <servlet>
        <servlet-name>ServletSample</servlet-name>
        <servlet-class>sunyang.ServletSample</servlet-class>
    </servlet>
    <!-- 配置Servlet映射路径 -->
    <servlet-mapping>
        <servlet-name>ServletSample</servlet-name>
        <url-pattern>/servlet</url-pattern>
    </servlet-mapping>

或者是使用注解的形式(使用的是 urlPatterns 属性)

如:

@WebServlet(name="Servletsample", urlPatterns="/HelloWorld")
  • 开发一个普通的 Servlet 只需拓展 javax.serlvet.GenericServlet即可,GenericServlet 类定义了一个普通的,协议无关的 servlet。 在拓展 GenericServlet 时必须要重载 service() 方法。
  • 要创建一个用于 web 的 HTTP Servlet,则需要拓展 javax.servlet.http.HttpServet。HttpServlet 用于处理 HTTP 请求。 需要重载 HttpServlet 的 doGet() 方法和 doPost() 方法。

获取运行环境信息

Servlet 信息包括 Servlet 的初始化信息,Servlet 的初始化参数名和 Servlet 名称,这些信息通常配置在web.xml 中,可通过 javax.servlet.ServletConfig 接口中定义的方法来获取。

Servlet 中的会话设置

Servlet api 内置了会话跟踪支持,那就是 HttpSession 对象。

Servlet 中异常处理

可以使用两种处理异常的方式:

  • 在 try/catch 语句块中直接生成并输出异常信息的页面,或者将异常转发到异常处理的 Servlet 或 JSP 页面中。
  • 在 web.xml 中通过<error-page>元素指定异常处理

Servlet 过滤器

在 web.xml 中定义,<filter>元素用于配置 Servlet 过滤器。

Servlet 监听器

Servlet 监听器类型:

  • ServletContext 事件监听器:用于监听应用程序环境对象。
  • HttpSession 事件监听器:用于监听用户会话对象。
  • ServletRequest 事件监听器:用于监听请求消息对象。

在 web.xml 中定义, `<listener>元素用于配置Servlet 过滤器。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏维C果糖

史上最简单的 MySQL 教程(三十六)「数据备份与还原(中)」

数据备份与还原的方式有很多种,具体可以分为:数据表备份、单表数据备份、SQL备份和增量备份。

416110
来自专栏小灰灰

Redis实现分布式锁相关注意事项

Redis实现分布式锁相关注意事项 查看了不少关于redis实现分布式锁的文章,无疑要设计一个靠谱的分布式并不太容易,总会出现各种鬼畜的问题;现在就来小述一下...

33380
来自专栏鸿的学习笔记

DBDB: 一个简单的key/value数据库(三)

前文点击链接:DBDB: 一个简单的key/value数据库(一) 前文点击链接:DBDB: 一个简单的key/value数据库(二)

12320
来自专栏黑泽君的专栏

day72_淘淘商城项目_05_匠心笔记

taotao-portal-web工程中,动态展示内容信息。 前端团队:负责JS,html等开发。 后端团队:负责后台的开发并提供数据给前端。

14920
来自专栏hbbliyong

在C#使用文件监控对象FileSystemWatcher 实现数据同步

       最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容。首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能...

43860
来自专栏MasiMaro 的技术博文

OLEDB 数据变更通知

除了之前介绍的接口,OLEDB还定义了其他一些支持回调的接口,可以异步操作OLEDB对象或者得到一些重要的事件通知,从而使应用程序有机会进行一些必要的处理。其中...

12330
来自专栏Python攻城狮

mongoDB的安装及基本使用1.mongoDB简介2.MySQL的安装3.Mongodb下载安装3.安装pymongo4.Mongodb基本使用5.

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

29430
来自专栏人工智能LeadAI

mongoDB的安装及基本使用

mongoDB简介 1、NoSQL数据库 数据库:进行高效的、有规则的进行数据持久化存储的软件 NoSQL数据库:Not only sql,指代非关系型数据库...

31480
来自专栏JavaEdge

操作系统之文件管理

将文件属性从外存拷到内存中打开文件表的一表目中 将其编号返回给用户。 系统可利用该编号到打开文件表中去查找。

397100
来自专栏问天丶天问

Java代码远程操作oracle数据库,执行sql文件、备份、回滚

43720

扫码关注云+社区

领取腾讯云代金券