Servlet的几个关键知识点
1、ServletConfig
ServletConfig是Servlet的配置文件。对应于web.xml中的<servlet></servlet>标签。ServletConfig是由java提供的一个接口,其实现类是由tomcat提供。
其API有:
|
1
2
3
4
|
String getServletName();//获取<servlet-name>中的内容<strong>ServletContext getServletContext();//获取Servlet上下文对象</strong>String getInitParameter(String name)//通过名称获取指定初始化参数的值Enumeration getInitParameterNames()//获取所有初始化参数的名称 |
2、ServletContext
一个项目只有一个ServletContext,相当于<web-app></web-app>标签。可以在不同的Servlet中获得这个唯一的对象,可以给多个Servlet传递数据。tomcat启动时创建,在tomcat关闭时才销毁。
获取公共初始化参数,为所有的Servlet准备。而<servlet></servlet>中的<init-param></init-param>是为当前Servlet准备的
<context-param>
<param-name>name</param-name>
<param-value>value</param-value>
</context-param>
获取资源路径:

//把相对路径变成真实路径
String path = this.getServletContext().getRealPath("相对路径");
//获取资源路径后,在创建输出流
InputStream in = this.getServletContext().getResourceAsStream("/index.jsp");
//获取当前路径下所有的资源路径
Set<String> paths = this.getContext().getResourcePaths("/WEB-INF");

3、Servlet
3.1、Servlet与线程安全
线程安全就是多线程访问同一段代码不会产生不同的结果,编写线程安全的代码是依靠线程同步。Servlet不是线程安全的,工作效率高。所以不要在Servlet中创建成员变量,创建局部变量即可。如果创建成员变量,那么它可以是无状态的(不保存数据)。可以创建有状态的成员(保存数据),那么他必须是只读的。防止一个线程执行读操作,一个线程执行写操作。
3.2、服务器启动时就创建Servlet
<load-on-startup>0</load-on-startup> 非负整数,越小执行优先级越高
|
1
2
3
4
5
6
7
8
9
10
|
<servlet> <servlet-name></servlet> <servlet-class></servlet-clss> <load-on-startup>0</load-on-startup></servlet><servlet> <servlet-name></servlet> <servlet-class></servlet-clss> <load-on-startup>1</load-on-startup></servlet> |
3.3<url-pattern>
<url-pattern>是<servlet-mapping>的子元素。用来指定Servlet的访问路径。以"/"开头
Servlet的几个关键知识点的更多相关文章
- spring-cloud-kubernetes背后的三个关键知识点
在<你好spring-cloud-kubernetes>一文中,对spring-cloud-kubernetes这个SpringCloud官方kubernetes服务框架有了基本了解,今天 ...
- Java异常的10个关键知识点
前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异 ...
- Java程序员必备:异常的十个关键知识点
前言 总结了Java异常十个关键知识点,面试或者工作中都有用哦,加油. 一. 异常是什么 异常是指阻止当前方法或作用域继续执行的问题.比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异 ...
- DDD关键知识点整理汇总
创建领域对象采用构造函数或者工厂,如果用工厂时需要依赖于领域服务或仓储,则通过构造函数注入到工厂: 一个聚合是由一些列相联的Entity和Value Object组成,一个聚合有一个聚合根,聚合根是E ...
- python 关键知识点
学习资源:笨方法学习 python3 将变量传递给脚本--argv 脚本:你编写的 .py 文件. argv 参数变量(argument variable)保存着你运行 python 脚本的参数. i ...
- IKEv2协议关键知识点总结整理
文章目录 @[toc] 1. IKEv2基本原理 2. IKEv2协议重点注意事项 2.1 情景一:==IKEv2协商密钥逻辑== ①密钥协商流程 ②函数调用关系 ③流程简述 2.2 情景二:==使用 ...
- .net学习之Attribute特性和EF关键知识点
一.Attribute特性/标签1.Attribute用来对类.属性.方法等标注额外的信息,贴一个标签简单的说,定制特性Attribute,本质上就是一个类,它为目标元素提供关联附加信息,并在运行时以 ...
- 关于js的一些关键知识点(call,apply,callee, caller,clourse,prototypeChain)
可能不少学习javascript在使用call,apply,callee时会感到困惑,以下希望对于你有所帮助: 1.~~~call ,apply是函数(函数对象)的方法:callee是函数argume ...
- ARM汇编关键知识点总结(转)
1.LDR R1, =COUNT 意思是将 COUNT 变量的地址放到 R1中LDR R1, COUNT 意思是将 COUNT 变量地址里面的内容赋给 R1 2. Load-Store 结构——这个应 ...
随机推荐
- python函数进阶(函数参数、返回值、递归函数)
函数进阶 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形 ...
- 【转】Win32程序中调用ActiveX控件
#include "stdafx.h" #include <iostream> #include <windows.h> #include <comd ...
- wav文件格式分析与详解
WAV文件是在PC机平台上很常见的.最经典的多媒体音频文件,最早于1991年8月出现在Windows 3.1操作系统上,文件扩展名为WAV,是WaveFom的简写,也称为波形文件,可直接存储声音波形, ...
- 项目配置linux上, 配置文件访问不到
/** * 读入TXT文件 */public List<String> readFile(String pathName) { List<String> list = new ...
- Keras学习笔记(完结)
使用Keras中文文档学习 基本概念 Keras的核心数据结构是模型,也就是一种组织网络层的方式,最主要的是序贯模型(Sequential).创建好一个模型后就可以用add()向里面添加层.模型搭建完 ...
- Shiro 整合SpringMVC 并实现权限管理,登录和注销
Shiro 整合SpringMVC 并且实现权限管理,登录和注销 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring S ...
- OpenCV实现彩色图像轮廓 换背景颜色
转摘请注明:https://i.cnblogs.com/EditPosts.aspx?opt=1 有时候我们需要不一样颜色的证件照,下面就用OpenCV来实现证件照的蓝底.红底等换颜色: 代码如下: ...
- 初学vue----动画过渡transition简单部分
使用动画效果要用transition包裹,transition(<trsnsition name="xx"><div></div></tr ...
- node day2 vue read html
app.js var http = require("http"); var fs = require('fs'); var url = require('url'); http. ...
- eclipse配置环境变量
下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html 3.配置环境变量:右击“我的电脑”-->&quo ...