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

Web编程---Servlet技术

文章目录

  • 一、目的
  • 二、原理
  • 三、过程
    • 1. TestServlet02文件演示效果
    • 2. TestServlet03文件演示效果
    • 3. TestServlet04与TestServlet05文件演示效果
    • 4. 控制台展示生命周期过程
  • 四、代码
    • web.xml文件
    • TestServlet02.java文件
    • TestServlet03.java文件
    • TestServlet04.java文件
    • TestServlet05.java文件
    • SomeServlet.java文件

一、目的

  • Servlet接口及其实现类的使用

  • Servlet虚拟路径映射的配置

  • 使用Eclipse工具开发Servlet

  • Servlet的生命周期

二、原理

Servlet由Servlet容器提供,所谓的Servlet容器是指提供了Servlet 功能的服务器(本书中指Tomcat),Servlet容器将Servlet动态的加载到服务器上。
在这里插入图片描述

Servlet的生命周期
在这里插入图片描述

Servlet的生命周期是指Servlet从被Servlet容器加载、初始化,到处理客户端请求,直至销毁的整个过程。以下是Servlet生命周期的详细介绍:

三、过程

1. TestServlet02文件演示效果

(1) 通过getServletConfig()函数获取初始化参数里面内容。
在这里插入图片描述

(2) 通过get()展示获取到的参数内容

图 2

2. TestServlet03文件演示效果

(1) 通过getServletContext()函数获取参数内容

图 3

(3) 通过get()展示获取到的参数内容

图 4

3. TestServlet04与TestServlet05文件演示效果

(1) 文件4设置参数,文件5获取参数

图 5

(2) 通过get()展示获取到的参数内容

图 6

4. 控制台展示生命周期过程

图 7

代码段

图 8

四、代码

web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd" id="WebApp_ID" version="5.0"><!-- <display-name>chapter03</display-name> --><!-- 3.4.1 小结配置信息 --><servlet><servlet-name>TestServlet02</servlet-name><servlet-class>cn.itcast.servlet.TestServlet02</servlet-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></servlet><servlet-mapping><servlet-name>TestServlet02</servlet-name><url-pattern>/TestServlet02</url-pattern></servlet-mapping><!-- 3.4.2 配置信息 --><context-param><param-name>companyName</param-name><param-value>itcast</param-value></context-param><context-param><param-name>address</param-name><param-value>beijing</param-value></context-param><servlet><servlet-name>TestServlet03</servlet-name><servlet-class>cn.itcast.servlet.TestServlet03</servlet-class></servlet><servlet-mapping><servlet-name>TestServlet03</servlet-name><url-pattern>/TestServlet03</url-pattern></servlet-mapping><servlet><description></description><display-name>TestServlet04</display-name><servlet-name>TestServlet04</servlet-name><servlet-class>cn.itcast.servlet.TestServlet04</servlet-class></servlet><servlet-mapping><servlet-name>TestServlet04</servlet-name><url-pattern>/TestServlet04</url-pattern></servlet-mapping><servlet><description></description><display-name>TestServlet05</display-name><servlet-name>TestServlet05</servlet-name><servlet-class>cn.itcast.servlet.TestServlet05</servlet-class></servlet><servlet-mapping><servlet-name>TestServlet05</servlet-name><url-pattern>/TestServlet05</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.html</welcome-file><!--  <welcome-file>index.jsp</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.jsp</welcome-file><welcome-file>default.htm</welcome-file> --></welcome-file-list>
</web-app>  

TestServlet02.java文件

package cn.itcast.servlet;
import java.io.*;import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;public class TestServlet02 extends HttpServlet {/*** */private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub
//		super.doGet(req, resp);PrintWriter out = resp.getWriter();// 获得ServletConfig对象ServletConfig config = this.getServletConfig();// 获得参数名为encoding对应的参数值String param = config.getInitParameter("encoding");out.println("encoding=" + param);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubsuper.doPost(req, resp);}
}

TestServlet03.java文件

package cn.itcast.servlet;
import java.io.*;
import java.util.*;import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;public class TestServlet03 extends HttpServlet {/*** */private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubPrintWriter out = resp.getWriter();// 得到ServletContext对象ServletContext context = this.getServletContext();// 得到包含所有初始化参数名的Enumeration对象Enumeration<String> paramNames = context.getInitParameterNames();// 遍历所有的初始化参数名,得到相应的参数值,打印到控制台out.println("all the paramName and paramValue are following:");// 遍历所有的初始化参数名,得到相应的参数值并打印while (paramNames.hasMoreElements()) {String name = paramNames.nextElement();String value = context.getInitParameter(name);out.println(name + ": " + value);out.println("<br>");}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubsuper.doPost(req, resp);}
}

TestServlet04.java文件

package cn.itcast.servlet;
import java.io.*;import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;public class TestServlet04 extends HttpServlet {/*** */private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub
//		super.doGet(req, resp);ServletContext context = this.getServletContext();// 通过setAttribute()方法设置属性值context.setAttribute("data", "this servlet save data");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubsuper.doPost(req, resp);}
}

TestServlet05.java文件

package cn.itcast.servlet;
import java.io.IOException;
import java.io.PrintWriter;import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;public class TestServlet05 extends HttpServlet {/*** */private static final long serialVersionUID = 1L;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub
//		super.doGet(req, resp);ServletContext context = this.getServletContext();Object object = context.getAttribute("data");PrintWriter out = resp.getWriter();out.println(object.toString());}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubsuper.doPost(req, resp);}
}

SomeServlet.java文件

package com.powernode.servlets;import java.io.IOException;import jakarta.servlet.Servlet;
import jakarta.servlet.ServletConfig;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;public class SomeServlet implements Servlet {private ServletConfig config;@Overridepublic void init(ServletConfig config) throws ServletException {// TODO Auto-generated method stubthis.config = config;System.out.println("init");}@Overridepublic ServletConfig getServletConfig() {// TODO Auto-generated method stubreturn config;}@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {// TODO Auto-generated method stub
//		获取servlet名称String servletName = config.getServletName();System.out.println("获取servlet名称:" + servletName);//		获取servletContext对象ServletContext servletContext = config.getServletContext();System.out.println("获取servletContext对象" + servletContext);
//		获取初始化参数String initParameter1 = config.getInitParameter("name");System.out.println("name:" + initParameter1);System.out.println("service");}@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturn null;}@Overridepublic void destroy() {// TODO Auto-generated method stubSystem.out.println("destroy()");}}
http://www.lryc.cn/news/460931.html

相关文章:

  • 【cocos creator】输入框滑动条联动小组建
  • Flink时间窗口程序骨架结构
  • 计算机视觉之可做什么
  • 观察者模式的思考
  • ORACLE SELECT INTO 赋值为空,抛出 NO DATA FOUND 异常
  • GPT提示词
  • Redis协议详解及其异步应用
  • LeetCode213:打家劫舍II
  • linux一二三章那些是重点呢
  • C语言中的程序入口:超越main函数的探索
  • 《面试之MQ篇》
  • Git 分支操作-开发规范
  • JSONArray根据指定字段去重
  • 线程有哪几种状态? 分别说明从一种状态到另一种状态转变有哪些方式?
  • 自注意力机制self-attention中的KV 缓存
  • 前端库--nanoid(轻量级的uuid)
  • 计算机基础-什么是网络端口?
  • 力扣动态规划基础版(斐波那契类型)
  • Java重修笔记 InetAddress 类和 Socket 类
  • 秋招突击——8/6——万得数据面试总结
  • STM32定时器
  • 第七课 Vue中的v-for遍历指令
  • 【NTN 卫星通信】卫星通信的专利
  • vue3 element table 插槽外的数据更新,插槽内的数据未更新。
  • 飞凌嵌入式FET527N-C核心板已适配OpenHarmony4.1
  • CVPR 2024最佳论文候选-pixelSplat论文解读
  • 在Android中如何切割一张图片中的不规则“消息体/图片/表情包等等”?
  • Jenkins+Ant+Jmeter接口自动化集成测试
  • JavaSE——集合4:List接口实现类—LinkedList
  • FPGA图像处理之三行缓存