Servlet中读取参数的几种方式
2016-09-08 22:13
429 查看
为每一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(); } } |
相关文章推荐
- ServletConfig类、Servlet读取初始化参数的几种方式
- Servlet和Filter中处理参数乱码和页面乱码的几种方式
- servlet 保存参数的几种方式
- 在servlet中读取配置文件的几种方式
- python 读取命令参数、导出词向量的几种方式
- 几种读取属性文件的JAVA实现方式(2005年)
- 在asp.net中参数传递的几种方式
- 用servlet获取web.xml中指定的servlet初始化信息的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- servlet读取web.xml中参数和页面转向方法
- ASP调用带参数存储过程的几种方式
- java读取.properties配置文件 的几种方式
- spring中读取xml配置文件、获取bean的几种方式
- Servlet介绍(3)-----读取表单参数
- Jsp 向servlet URL方式传递参数出现乱码
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式
- ASP调用带参数存储过程的几种方式