Bootstrap

了解什么是Servelet

Servelet

解释:(指 Java 语言中在服务器上运行的)小型应用程序;小服务程序

servlet学习日记

是什么(What)

Servlet 是一种在服务器端运行的小程序,类似于 CGI(Common Gateway Interface),用于处理客户端(通常是 Web 浏览器)发送的请求,并生成动态响应。Servlet 是基于 Java 编程语言的,运行在支持 Java 的 Web 服务器或应用服务器中(例如 Apache Tomcat)。

Servlet 是 Java EE(Java Platform, Enterprise Edition)的一部分,提供了创建动态 Web 内容的强大功能。一个 Servlet 可以通过 HTTP 协议与客户端进行通信,处理请求数据并生成响应。

为什么(Why)

Servlet 在 Web 开发中有以下几个优势:

  1. 跨平台性:由于 Servlet 是用 Java 编写的,它具有 Java 的跨平台特性,可以在任何支持 Java 的服务器上运行。
  2. 性能:相比于传统的 CGI,Servlet 的性能更高。CGI 每次请求都会创建一个新的进程,而 Servlet 通过多线程机制在一个进程中处理多个请求,极大地提高了效率。
  3. 安全性:Java 本身提供了强大的安全机制,Servlet 也继承了这一特性,支持 SSL 和基于角色的访问控制等安全特性。
  4. 扩展性:Servlet 容易与其他 Java 技术集成,如 JSP(JavaServer Pages)、EJB(Enterprise JavaBeans),从而实现复杂的企业级应用。
  5. 易于维护:Java 代码的模块化和面向对象特性使得 Servlet 应用程序更容易维护和扩展。

怎么用(How)

使用 Servlet 开发 Web 应用程序的基本步骤如下:

  1. 导入 Servlet

    • pom.xml 文件用于管理项目的依赖项。开发一个使用 Servlet 的 Web 应用程序,需要在 pom.xml 文件中添加 Servlet API 的依赖项。

    • <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>
      
  2. 创建 Servlet 类

    • 创建一个 Java 类并继承 javax.servlet.http.HttpServlet

      • public class UserServlet extends HttpServlet{
            //请求处理
        }
        
    • 重写 doGet 和/或 doPost 方法来处理 GET 和 POST 请求。(快捷键为 Ctrl+O)

      • doGet 顾名思义就是处理 HTTP GET 请求

        • 数据在 URL 中传递:GET 请求的参数通过 URL 查询字符串传递,即 URL 中的 ? 后面跟的参数。
          示例:http://example.com/servlet?param1=value1&param2=value2
          可见性:URL 中的参数在浏览器地址栏中可见,容易被用户看到和修改。
          
      • doPost

        • 数据在请求体中传递:POST 请求的参数通过请求体传递,不在 URL 中显示。
          示例:使用 HTML 表单提交时,数据包含在请求的主体中。
          可见性:参数在请求体中,浏览器地址栏中不可见,较为安全。
          
  3. 配置 Servlet

    • web.xml (位于应用程序webapp软件包下的 WEB-INF 目录中)文件中配置 Servlet 映射,指定 URL 模式与 Servlet 类的对应关系。

      • <servlet>
            <servlet-name>userServlet</servlet-name>
            <servlet-class>cn.edu.guet.web.UserServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>userServlet</servlet-name>
            <url-pattern>/viewUser</url-pattern>
        </servlet-mapping>
                
        <servlet> 元素:用于定义一个 Servlet<servlet-name>:指定 Servlet 的名称,任意字符串,用于在映射时引用。
        	<servlet-class>:指定实现该 ServletJava 类的全限定名。
            
        <servlet-mapping> 元素:用于定义 URL 模式与 Servlet 的映射关系。
        	<servlet-name>:引用定义的 Servlet 名称。
        	<url-pattern>:指定 URL 模式,当请求的 URL 匹配该模式时,将由对应的 Servlet 处理。        
        
    • 或者使用注解 @WebServlet 直接在 Servlet 类中进行配置(适用于 Servlet 3.0 及以上)。

  4. 编写 Servlet 代码

    • 在重写的方法中获取请求参数,处理业务逻辑,并生成响应。
  5. 部署 Servlet

    • 将编写好的 Servlet 应用程序打包为 WAR 文件(Web Application Archive)。
    • 将 WAR 文件部署到支持 Servlet 的服务器(如 Tomcat)。
;