JavaEE基础知识(二)

Java Web的核心技术—Servlet

基本概念

  • Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,是Java语言编写的服务器端程序,换句话说,Servlet就是运行在服务器上的Java类。
  • Servlet用来完成B/S架构下客户端请求的响应处理,也就是交互式地浏览和生成数据,生成动态Web内容。

Servlet编程步骤

  • 建立一个Java Web Application项目并配置Tomcat服务器。
  • 自定义类实现Servlet接口或继承 HttpServlet类(推荐) 并重写service方法。
  • 将自定义类的信息配置到 web.xml文件并启动项目,配置方式如下:

在这里插入图片描述
在浏览器上访问的方式为:

在这里插入图片描述

Servlet接口

javax.servlet.Servlet接口用于定义所有servlet必须实现的方法。

常用的方法

在这里插入图片描述

Servlet生命周期

在这里插入图片描述

  • 构造方法只被调用一次,当第一次请求Servlet时调用构造方法来创建Servlet的实例。
  • init方法只被调用一次,当创建好Servlet实例后立即调用该方法实现Servlet的初始化。
  • service方法被多次调用,每当有请求时都会调用service方法来用于请求的响应。
  • destroy方法只被调用一次,当该Servlet实例所在的Web应用被卸载前调用该方法来释放当前占用的资源。

POST和GET请求

GET请求

在这里插入图片描述

POST请求

在这里插入图片描述

ServletRequest接口
  • javax.servlet.ServletRequest接口主要用于向servlet提供客户端请求信息,可以从中获取到任何请求信息。
  • Servlet容器创建一个ServletRequest对象,并将其作为参数传递给Servlet的service方法。

常用的方法

在这里插入图片描述

HttpServletRequest接口
  • javax.servlet.http.HttpServletRequest接口是ServletRequest接口的子接口,主要用于提供HTTP请求信息的功能。
  • 不同于表单数据,在发送HTTP请求时,HTTP请求头直接由浏览器设置。
  • 可直接通过HttpServletRequest对象提供的一系列get方法获取请求头数据。

常用的方法

在这里插入图片描述

ServletResponse接口
  • javax.servlet.ServletResponse接口用于定义一个对象来帮助Servlet向客户端发送响应。
  • Servlet容器创建ServletResponse对象,并将其作为参数传递给servlet的service方法。

常用的方法

在这里插入图片描述

HttpServletResponse接口
  • javax.servlet.http.HttpServletResponse接口继承ServletResponse接口,以便在发送响应时提供特定于HTTP的功能。

常用方法

在这里插入图片描述

在这里插入图片描述

Java Web过滤器——filter

Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,如下所示:

在这里插入图片描述

Filter开发步骤

Filter开发分为二个步骤:

  1. 编写java类实现Filter接口,并实现其doFilter方法。
  2. 在 web.xml文件中使用<filter>和<filter-mapping>元素对编写的filter类进行注册,并设置它所能拦截的资源。

Filter生命周期

Filter的创建

Filter的创建和销毁由WEB服务器负责。 web 应用程序启动时,web 服务器将创建Filter 的实例对象,并调用其init方法,完成对象的初始化功能,从而为后续的用户请求作好拦截的准备工作,filter对象只会创建一次,init方法也只会执行一次。通过init方法的参数,可获得代表当前filter配置信息的FilterConfig对象。

Filter的销毁

Web容器调用destroy方法销毁Filter。destroy方法在Filter的生命周期中仅执行一次。在destroy方法中,可以释放过滤器使用的资源。

FilterConfig接口

用户在配置filter时,可以使用为filter配置一些初始化参数,当web容器实例化Filter对象,调用其init方法时,会把封装了filter初始化参数的filterConfig对象传递进来。因此开发人员在编写filter时,通过filterConfig对象的方法,就可获得:
  String getFilterName():得到filter的名称。
  String getInitParameter(String name): 返回在部署描述中指定名称的初始化参数的值。如果不存在返回null.
  Enumeration getInitParameterNames():返回过滤器的所有初始化参数的名字的枚举集合。
  public ServletContext getServletContext():返回Servlet上下文对象的引用。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值