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 中定义, `````元素用于配置Servlet 过滤器。

servlet 核心技术的更多相关文章

  1. servlet核心技术2

    一.Servet 与 JDBC 在Servlet中可以使用JDBC技术访问数据库,查询DB数据,然后生成显示页面,接收请求参数,然后对DB操作 为了方便重用和便于维护等目的,经常会采用DAO(Data ...

  2. Servlet核心技术

    一.基本概念 1.C/S C/S架构是客户端服务器架构,将需要处理的业务合理的分配到客户端和服务器,客户端负责与用户的交互任务,服务器负责数据管理. 优点: 客户端界面和功能可以很丰富 应用服务器负荷 ...

  3. Android 开发知识体系

    知识体系 1.Unix/Linux平台技术:基本命令,Linux下的开发环境 2.企业级数据库技术:SQL语言.SQL语句调优.Oracle数据库技术 3.Java 语言核心技术:Java语言基础.J ...

  4. javaweb核心技术servlet

      一.Servlet简介 1.什么是Servlet Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质 ...

  5. javaWeb核心技术第七篇之HTTP、Tomcat、Servlet、Request和Response

    - Web服务器 - 概念: - web资源: "英文直译"网"的意思 资源:一切数据文件 web资源:通过网络可以访问到的资源,通常指的是一切放在服务器上的文件&quo ...

  6. SpingMVC 核心技术帮助文档

    声明:本篇文档主要是用于参考帮助文档,没有实例,但几乎包含了SpringMVC 4.2版本的所有核心技术,当前最新版本是4.3,4.2的版本已经经是很新的了,所以非常值得大家一读,对于读完这篇文档感觉 ...

  7. Struts2核心技术简介

    Struts2核心技术简介 使用Struts2框架,只要注重以下三大元素:配置文件.映射文件和Action: 全局属性文件struts.properties:保存系统运行的一些参数变量,整个系统只有一 ...

  8. Struts核心技术简介

    Struts核心技术简介 1.Struts内部机制   Struts是一种基于MVC经典设计模式的开发源代码的应用框架,它通过把Servlet.JSP.JavaBean.自定义标签和信息资源整合到一个 ...

  9. 图解 & 深入浅出 JavaWeb:Servlet 再说几句

    Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter   ...

随机推荐

  1. 第一次接触python:学习最简单的print及变量

    # -*- coding:utf-8 -*- print "hello world" print("hello world") 这里面使用了2中print方式, ...

  2. 前端自动化之npm

    npm——node依赖包管理工具 安装: 1.在nvm目录下复制npm和npm-cath文件夹 2.配置环境变量. 使用: 1.在项目文件夹,shift+右键打开命令窗口 2.npm init     ...

  3. PYTHON 中的字符集

    一.前言 Python中的字符编码是个老生常谈的话题,今天来梳理一下相关知识,希望给其他人些许帮助. Python2的 默认编码 是ASCII,不能识别中文字符,需要显式指定字符编码:Python3的 ...

  4. apk安装包信息

    String archiveFilePath="sdcard/DangDang.apk";//安装包路径          PackageManager pm = getPacka ...

  5. leetcode:First Missing Positive分析和实现

    题目大意: 传入整数数组nums,求nums中未出现的正整数中的最小值.要求算法在O(n)时间复杂度内实现,并且只能分配常量空间. 分析: 一般碰到这种问题,都先对数组进行排序,再遍历数组就可以找到最 ...

  6. PHP内核介绍及扩展开发指南—Extensions 的编写

    Extensions 的编写 理解了这些运行机制以后,本章着手介绍Extensions 的编写,但凡写程序的人都知道hello world,那好,就从hello world开始. 1.1Hello W ...

  7. css常见问题解决方法

    设置方法: div内的img和span都需要设置vertical-align:middle; 解决inline-block的空格: http://www.w3cplus.com/css/fightin ...

  8. c语言实践 打印字母三角形

    效果如下: 我是怎么想的: 总共需要打印6行字母,那么就需要一个循环来控制打印第几行,大概代码如下: for(int i=0;i<6;i++) { } 每行都会打印字母,而且循环越往后,需要打印 ...

  9. ShopNc实例化对象

    1.模型 $model_member = Model('member'); 2.接口 require_once BASE_ROOT_PATH.'/member/api/smiMember/action ...

  10. VUE实战项目-数据转换之道

    前言 公司的这个项目从去年底启动.至今经历winform版本与当前的VUE两个版本,前后经历不足3个月的时间.从纯技术角度来看,推进速度都很优异.究其原因,大抵我们都是喜欢“偷懒”的程序员,把能封装. ...