当前位置: 首页 > article >正文

初探Servlet

文章目录

  • 1. Servlet概述
    • 1.1 定义
    • 1.2 作用
  • 2. 主要知识点
    • 2.1 生命周期
    • 2.2 请求处理
    • 2.3 Servlet配置
  • 3. 案例演示
    • 3.1 创建Web应用项目
    • 3.2 修改项目工件名
    • 3.3 重新部署Web项目
    • 3.4 创建WelcomeServlet
    • 3.5 编写`doGet`方法代码
    • 3.6 编写`doPost`方法代码
    • 3.7 访问WelcomeServlet
  • 4. 小结

在这里插入图片描述
大家好,今天我们将一起探索Java Servlet的奥秘。Servlet是Java EE中非常重要的一个组件,它是运行在服务器端的小程序,专门用来处理客户端的请求,并生成动态的响应内容。接下来,我们将通过一系列的步骤,从Servlet的基础知识到实际的案例演示,深入了解Servlet的工作原理和应用。

1. Servlet概述

1.1 定义

首先,我们来定义一下什么是Servlet。Servlet是服务器端的Java小程序,它遵循特定的规范,可以接收客户端的请求,进行处理,然后生成响应。

1.2 作用

Servlet的作用非常广泛,它可以用于实现动态网页的生成、处理用户的请求、与数据库进行交互等。在企业级Web应用中,Servlet是不可或缺的基础组件之一。

2. 主要知识点

2.1 生命周期

Servlet的生命周期包括四个阶段:加载和实例化、初始化、服务和销毁。

  • 加载和实例化:当客户端第一次访问Servlet时,服务器会加载Servlet类并创建一个实例。
  • 初始化:通过调用init()方法,进行Servlet的初始化工作。
  • 服务:Servlet通过service()方法来处理客户端的请求。service()方法会根据请求的类型,调用doGet()doPost()方法。
  • 销毁:当Servlet不再被使用时,服务器会调用destroy()方法,进行资源的释放。

2.2 请求处理

Servlet处理请求的类型主要包括GET和POST。通过HttpServletRequest对象获取请求参数,通过HttpServletResponse对象生成响应。

2.3 Servlet配置

Servlet可以通过两种方式进行配置:传统的web.xml配置和注解配置。

3. 案例演示

3.1 创建Web应用项目

我们将从创建一个Jakarta EE项目开始,命名为ServletDemo。

  1. 在IDE中创建一个新的Jakarta EE项目。
  2. 单击【Next】按钮,配置项目的相关设置。
  3. 单击【Create】按钮,完成项目的创建。
  4. 删除不必要的HelloServlet文件。

3.2 修改项目工件名

将项目的工件名从ServletDemo:war exploded改成ServletDemo,以便于部署。

3.3 重新部署Web项目

  1. 先移除项目,然后进行修复。
  2. 切换到【Server】选项卡,查看项目的URL。
  3. 启动服务器,查看项目的首页。

3.4 创建WelcomeServlet

  1. net.huawei.servletdemo包里创建WelcomeServlet类。
  2. 通过添加@WebServlet注解,设置访问的URL。
  3. 继承HttpServlet类,并提供处理HTTP请求的方法,包括doGetdoPost
package net.huawei.servletdemo;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * 功能:欢迎处理程序
 * 作者:华卫
 * 日期:2024年10月28日
 */
@WebServlet(urlPatterns = "/welcome")
public class WelcomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {        
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {       
    }
}

3.5 编写doGet方法代码

doGet方法中,我们将设置响应对象的字符编码,创建日期对象,并格式化输出到客户端。

@Override                                                                                 
protected void doGet(HttpServletRequest request, HttpServletResponse response)            
        throws ServletException, IOException {                                            
    // 设置响应对象字符编码                                                                         
    response.setCharacterEncoding("UTF-8");                                               
    // 创建日期对象                                                                             
    Date currentDate = new Date();                                                        
    // 创建简单日期格式对象                                                                         
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");                  
    // 获取打印字符输出流                                                                          
    PrintWriter out = response.getWriter();                                               
    // 向客户端输出页面                                                                           
    out.print("<html>");                                                                  
        out.print("<head>");                                                              
            out.print("<title>欢迎</title>");                                               
        out.print("</head>");                                                             
        out.print("<body style='text-align: center'>");                                   
            out.print("<h1 style='color: red'>欢迎访问泸州职业技术学院</h1>");                        
            out.print("<h3 style='color: blue'>" + sdf.format(currentDate) + "</h3>");    
        out.print("</body>");                                                             
    out.print("</html>");                                                                 
}                                                                                         

3.6 编写doPost方法代码

doPost方法中,我们可以直接调用doGet方法来处理POST请求。

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    doGet(request, response);
}

3.7 访问WelcomeServlet

  1. 重启服务器,访问http://localhost:8080/welcome
    在这里插入图片描述

  2. 如果遇到乱码问题,可以通过修改浏览器的字符编码为UTF-8来解决。
    在这里插入图片描述

  3. 刷新页面,观察时间的变化。
    在这里插入图片描述

4. 小结

通过今天的实战,相信大家对Servlet有了更深入的了解。Servlet不仅在理论上重要,在实际的Web开发中也是极其实用的技术。希望大家能够在实际的项目中灵活运用Servlet,构建出功能强大的Web应用。


http://www.kler.cn/a/369910.html

相关文章:

  • 后端:MyBatis
  • SpringBoot使用MockMVC通过http请求controller控制器调用测试
  • Go语言中的值类型和引用类型特点
  • 中国综合算力指数(2024年)报告汇总PDF洞察(附原数据表)
  • 算法随笔_18: 划分字母区间
  • 计算机视觉算法实战——无人机检测
  • picomax的rkipc开启rtmp功能
  • Python 基础语法 - 变量
  • 快速学会C 语言基本概念和语法结构
  • 电脑技巧:如何进行磁盘测速?
  • 模型 五遍沟通法(企业管理)
  • 【Gaussian Grouping: Segment and Edit Anything in 3D Scenes】阅读笔记
  • Java最全面试题->数据库/中间件->KafKa面试题
  • matlab实现了基于移动可变形组件(Moving Morphable Components,MMC)的拓扑优化算法
  • svg 初识+了解 + 应用 + 动画
  • Java识别图片或扫描PDF中的文字
  • [NewStar 2024] week4
  • 微机原理与接口技术—— 总线形成(2)
  • Flutter升级与降级
  • 华为云企业门户EWP SSL证书安装指南
  • Vue.js 快速实战入门
  • VictoriaMetrics 中文教程(10)集群版介绍
  • 3.常见的线性规划应用实例
  • 【C语言】C语言入门--函数
  • 在Ubuntu上配置python环境
  • 0.96寸oled模块,多级菜单教程,用最简单的方式写出多级菜单,教程详解!!!让嵌入式小白变高手系列教程 一