javaweb入门(一)——servlet-04-SerlvetContext应用

领域驱动设计整理——实体和值对象设计 实体引言在领域驱动设计里,实体的设计可以说是通用语言的核心,也是最开始在模型划分中需要考虑的。怎么样设计实体和怎么样划分限界上下文同样重要。实体的概念就是要保证通用语言的完整性。领域驱动让设计实体的关注点从数据的属性和表的关联转化到了富有行为的领域概念上。 实体是具有可变性的,这是一个和值对象比较明显的区分,也即实体是可以持续得变化,持续得修改,并且具有唯一的标识。在设计实体的时候需要跳出CRUD的 阅读详情

一.ServletContext类详解

getInitParameter()方法

此方法和上一章我们遇到的Serlvet.getInitParameter相似,都是获取初始化参数。不同的是,Serlvet.getInitParameter方法获取的是使用此方法的servlet的初始化参数,配置设置在<servlet>标签中;而SerlvetContext.getInitParameter获取的是整个web应用的初始化参数,配置设置在web.xml中并且不在别的标签里面。

其实ServletContext的初始化参数相当于web应用的初始化参数。

接下来为了方便我们对于ServletContext.getInitParamter方法的理解,我们做一个小小的案例。
在此案例中我们需要完成以下步骤:

  1. 在web.xml中设置ServletContext的初始化参数。
  2. 编写一个servlet类,使用它获取上一步设置的初始化参数。
  3. 启动web应用,查看servlet类获取的初始化参数。

1.在web.xml中设置SerlvetContext的初始化参数。

    <context-param>
        <param-name>InitParamterTest</param-name>
        <param-value>This is a test for ServetContext.getInitParameter !</param-value>
    </context-param>

2.编写一个获取ServletContext初始化参数的servlet类,给它配置映射路径。

package com.kuang.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class ServletContextGetInitParameterTest extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ServletContext servletContext = this.getServletContext();
//        获取初始化参数
        String message = servletContext.getInitParameter("InitParamterTest");
//      将获取的初始化参数输出
        PrintWriter writer = resp.getWriter();
        writer.println("IninParameter test : " + message);
    }

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

配置映射路径:

    <servlet>
        <servlet-name>initParameterTest</servlet-name>
        <servlet-class>com.kuang.servlet.ServletContextGetInitParameterTest</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>initParameterTest</servlet-name>
        <url-pattern>/initParameterTest</url-pattern>
    </servlet-mapping>

(PS:配置映射路径的步骤就不在此处展示了。)
3.测试结果。
在这里插入图片描述

getRequestDispatcher()方法

我们只需要知道ServletContext中有请求转发的功能。其相关的知识我们将会在后面的学习中与重定向一同学习。

ServletContext读取资源文件

Properties类介绍

1.什么是Properties类?
Properties类是用于处理属性文件的类(一般来说,属性文件是使用键值对保存一些程序运行所需要的配置数据,例如jdbc的url等。这类文件的后缀一般是.properties)。Properties类继承自Hashtable类,在Hashtable类的基础之上增加了一些与配置文件相关的方法。

2.Properties类中常用的方法
Properties类中常用的方法有:load(),getProperty(),setProperty,store()
load():加载properties文件。一般使用流的方式来加载。
getProperty():根据参数获取Property类中对应的数据信息。
setProperty():根据参数设置Property类中的信息。
store():将Property中的信息存储会properties文件之中。

3.使用ServletContex获取properties文件的方法

  1. 创建一个Properties文件
username = BugMaker2000
password = 123456
  1. 创建一个用于读取配置文件的Serlvet,使用ServletContext读取上一步设置的配置文件(作为流读取)
package com.kuang.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.Properties;
import java.util.Set;

public class PropertiesTestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        1.使用Servlet读取配置文件
        InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/classes/Test.properties");
//        2.创建一个Properties类,并且使用load()方法加载获取的输入流
        Properties prop = new Properties();
        prop.load(is);
//        3.读取Properties中的数据
        String username = prop.getProperty("username");
        String password = prop.getProperty("password");
//        4.使用Servlet输出
        PrintWriter writer = resp.getWriter();
        writer.print("username : " + username + " password : " + password);
//        测试properties的修改功能
//        1.再properties中设置属性
        prop.setProperty("url","www.baidu.com");
//        2.创建文件的输出流(输出流要使用绝对路径)
        FileOutputStream fos = new FileOutputStream("D:\\IDEAWorkPlace\\javaweb-02-servlet\\servlet-02\\src\\main\\resources\\Test.properties");
//        3.使用store文件对数据进行保存
        prop.store(fos,"文件修改");


    }

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

映射路径的操作在此省略。

  1. 启动服务器,查看读取的内容。
    properties读取结果:
    在这里插入图片描述
    properties修改结果:
    在这里插入图片描述

小知识:
在我们使用servlet读取数据时,我们使用的文件路径是:/WEB-INF/classes/Test.properties。这个路径是根据文件生成的target文件中的路径获取的。
在这里插入图片描述
其中我们可以看到’servlet-02’这个目录,在web应用中我们文件的目录便是从这个目录开始的。其中’class’目录我们称为classpath目录,我们在’java’以及’resource’目录下的创建的目录会生成在本目录之下。在没有进行其余操作时,我们是不可以在除了resource目录之外的地方创建.properties文件的(因为maven的特性:约定大于配置)。
如果需要在别的地方生成.properties并且被导出的话,我们需要在pom文件的<build>标签中添加下面标签:

<build>
	<resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
</build>

这个是固定格式。
在我们添加了<resources>标签之后我们便可以在别的目录之下创建.properties文件,并且可以被导出了。
在这里插入图片描述
本章结束。

本章学习之后,遗留两个问题:
1.在我们进行javaweb开发时,我们的OutPutFileStream类能否使用相对路径?如果能,相对路径是从哪里开始的?
2.本人尝试了在’com.kuang.servlet’路径之下创建properties文件,但是在启动服务器之后整个’com.kuang.servlet’路径之下的类都没有在target文件中生成,这是什么问题导致的?

这两个问题,我之后会研究并且回答,如果有知道的小伙伴请在评论区留下答案。万分感谢!

不用SE63逐个翻译!ABAP函数LXE_OBJ_TEXT_PAIR_WRITE批量处理TCODE描述的3种姿势 本文介绍了三种利用ABAP函数LXE_OBJ_TEXT_PAIR_WRITE批量翻译SAP事务码(TCODE)描述的高效方案,旨在替代SE63逐个翻译的低效操作。内容涵盖从基础循环、Excel导入到全自动程序集成的实现方法,帮助开发者显著提升批量翻译效率,并深入解析了SAP翻译体系的核心原理与实战技巧。 阅读详情

相关推荐

大象机器人myAGV移动机器人+mechArm六轴机械臂,开源复合机器人开发与实践!

我们这章节的内容是将协作性机械臂打破距离上的限制,跟移动机器人(myAGV)相连接,实现一个案例。

m0_71627844的博客 1487

javaWeb——Servlet中getInitParameter()的使用

ServletConfig概述 1、容器初始化一个servlet时,会为这个servlet建一个唯一的ServletConfig 2、容器从web.xml读出Servlet初始化参数,并把这些参数交给ServletConfig,然后把ServletConfig传递给servlet的init(ServletConfig config)方法。 3、容器只有在创建servlet实例时才会读DD文件中的init-param, 并且在servlet一生中只读一次。 4、方法: getInitParameter(St

https://www.yuque.com/onlyxiu-123com 4733

AMD Ryzen AI Max+ 395四机集群实战:开源工具链与大模型推理优化全解析

本文详细解析了基于AMD Ryzen AI Max+ 395处理器的四机集群搭建与优化实践,涵盖硬件配置、开源工具链评测及大模型推理优化技巧。通过深度测试,揭示了集群在AI推理中的性能瓶颈与解决方案,特别适合需要扩展显存的大模型实验场景。文章还提供了成本效益分析,帮助开发者做出更明智的选型决策。

weixin_29041767的博客 1517

Servlet中getInitParameter,getParameter,getAttribute异同

ServletConfig和ServletContext之间getInitParameter()方法的区别:ServletConfig#getInitParameter()作用于单个ServletServletContext#getInitParameter()作用于全局Servlet作用域不同,但都需要先在web.xml中配置,都只能返回String类型变量 HttpServletRequest...

qq_33366098的博客 2642

思科模拟器PT8.2实战:用MQTT协议搭建智能家居控制原型(附完整代码)

本文详细介绍了如何在思科模拟器Packet Tracer 8.2中,利用MQTT协议构建一个智能家居灯光控制原型。从环境准备、拓扑设计到MQTT代理配置,手把手指导您完成发布者与订阅者的Python代码编写,实现开关对LED的远程控制。通过此实战项目,您将深入理解MQTT协议在物联网中的核心应用,掌握从理论到实践的完整开发流程。

weixin_29281941的博客 361

LVGL项目内存告急?试试把中文字库放到SD卡里(基于LvglFontTool V0.5)

本文详细介绍了在LVGL嵌入式项目中如何通过将中文字库存储到SD卡来优化内存使用。针对Flash资源有限的MCU,如STM32F103,提供了基于LvglFontTool V0.5的外部字库生成与动态加载方案,适用于多字号、多语言及OTA场景,显著减少固件体积并提升显示灵活性。

weixin_33726318的博客 456

JavaWeb学习笔记 —— ServletContext常用方法(setAttribute、getAttribute、getInitParameter等)

web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的web应用;

water哥的博客 2450

用LTspice仿真CMOS反相器功耗?这份避坑指南能省你3天调试时间

本文详细介绍了如何使用LTspice准确仿真CMOS反相器的功耗,包括动态功耗、短路功耗和静态功耗的测量技巧。通过工程实践指南,帮助电子工程师避开常见陷阱,优化仿真参数设置,提升仿真结果的可靠性,节省调试时间。

w7x8y9z的博客 188

ServletContext 接口详解和具体应用

MIME(Multipurpose Internet Mail Extensions)类型,也称为媒体类型(media type)或内容类型(content type),是一种标识数据类型的标准,用于指示在传输过程中需要处理的数据的类型。MIME类型通常与文件扩展名相关联,用于表示一个文件的类型。

swadian2008的博客 3211

ARM与PC共享文件方式【samba】移植与配置

方式推荐指数适用平台优点缺点⭐⭐⭐⭐⭐全平台 (Win/Mac/Linux)兼容性最强,操作像本地文件配置稍繁琐,协议开销略大NFS⭐⭐⭐⭐Linux/Mac (Win支持一般)速度极快,CPU占用低Windows配置复杂,权限管理较难SFTP (SSH)⭐⭐⭐⭐全平台 (需客户端)安全加密,无需额外配置服务需使用FileZilla/Xftp等专用软件物理U盘⭐⭐⭐全平台无需网络,速度取决于接口需要人工插拔,不适合自动化Syncthing⭐⭐⭐⭐全平台自动同步,支持远程。

浩瀚之水的专栏 263

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

ServletConfig和ServletContext接口

ServletConfig接口 一个ServletConfig实现类的对象,对应一段web.xml中Servlet的配置信息 ServletConfig是由Servlet容器实例化 通过getServletConfig方法获取servletConfig对象 Servlet实例化的同时实例化对应的ServletConfig对象,并传入到init(ServletConfig config), ini...

weixin_43827144的博客 432

【车载以太网】【架构】整体架构与协议标准

车载以太网架构图 应用层:DHCP /SOMEIP/DoIP/XCP/UDPNM 传输层:TCP/IP 网络层:IPv4/IPv6/ARP/ICMP 链路层:IEEE Ethernet MAC+VLAN 物理层:Ethernet PHY: 100BASE-T1/1000BASE-T1/100BASE-Tx

专注汽车软件开发、AutoSAR、车载以太网、SOA、EE架构。 8354

ServletContext

1. ServletContext对象 1.1. ServletContext对象概述 ServletContext对象代表当前web应用。当服务器启动时,服务器在启动时会依次加载web应用,每一个web应用加载完成后都会创建一个ServletContext对象唯一代表该web应用,这个对象一直存活,直到web应用移除出容器或服务器关闭时,随着应用销毁,ServletContext对象跟着销毁

一个技术宅 1040

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【JavaWeb】Servlet学习笔记-3

一、学习前准备 二、ServletContext对象及其应用 三、问题解决 1.maven视图module名为灰白色且TomCat没有02_servlelt的war包问题的解决方式 2.若在java文件夹中新建了properties文件没有在target中生成对应的文件,需要在pom.xml中如下设置 3.getResourceAsStream("/WEB-INF/classes/db.properties")中的地址是target中的classespath

qq_1336713490的博客 407

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JavaWeb-Servlet(四)ServletContext

接上篇:JavaWeb-Servlet(三)Servlet的一些细节 在正文之前,补充一点。 Servlet与反射 当客户端发送请求,服务器接收到请求,根据web.xml中的信息得到要响应的servlet类,这时得到的是一个类名的字符串,所以要利用反射来完成后续的工作。 ServletContext 1. ServletContext概述 服务器会为每个应用创建一个ServletContext...

刘伟佳的博客 444

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Servlet基础

一 设置全局配置信息 在web.xml 中配置 string value = this.getServletContext().getInitParameter(“key”); System.out.println(value); // 先获取config信息再取出器配置信息 String value = this.getServletConfig().getInitParameter...

qq_38808348的博客 310

深度好文之Servlet技术详解(六)ServletContext对象&ServletConfig对象

目录 一.ServletContext对象介绍 二.ServletContext对象的使用 1.相对路径转绝对路径 2.获取容器的附加信息 3.获取web.xml文件中的信息 4.全局容器 三.ServletContext对象生命周期 四.ServletConfig对象 一.ServletContext对象介绍 ServletContext官方叫Servlet上下文。服务器(eg:Tomcat)会为每一个Web应用创建一个ServletContext对象。这个对象全局唯一,而且..

长夜漫漫,无心睡眠 1176

ServletConfig和ServletContext接口及其使用方法详解(附带实例)

这一节我们学习 ServletConfig 和 ServletContext 两个接口。下面我们先介绍 ServletConfig 接口。

unber的博客 1506

ServletContext对象

ServletContext对象 web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的文本应用; 共享数据 我在这个servlet中保存的数据,可以在另一个servlet中拿到; 一个继承Servlet的类: ServletContext context = this.getServletContext(); String username = "kangzhu"; context.setAttribute("uname", username);

weixin_45445291的博客 638

ServletContext介绍和用法

ServletContext介绍和用法1、介绍 ServletContext2、用法(1)getInitParameterNames 和 getInitParameter(2)getMajorVersion 和 getMinorVersion(3)getRealPath 和 getContextPath(4)getRequestDispatcher(5)getMimeType 和 getResourceStream(6)setAttribute 和 removeAttribute 和 getAttribut

weixin_45920385的博客 1229

java_web初学笔记之<ServletConfig和ServletContext详解>

①ServletConfig用于封装servlet的配置信息。仅对具体的某一个Servlet有效并且可访问,通过在web.xml中配置该Servlet的启动信息。 配置方法: Servlet1 com.test.servlet.Servlet2 charset UTF-8 则该配置只针对Servlet2,使用ServletConfig对象读取 ServletConfi

bgk083的专栏 592

getInitParameter()

getInitParameter()方法是在GenericServlet接口中新定义的一个方法,用来调用初始化在web.xml中存放的参量。在web.xml配置文件中一个servlet中参量的初始化是使用 &lt;init-param&gt; &lt;param-name&gt;name&lt;/param-name&gt; &lt;param-value&gt;zhangsan&lt;/p...

dawuafang 548

java程序员菜鸟入门之十三servlet技术

一、servlet 1、概述:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。 2、代码描述:init()初始化创建                       destory()销毁方法                       doGet方法

alivepeter的博客 254

如何获取ServletContext设置的参数值

context.getParameter():获取POSR/GET传递的参数值。 context.getInitParameter():获取Tomcat的server.xml中设置Context的初始化参数。 context.getAttribute():获取对象容器中的数据值。 context.getRequestDispatcher():请求转发。 ...

gtjsjj的博客 1677

获取web.xml初始参数 getServletConfig和getServletContext中getInitParameter()

web.xml配置: &lt;context-param&gt;中的值由getServletContext().getInitParameter()获取 &lt;init-param&gt;中的值由getServletConfig().getInitParameter()获取

yu_wlong的博客 1447
上一篇: javaweb入门(一)——servlet-03-servletContext对象
下一篇: javaweb入门(一)——servlet-05-Response学习
BugMaker2000
博客等级 码龄7年 84粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值