JavaWeb ServletConfig作用及原理分析讲解

目录
  • 基本概念
    • servlet 关系
    • servletconfig 作用
  • 使用
    • 获取 config 基础信息
    • 携带信息

基本概念

servlet 关系

servlet 和 servletconfig 是一对一的关系;

servletconfig 作用

它存储 web.xml 内的 servlet 标签内的所有信息;

tomcat 在解析 web.xml 中的标签时,就会自动把 servlet 标签包装到 servletconfig 里面去;

使用

获取 config 基础信息

首先我们手动创建一个 ConfigServlet,注册流程这里省略了;

这里为了方便,直接选择继承 GenericServlet;

public class ConfigServlet extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        // 设置请求头
        servletResponse.setContentType("text/html");
        PrintWriter writer = servletResponse.getWriter();
        // 获取本servlet的servletconfig
        ServletConfig config = this.getServletConfig();
        // 打印本config的真实对象名称
        writer.println("servletconfig: " + config.toString() + "<br>");
        // 获取当前servletconfig所管辖的servlet的名称
        String configName = config.getServletName();
        writer.println("名字是:" + configName);
    }
}

携带信息

我们可以在 web.xml 中的 servlet 标签下,使用 init-param 夹带信息

所夹带的信息可以通过 servletconfig 进行获取,夹带信息数量不限;

<servlet>
    <servlet-name>configServlet</servlet-name>
    <servlet-class>com.zhiyiyi.javaweb.servlet.ConfigServlet</servlet-class>
    <init-param>
        <param-name>user</param-name>
        <param-value>root</param-value>
    </init-param>
</servlet>

使用 servletconfig 获取信息:

目前获取 init-param 中的信息有以下两种方式:

  1. 使用 getInitParameterNames 获取所有参数名称后再一一拿出 value
  2. 使用 getInitParameter 精准指定参数名后获取 value
// 使用枚举的方法获取到所有参数名称
Enumeration<String> initParameterNames = config.getInitParameterNames();
// 迭代输出获取到的参数名称
while (initParameterNames.hasMoreElements()) {
    String name = initParameterNames.nextElement();
    writer.println(name + "<br>");
}
// 直接指定需要获取的参数名称,精准拿到value
String userName = config.getInitParameter("user");
writer.println(userName + "<br>");

到此这篇关于JavaWeb ServletConfig作用及原理分析讲解的文章就介绍到这了,更多相关JavaWeb ServletConfig内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JavaWeb通过IDEA配置Servlet操作流程详解

    目录 创建项目 引入外部 jar 安装 mysql-connector 编写 servlet 文件 编写 student.html 文件 配置 tomcat 服务器 运行并查看服务器 创建项目 首先创建一个空项目!!!注意是空项目!!! 点击 文件->新建->新模块 ,新建一个名称为 servlet02 的模块(注意该模块的生成位置应该在我们刚刚新建的空项目下面!!!) 之后右键点击新模块 servlet02,选择 “添加框架支持” 勾选 “web 应用程序” ,之后直接点击完成即可自动生成

  • JavaWeb案例讲解Servlet常用对象

    概述 本次文章基于第三章的ServletConfig,ServletContext,HttpServletRequest,HttpServletResponse对象完成一个图书订阅系统的购买图书和查看图书购买记录功能. 搭建项目主页面 创建一个动态网站项目,在src中新建包com.book.servlet. 在包中,新建HomeServlet作为主页.效果图如下: 为了让一访问项目根路径地址就默认进入HomeServlet,这里需要将 HomeServlet的虚拟地址写入web.xml文件中作为

  • Javaweb动态开发最重要的Servlet详解

    目录 一.导入方式 二.Servlet生命周期 三.继承HttpServlet GET&POST 四.Servlet相关性质(八股文) 五.Request&Response 1.HttpServletRequest 2.HttpServletResponse 六.请求转发模型 七.请求重定向 一.导入方式 由于jdk中没有servlet对应的jar包,所以需要咱们手动引入,有两种方式: 1.可以采取向lib目录导入servlet-api的jar包的方式 2.在maven项目中设置如下坐标,

  • JavaWeb中Servlet的深入理解

    1.servlet:定义: 接口 2.配置servlet: public class HelloServlet extends HttpServlet {} HttpServlet 固定的 IDEA配置v好了 类 package com.example.demo1; import java.io.*; import javax.servlet.http.*; import javax.servlet.annotation.*; @WebServlet(name = "helloServlet&q

  • JavaWeb Servlet实现文件上传与下载功能实例

    目录 前言 项目准备 文件上传 前台页面 文件下载 资源准备 超链接下载 后台实现下载 总结 前言 在上网的时候我们常常遇到文件上传的情况,例如上传头像.上传资料等:当然除了上传,遇见下载的情况也很多,接下来看看我们 servlet 中怎么实现文件的上传和下载. 项目准备 idea:2020.1 jdk:1.8 tomcat:10 项目模板:java Enterprise–>Web Application 文件上传 文件上传涉及到前台页面的编写和后台服务器端代码的编写,前台发送文件,后台接收并保

  • JavaWEB中Servlet的生命周期详解

    目录 一.什么是Servlet 生命周期? 二.Servlet 是由谁来维护的? 三.Servlet 对象 是什么时候创建的? 四.测试 Tomcat 什么时候被销毁? 总结 一.什么是Servlet 生命周期? Servlet 对象什么时候被创建? Servlet对象什么时候被销毁? Servlet 对象创建了几个? Servlet 对象的声明周期表示:Servlet 对象从出生到销毁的过程是怎样的 二.Servlet 是由谁来维护的? Servlet 是由 Tomcat 服务器全权负责的,程

  • JavaWeb之Servlet注册页面的实现示例

    Servlet-注册页面 环境准备: 本文所用到环境如下: 软件:Eclipse(2018) 服务器:Tomcat 9 在index.jsp添加相关的代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 T

  • JavaWeb.servlet的基本使用方法详解

    目录 前言: 一.实现servlet 二.开发模式 三.继承Servlet 总结 前言: 我们在前几篇文章里的web项目都是用jsp文件完成的,那么什么时候jsp算是学完了呢?——在jsp文件中没有java代码. 在原来的doxxx.jsp文件里写的都是处理登陆或者主页面功能的java代码,现在我们需要servlet来代替doxxx.jsp文件. 一.实现servlet 我们可以一个登陆来当例子. 建一个com.xxx.servlet包,在写一个LoginServlet类 package com

  • JavaWeb ServletConfig作用及原理分析讲解

    目录 基本概念 servlet 关系 servletconfig 作用 使用 获取 config 基础信息 携带信息 基本概念 servlet 关系 servlet 和 servletconfig 是一对一的关系: servletconfig 作用 它存储 web.xml 内的 servlet 标签内的所有信息: tomcat 在解析 web.xml 中的标签时,就会自动把 servlet 标签包装到 servletconfig 里面去: 使用 获取 config 基础信息 首先我们手动创建一个

  • 详解C++中虚析构函数的作用及其原理分析

    C++中的虚析构函数到底什么时候有用的,什么作用呢. 一.虚析构函数的作用 总的来说虚析构函数是为了避免内存泄露,而且是当子类中会有指针成员变量时才会使用得到的.也就说虚析构函数使得在删除指向子类对象的基类指针时可以调用子类的析构函数达到释放子类中堆内存的目的,而防止内存泄露的. 我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数.可是,为什么要这样做呢?下面用一个小例子来说明: #include<iostream> using namespace std; class Cl

  • Vue slot插槽作用与原理深入讲解

    目录 前言 什么是Slot 栗子 在插槽中使用数据 备胎插槽 具名插槽 覆盖问题 作用域插槽 具名插槽的作用域 解构插槽Prop 具名插槽的缩写 $scopedSlots 前言 在2.6.0中,具名插槽 和 作用域插槽 引入了一个新的统一的语法 (即v-slot 指令).它取代了 slot 和 slot-scope. 什么是Slot 当我们生成好组件模板后,为了方便用户在调用组件的时候自定义组件内部分元素的样式或内容.于是在设计组件模板的时候会挖一个坑,等待用户使用v-slot来替换坑的slot

  • C语言详细分析讲解关键字goto与void的作用

    目录 一.关于goto 二.void 的意义 三.小结 一.关于goto 高手潜规则:禁用 goto 项目经验:程序质量与 goto 的出现次数成反比 最后的判决:将 goto 打入冷宫 下面看一段 goto 副作用分析的代码: #include <stdio.h> #include <malloc.h> void func(int n) { int* p = NULL; if( n < 0 ) { goto STATUS; } p = (int*)malloc(sizeof

  • java方法及this关键字原理分析详解

    目录 步骤1 .给顾客增加一个吃饭的方法 步骤 2 . 没有加static的属性和方法,一定需要先new对象 步骤 3 . 用new出来的对象去执行eat方法 步骤 4 . 怎么理解c.eat() 步骤 5 . 消息接受器 步骤 6 . 如果有两个顾客? 步骤 7 . 答案 步骤 8 .其实有个this 步骤 9 . 在eat方法里面直接使用this 步骤 10 . 构造方法 步骤 11 . 总结:this的意义是什么? 步骤 12 . 道理我都懂,那static又是什么? 步骤 13 . 本节

  • C++ 内存管理原理分析

    1.C/C++中程序内存分布 C/C++中程序内存区域大致划分为:内核空间(这部分用户不能读写).栈.内存映射段.堆.数据段(存储全局数据.静态数据).代码段(存储可执行代码.只读常量,又称常量区). 1.1 内存分布图 1.2 小试牛刀 接下来看下如下代码,思考下每一个变量分别在哪个内存区域? int globalVar = 1; static int staticGlobalVar = 1; void test() { static int staticVar = 1; int localV

  • Javaweb基础入门requse原理与使用

    request对象是什么? Request对象的作用是与客户端交互,收集客户端的Form.Cookies.超链接,或者收集服务器端的环境变量.request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息.客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据,然后服务器通过request对象的相关方法来获取这些数据.request的各种方法主要用来处理客户端浏览器提交的请求中的各项参数和选项. requse接收表单请求数据: Request对象接收表单请求参数 a

  • Spring Boot示例分析讲解自动化装配机制核心注解

    目录 1. 自动化装配介绍 2. Spring Boot 自动化配置UML图解 3. Spring Boot 自动化配置核心注解分析 3.1 @Inherited 3.2 @SpringBootConfiguration 3.3 @EnableAutoConfiguration 3.4 @ComponentScan 3.5 @ConfigurationPropertiesScan 3.6 @AutoConfigurationImportSelector 3.7 @AutoConfiguratio

  • SpringBoot自动配置原理分析

    目录 前言 一.启动类 1.1.@SpringBootConfiguration 1.2.@EnableAutoConfiguration 1.3.@ComponentScan 1.4.探究方向 二.@SpringBootConfiguration 三.@EnableAutoConfiguration 3.1.@AutoConfigurationPackage 3.2.@Import(AutoConfigurationImportSelector.class) 3.2.1.getCandidat

  • Java @GlobalLock注解详细分析讲解

    目录 GlobalLock的作用 全局锁 为什么要使用GlobalLock 工作原理 GlobalLock的作用 对于某条数据进行更新操作,如果全局事务正在进行,当某个本地事务需要更新该数据时,需要使用@GlobalLock确保其不会对全局事务正在操作的数据进行修改.防止的本地事务对全局事务的数据脏写.如果和select for update组合使用,还可以起到防止脏读的效果. 全局锁 首先我们知道,seata的AT模式是二段提交的,而且AT模式能够做到事务ACID四种特性中的A原子性和D持久性

随机推荐