Servlet中读取参数的几种方式
为每一Servlet设置初始化参数
可以为每一个Servlet在对应的web.xml中的Servlet节点下编写初始化参数,格式如下:
<init-param>
<param-name>userName</param-name>
<param-value>admin</param-value>
</init-param>
然后在servlet中用如下代码获取相应的参数:
ServletConfig config = this.getServletConfig();
this.username = config.getInitParameter("userName");
为所有的Servlet设置公用的初始化参数
可以为所有的Servlet设置公用初始化参数,该参数和上面的参数有所不同,上面的要放在对应的Servlet节点下,而公用参数不用也不能放在Servlet节点下。
<context-param>
<param-name>userName</param-name>
<param-value>admin</param-value>
</context-param>
同样在Servlet中可以通过如下代码获取我们设置的全局配置信息对象:
ServletContext context = this.getServletContext();
String userNameInGlobal = context.getInitParameter("userName");
在代码中设置公用属性
可以在代码中为ServletContext设置属性,然后就可以在任意地方获取了。该属性是全局属性,一旦设置成功后,在整个容器中均可以使用。
|
ServletContext context = this.getServletContext(); context.setAttribute("maxNumber", 999); int maxNumebrInContext = (int)context.getAttribute("maxNumber"); |
读取外部文件中的配置信息
通过ServletContext对象读取外部文件中的配置信息主要有三种形式:
- getResource
- 返回一个URL对象,然后调用openStream()方法获取InputStream
- getResourceAsStream
- 直接返回InputStream对象
- getRealPath
- 返回资源文件的绝对路径,然后通过绝对路径用FileInputStream类读取数据
在classes目录下有一个Person.properties文件,内容如下:
getResource获取外部文件
|
@Override public void init() throws ServletException { ServletContext ctx = this.getServletContext(); String resourcePath = "/WEB-INF/classes/Person.properties"; try { URL url = ctx.getResource(resourcePath); InputStream is = url.openStream(); String name = getPropertiesByKey("name", is); System.out.println(name); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //从Stream中读取properties信息 public static String getPropertiesByKey(String key, InputStream is) { Properties properties = new Properties(); try { properties.load(is); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } String value = (String) properties.get(key); return value; } |
getResourceAsStream获取外部文件
|
public void init() throws ServletException { ServletContext ctx = this.getServletContext(); String resourcePath = "/WEB-INF/classes/Person.properties"; InputStream is = ctx.getResourceAsStream(resourcePath); String age = getPropertiesByKey("age", is); System.out.println("年龄是: "+ age); } |
getRealPath获取外部文件
|
public void init() throws ServletException { ServletContext ctx = this.getServletContext(); String resourcePath = "/WEB-INF/classes/Person.properties"; String resourceRealPath = ctx.getRealPath(resourcePath); try { InputStream is = new FileInputStream(new File(resourceRealPath)); String address = getPropertiesByKey("address", is); System.out.println("地址是:" + address); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } |
Servlet中读取参数的几种方式的更多相关文章
- SpringBoot中读取配置文件的几种方式
1.读取application文件 在application.yml或者properties文件中添加: info: name: xiaoming age: 13 sex: 1 读取方式如下: imp ...
- tornado中传递参数的几种方式
方法一 :tornado路由可以使用正则表达式中的子表达式传递url参数.比如:(r"/member//(\w*)/([01]*)", MemberHandler)匹配以后,tor ...
- spring boot中读取配置文件的两种方式
application.properties test.name=测试 test.url=www.test.com 1.@Value注解 在controller里可以这样直接调用 @Value(&qu ...
- Spring MVC中forward请求转发2种方式(带参数)
Spring MVC中forward请求转发2种方式(带参数) http://www.51gjie.com/javaweb/956.html
- php获取post参数的几种方式 RPC 规定接收取值方式 $GLOBALS['HTTP_RAW_POST_DATA'];
http://www.cnblogs.com/zhepama/p/4022606.html PHP默认识别的数据类型是application/x-www.form-urlencoded标准的数据类型. ...
- JavaWeb应用中初始化Log4j的两种方式
本文主要介绍了普通JavaWeb应用(基于Tomcat)中初始化Log4j的两种方式: 1.通过增加 InitServlet ,设置令其自启动来初始化 Log4j . 2.通过监听器 ServletC ...
- asp传递参数的几种方式
把下列代码分别加入a.asp和b.asp的<body></body>中,点提交,就可以将a.asp文本框的内容传给b.asp并显示出来 a.ASP <form actio ...
- linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权 ...
- JavaScript学习12 JS中定义对象的几种方式
JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...
随机推荐
- JQuery判断checkbox选中,jquery获取选中的checkbox
选中的radio $('input[name="radInvoiceType"]:checked').val(); 这样能获得 $('input[name="radInv ...
- ASP.NET MVC中的拦截器
在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器, 所谓的拦截器也没有什么的,只是写一个类,继承另一个类和一个接口,顺便实现接口里面的方法而以 ...
- 什么是Spring的命名空间及使用Spring 的命名空间p 装配属性
这个就要从XML说了,Spring的配置管理可以利用XML方式进行配置,而XML里面就有命名空间这个概念..实际上就和标签的意思有点像 你给一个命名空间以后,这个XML文件里面就可以用那个命名空间上下 ...
- 命名空间"system.web"中不存在类型或命名空间名称security"
在webservice中添加了一个md5加密报错: "命名空间"system.web"中不存在类型或命名空间名称security" 在引用中添加System.W ...
- html之hr,form标签
<hr>标签:在html页面中创建一条水平线,可在视觉上将文档分隔成多个部分 <form>:块级标签,前后会产生折行 标签用于为用户输入创建html表单,将数据提交给服务器.表 ...
- Redis启动警告错误解决
启动错误 (1)WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxc ...
- Windows蓝屏后产生的.dmp分析原因
Windows系统电脑出现蓝屏后都会自动重启,重启后电脑屏幕会提示蓝屏的相关信息,此时如果你没有来得及查看,你也可以进入windows7的“事件查看器”(位置为:控制面板--系统和安全--管理工具-- ...
- android学习笔记36——使用原始XML文件
XML文件 android中使用XML文件,需要开发者手动创建res/xml文件夹. 实例如下: book.xml==> <?xml version="1.0" enc ...
- 【springmvc】之常用的注解
原理这里不叙述,只讲怎么用 1. spring mvc中的@PathVariable是用来获得请求url中的动态参数的 @RequestMapping(value="/user/{userI ...
- android中的数据库操作
如何在android中调用数据库资源 在android中主要有两种方法来实现对数据库的访问,一种是adb shell方式,另一种是通过相关的android 的java类来间接的对数据库来进行操作.其中 ...