栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA WEB开发技术随堂笔记 Servlet技术

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA WEB开发技术随堂笔记 Servlet技术



 

 哈喽!大家好,我是【张时贰】,一位热爱学习的博主!

 

 【张时贰】的写作风格:喜欢用【言简意赅】的方式由【理论】到【实践】去讲解每一个知识点,而不喜欢用【晦涩难懂】的官方陈述

 

【张时贰】博客的主要是自己学习过程中的笔记与心得

 

 欢迎点赞  收藏 ⭐留言  如有错误敬请指正!

 

‍‍

感谢月薪百万的你支持我!

 2022.5.12 早八

文章目录
    • 前言
    • 6.1 Servlet技术
      • 6.1.1 Servlet与Servlet容器
      • 6.1.2 Servlet技术特点
      • 6.1.3 Servlet技术功能
      • 6.1.4 Servlet与JSP的区别
      • 6.1.5 Servlet代码结构
      • 6.1.6 简单的Servlet程序
    • 6.2 Servlet开发
      • 6.2.1 Servlet的创建
      • 6.2.2 Servlet配置
    • 6.3 Servlet API编程常用的接口和类
      • 6.3.1 Servlet接口
      • 6.3.2 ServletConfig接口
      • 6.3.3 HttpServletRequest接口
      • 6.3.4 HttpServletResponse接口
      • 6.3.5 GenericServlet类
      • 6.3.6 HttpServlet类

前言

本文章是 【JAVA WEB开发技术】 专栏的文章,主要是上课的随堂笔记与练习
JAVA WEB开发技术专栏 传送门
提示:目录顺序以当堂内容(教材)为准,所以并非“1、2、3”

6.1 Servlet技术 6.1.1 Servlet与Servlet容器
  • Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层
  • 使用 Servlet,可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页
  • Servlet容器也就是指Web容器,如Tomcat、Jboss、Resin、WebLogic等,它们对Servlet进行控制

Servlet的生存周期:

  • 加载,Web容器启动或第一次请求Servlet时,容器加载Servlet类并将其放入到Servlet实例池中
  • 初始化,Servlet实例化时,调用init()方法初始化Servlet对象,无论多少个客户访问,一个Servlet仅执行一次init()方法
  • 服务, Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务
  • 销毁, 在服务器端停止且卸载Servlet时执行destroy()方法(仅执行一次)。当Servlet对象退出生命周期时,负责释放占用的资源
6.1.2 Servlet技术特点

Java Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。它是 Java 企业版的标准组成部分,Java 企业版是支持大型开发项目的 Java 类库扩展版本

  • 方便、实用的API方法
  • 高效的处理方式
  • 跨平台
  • 更加灵活、扩展
  • 安全性
6.1.3 Servlet技术功能

Servlet的技术功能主要有以下几点:

  • Servlet可以读取客户端发送的HTTP请求
  • Servlet可以在处理业务逻辑后,将动态的内容发送到客户端,与用户请求进行交互
  • Servlet提供强大的过滤功能,可针对请求类型进行过滤设置,为Web开发提供灵活性与扩展性
  • Servlet可与其他服务器资源进行通信
6.1.4 Servlet与JSP的区别
  • Servlet承担客户请求与业务处理的中间角色,需要调用固定的方法,将动态内容混合到静态之中产生HTML;而在JSP页面中,可直接使用HTML标签进行输出,要比Servlet更具显示层的意义
  • Servlet中需要调用Servlet API接口处理HTTP请求,而在JSP页面中,则直接提供了内置对象进行处理
  • Servlet的使用需要进行一定的配置,而JSP文件通过“.jsp”扩展名部署在容器之中,容器对其自动识别,直接编译成Servlet进行处理
6.1.5 Servlet代码结构

Servlet中常用方法:

void init()
void doGet(HttpServletRequest req, HttpServletResponse resp)
void doPost(HttpServletRequest req, HttpServletResponse resp)
void doPut(HttpServletRequest req, HttpServletResponse resp)
void doDelete(HttpServletRequest req, HttpServletResponse resp)
void destroy()

可以在新建Servlet的时候让它初始化生成一下

6.1.6 简单的Servlet程序

在编写Servlet时,不必重写所有的方法,只需要重写所使用的方法

例输出This is a Servlet.

public class SimpleServlet extends HttpServlet {

private static final long serialVersionUID = -6160587558635034166L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("This is a Servlet.");
}
}
6.2 Servlet开发 6.2.1 Servlet的创建

创建Servlet可以通过:

  • Eclipse提供的Servlet向导创建
  • 创建Java类使其继承HttpServlet

使用Eclipse向导创建的一般步骤:

  • 设定类文件(类名、包、父类等)
  • 设置Servlet(名称、描述、参数、URI等)
  • 选择修饰符、实现接口及生成方法
6.2.2 Servlet配置

要使Servlet对象正常运行,需要对其进行适当的配置,说明Servlet名称、对应类、初始参数、对应URI等,配置方式有两种:web.xml文件中配置,使用注解配置(Servlet 3.0以上)

 web.xml文件中配置

1.声明Servlet对象

在web.xml中通过标签进行
主要的子元素有:,,,

//例子

    SimpleServlet
    com.zs.servlet.SimpleServlet

2.设置Servlet映射

在web.xml中通过标签进行,子元素有:

//url-pattern大致分为以下几种方式:
/servlet/MyServlet.do	//完全匹配
/servlet/*		//目录匹配
*.do		//扩展名匹配

【例】


    SimpleServlet
    /SimpleServlet
 
 使用注解配置

使用@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件
@WebServlet的属性:

  • asyncSupported:声明Servlet是否支持异步操作模式
  • description:Servlet的描述
  • displayName:Servlet的显示名称
  • initParams:Servlet的init参数
  • name:Servlet的名称
  • urlPatterns:Servlet的访问URL

【例】

@WebServlet(name="Test",urlPatterns="/servlet/Test")
6.3 Servlet API编程常用的接口和类 6.3.1 Servlet接口

所有Servlet/JSP应用必须直接或者间接实现Servlet接口, Servlet/JSP容器会将实现了Servlet接口的类加载至容器,以供访问

方 法说 明
public void init(ServletConfig config)Servlet实例化后,Servlet容器调用此方法来完成初始化工作
public void service(ServletRequest request , ServletResponse response)此方法用于处理客户端的请求
public void destroy()当Servlet对象应该从Servlet容器中移除时,容器调用此方法,以便释放资源
public ServletConfig getServletConfig()此方法用于获取Servlet对象的配置信息,返回ServletConfig对象
public String getServletInfo()此方法返回有关Servlet的信息,它是纯文本格式的字符串,如作者、版本等
6.3.2 ServletConfig接口

ServletConfig接口封装了Servlet的配置信息,在Servlet初始化期间被传递。每一个Servlet都有且只有一个ServletConfig对象

方 法说 明
public String getInitParameter(String name)此方法返回String类型名称为name的初始化参数值
public Enumeration getInitParameterNames()获取所有初始化参数名的枚举集合
public ServletContext getServletContext()用于获取Servlet上下文对象
public String getServletName()返回Servlet对象的实例名
6.3.3 HttpServletRequest接口

HttpServletRequest接口继承了ServletRequest接口,并针对HTTP协议增加了一些方法,在Servlet开发中经常使用

方 法说 明
public String getContextPath()返回请求的上下文路径,此路径以“/”开头
public Cookie[] getCookies()返回请求中发送的所有cookie对象,返回值为cookie数组
public String getMethod()返回请求所使用的HTTP类型,如get、post等
public String getQueryString()返回请求中参数的字符串形式,如请求MyServlet?username=mr,则返回username=mr
public String getRequestURI()返回主机名到请求参数之间部分的字符串形式
public StringBuffer getRequestURL()返回请求的URL,此URL中不包含请求的参数。注意此方法返回的数据类型为StringBuffer
public String getServletPath()返回请求URI中的Servlet路径的字符串,不包含请求中的参数信息
public HttpSession getSession()返回与请求关联的HttpSession对象
6.3.4 HttpServletResponse接口

HttpServletResponse接口继承了ServletResponse接口,并针对HTTP协议增加了一些方法,在Servlet开发中经常使用

方 法说 明
public void addCookie(Cookie cookie)向客户端写入cookie信息
public void sendError(int sc)发送一个错误状态码为sc的错误响应到客户端
public void sendError(int sc, String msg)发送一个包含错误状态码及错误信息的响应到客户端,参数sc为错误状态码,参数msg为错误信息
public void sendRedirect(String location)使用客户端重定向到新的URL,参数location为新的地址
6.3.5 GenericServlet类

为了简化Servlet的编写,在javax.servlet包中提供了一个抽象类GenericServlet,它给出了除service()方法以外的简单实现
GenericServlet定义了一个通用的,不依赖具体协议的Servlet,它实现了Servlet接口和ServletConfig接口

6.3.6 HttpServlet类

HttpServlet主要是应用于HTTP协议的请求和响应,为了快速开发HTTP协议的serlvet,提供了一个继承自GenericServlet的抽象类HttpServlet,用于创建适合Web站点的HttpServlet

它实现Servlet接口的service方法,是将ServletResponse对象和ServletRequest对象转化成httpServletResponse对象和HttpservletRequest对象

它根据request获取Http method(get、post等)的名称,根据http method调用不同的方法执行操作,如doGet 、doPost、doPut、doDelete等

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号