Servlet 学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/makingLJ/article/details/87926681

Servlet 学习笔记

简介

介绍

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

Servlet 主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。

生命周期

  • Servlet 通过调用 init () 方法进行初始化
  • Servlet 调用 service() 方法来处理客户端的请求
  • Servlet 通过调用 destroy() 方法终止(结束)
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收
  1. init() 方法

    init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。

  2. service() 方法

    service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

    service() 方法默认会调用 doGet()、doPost() 等方法,通常,不需要重写这个方法

  3. destroy() 方法

    web 容器调用 destroy() 方法终结 Servlet,可以通过这个方法在 Servlet 生命周期内关闭或销毁一些文件系统或者网络资源。

web 容器注册 Servlet 的方式

  1. 编辑 web.xml 文件

    比较老的教程中,通常是利用 Eclipse IDE 编写运行的 Servlet 程序,该类教程都是通过编辑 web.xml 文件中的 servlet 属性和 servlet-mapping 属性,容器通过读取该文件的配置来向 web 容器里注册 servlet

  2. 使用 @WebServlet 注解

    一些使用 IDEA 编写 Servlet 程序的教程中使用的是该方法。

    编写该注解,容器会自动注册你的Servlet到运行环境,并且像往常一样处理它。

IDEA Hello world 程序编写

idea 15 + tomcat + servlet 配置教程

步骤总结:

  1. 新建项目(Java EE)

    • 正确选择 Java SE SDK、Java EE version、Tomcat 容器
    • 添加 Web Application 库和框架
    • 选中 Create web.xml
    • 输入Project NameModule Name
  2. 配置路径 (快捷键: ctrl + shift + alt + s

    Modules -> web -> Web Resource Directory

  3. 配置运行参数

    Run -> Edit configuration

    添加 -> Tomcat Server -> Local, 添加 Tomcat 容器

    配置端口等信息

  4. 新建文件夹

    web -> WEB-INF 目录下创建保存类及库的文件夹 classeslib

  5. 编写测试代码

    修改 index.jsp 文件

  6. 运行

    Run -> 选择相应的 Tomcat 容器

    若报错端口已被占用,重复步骤 3

  7. 编写 Servlet 测试代码

    src 目录下创建 package

    在该 package 下创建 servlet 文件, File -> New -> Servlet

    编辑该 Servlet 文件, 注意修改该文件 @WebServlet 注解中的 urlPatterns 参数,并重写 doGetdoPost 方法中的内容

处理 Servlet 的请求和响应

Servlet 处理表单,<form> 标签的 action 属性指定了使用哪个 Servlet 来处理表单里的参数值;Servlet 可以调用 HttpServletRequest.getParameter() 方法获取请求参数

Servlet 表单数据

  1. GET 方法

    GET 方法向页面请求发送已编码的用户信息,它会产生一个很长的字符串,出现在浏览器的地址栏中。GET 方法有大小的限制:请求字符串中最多只能有 1024 个字符。

    Servlet 使用 doGet() 方法处理这种类型的请求。

  2. POST 方法

    POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 是把这些信息作为一个单独的消息发送给后台。消息以标准输出的形式传送到后台程序,可以解析和使用这些标准输出。Servlet 使用 doPost() 方法处理这种类型的请求。

使用 Servlet 读取表单数据

  • getParameter() : 获取单个表单参数的值
  • getParameterValues() : 如果参数出现一次以上,则调用该方法,并返回多个值,例如复选框

cookies 和 session

cookies 是存储在浏览器端的信息,session 是存储在服务器端的信息

监听 Servlet 容器事件

通过注册监听器,可以知道应用服务器容器里某些事件发生的时间。

在容器注册监听器,可以使用以下其中一种方法:

  1. 利用 @WebListener 注解
  2. web.xml 应用部署文件里注册监听器
  3. 使用 ServletContext 里定义的 addListener() 方法

过滤器

Web 过滤器在给定的 URL 被访问时对请求进行预处理并调用相应的功能很有用。相比于直接调用给定 URL 请求的 Servlet,包含相同 URL 模式的过滤器会在 Servlet 调用前被调用。

过滤器可以用在执行日志,验证或者其他不需要与用户交互的后台服务。

过滤器必须要实现 javax.servlet.Filter 接口。这个接口包含 init(),destory() 和 doFilter() 方法。

多个匹配给定 URL 模式的过滤器将组成过滤器链,会根据 web.xml 里的配置顺序被调用

如果你要使用注解来为特定的 servlet 配置过滤器,你可以使用 @WebFilter 注解。

Servlet 和 JSP 区别

Servlet 输出 HTML 采用的是比较老的 CGI 方式,是一句一句输出,编写和修改 HTML 非常不方便。

JSP 是一种实现普通静态 HTML 和动态 HTML 混合编码的技术,JSP 中的功能基本能够用 Servlet 实现。二者主要区别是 JSP 实现了内容和外观的分离,JSP 编写静态 HTML 非常方便。JSP 在静态 HTML 内容中嵌入 Java 代码,然后 Java 代码在被动态执行后生成 HTML 内容。

Servlet 能够很好的组织业务逻辑代码,JSP 虽然规避了 Servlet 在生成 HTML 内容方面的劣势,但是在 HTML 中混入大量、复杂的业务逻辑。

通过 MVC 双剑合璧

  • Controller(Servlet)——负责转发请求,对请求进行处理
  • View(JSP) ——负责界面显示
  • Model ——业务功能编写(例如算法实现)、数据库设计以及数据存取操作实现

猜你喜欢

转载自blog.csdn.net/makingLJ/article/details/87926681
今日推荐