- 浏览: 579002 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
maleking:
太感谢了。新手搭建hadoop集群环境,dat ...
启动hadoop后没有datanodes的问题 -
system_mush:
NoClassDefFoundError: com/google/common/collect/Maps -
di1984HIT:
呵呵,我学习一下。
Katta源码分析 -
di1984HIT:
呵呵, 不管怎么说,挺好的。
zookeeper3.3学习笔记2:配置参数介绍 -
zoezhang:
谢谢了,可以解决
maven2报cannot be cast to javax.servlet.Filter错误解决
servlet中配置文件web.xml中的参数context-param和init-param区别
web.xml里面可以定义两种参数:
(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下:
Java代码
<context-param>
<param-name>context/param</param-name>
<param-value>avalible during application</param-value>
</context-param>
(2)servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:
Java代码
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.wes.controller.MainServlet</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>avalible in servlet init()</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
在servlet中可以通过代码分别取用:
Java代码
package com.wes.controller;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
public class MainServlet extends HttpServlet ...{
public MainServlet() ...{
super();
}
public void init() throws ServletException ...{
System.out.println("下面的两个参数param1是在servlet中存放的");
System.out.println(this.getInitParameter("param1"));
System.out.println("下面的参数是存放在servletcontext中的");
System.out.println(this.getServletContext().getInitParameter("context/param"));
}
}
第一种参数只能在servlet的init()方法中通过this.getInitParameter("param1")取得
第二种参数在servlet里面可以通过getServletContext().getInitParameter("context/param")得到
===============================================================================
Servlet的init方法
init方法是在Servlet实例化之后执行的,并且只执行一次。
一.先说init(ServletConfig)中参数ServletConfig,代表的是配置信息。即在web.xml中配置的信息,比如:
<servlet>
<servlet-name>myfirstservlet</servlet-name>
<servlet-class>as</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>小明</param-value>
</init-param>
<init-param>
<param-name>age</param-name>
<param-value>25</param-value>
</init-param>
</servlet>
在程序中可以用this.getServletConfig()方法得到ServletConfig的实例,然后用ServletConfig的相应方法可以得到ServletConfig的名字(getServletName)和配置参数的名字(getInitParameter("name"))或者名字枚举(getInitParameterNames()),并且通过参数名字得到相应的参数值。具体方法参见API。
二.再说说init方法,从源码中我们不难发现:Servlet接口里面只有init(ServletConfig),这是供tomcat调用的。GenericServlet类里面有成员变量ServletConfig,init(ServletConfig)方法和init()方法:
private transient ServletConfig config;
public void init(ServletConfig config) throws ServletException{
this.config=config;
this.init();
}
public void init() throws ServletException{
}
现在一切都很明了了,当容器(tomcat)帮忙调用init(ServletConfig config)并且给传过来一个参数config,这个方法把参数对象的引用指向类的成员变量this.config,并且调用类的 this.init()方法。有人问了,我们在写Servlet类时只要重写init(ServletConfig config)就可以了,init()不就成了多余的了吗?实际上init()方法是为了防止程序员在写Servlet类重写 init(ServletConfig config)时忘记写super.init(ServletConfig config),这样就容易造成出现空指针异常。而这就要求我们最好不要重写init(ServletConfig config),而要重写init()方法,就可以不写super.
发表评论
-
String.getBytes()和new String()
2012-11-21 21:44 1193在Java中,String.ge ... -
java 实现二分查找法
2012-10-11 13:52 1322/** * 二分查找又称折半查找,它是一种效率较高的 ... -
java ascii
2012-09-17 14:59 1436import org.junit.Test; ... -
java 纠结的byte和字符串
2012-06-05 11:09 1672import java.security.Message ... -
Java遍历文件夹的2种方法
2012-03-13 14:04 1249A.不使用递归的方法: import java.io. ... -
Java中的Constants类
2011-12-16 14:48 1998Constants类即常量类是将一些常用的变量集合到一 ... -
一个多线程例子
2011-12-07 14:35 1126class Info { public synchr ... -
java 获取linux进程信息
2011-11-28 17:27 1345public static String run(String ... -
CollectionUtils和ArrayUtils
2011-11-23 17:48 868参考: http://qinya.iteye.com/ ... -
String、StringBuffer和StringBuild的区别
2011-11-21 14:19 1164String、StringBuffer和StringBui ... -
JAVA调用ORACLE PACKAGE 的FUNCTION&PROCEDURE
2011-11-04 13:45 1902CREATE OR REPLACE PACKAGE SC ... -
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceede
2011-10-27 17:04 1568一、异常如下:Exception in thread &q ... -
java_swing_浏览器
2011-10-14 16:09 1195java浏览器源代码1.0版 package com. ... -
FileLock和NonWritableChannelException
2011-10-10 16:32 2950import java.io.BufferedReade ... -
线程安全的集合类
2011-09-28 10:05 1128Hashtable、synchronizedMap、Concu ... -
Java开发的六大陋习
2011-09-26 07:14 926你觉得自己是一个Java专家吗?是否肯定自己已经全面掌 ... -
java当前系统时间的获取
2011-09-23 13:47 1755import java.text.SimpleDat ... -
主线程等待线程池所有任务完成
2011-09-22 12:40 1758原文出处:http://blog.chenlb.com/2 ... -
Java编程中影响性能的一些特点
2011-09-09 09:55 8301.尽量使用final修饰符. 带有final ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat
2011-09-08 18:55 1152jstack -- 如果java程序崩溃 ...
相关推荐
总的来说,`context-param`和`init-param`提供了配置应用程序和Servlet初始化参数的能力,使得我们可以灵活地设定和读取必要的配置信息,以适应不同环境的需求。正确理解和使用这两个元素,对于优化代码结构、提高...
在Spring框架中,`<context-param>` 和 `<init-param>` 是两种不同的参数配置方式,它们在Web应用的初始化阶段起着关键作用。了解这两者的区别是优化和理解Spring应用程序运行时行为的重要知识点。 首先,`<context...
在Java Web开发中,`<context-param>`和`<init-param>`是两种常见的配置元素,它们都用于传递参数,但作用范围和应用场景有所不同。本文将详细介绍两者之间的区别以及它们在实际开发中的应用。 首先,`<context-...
为了提高代码的可维护性和复用性,有时需要将一部分配置内容提取到独立的XML文件中,再在`web.xml`中引用这些文件。本文将详细介绍如何在`web.xml`中引入其他XML配置文件,并解决可能出现的问题。 #### 步骤一:...
在 web.xml 文件中,Servlet 配置用于定义 Servlet 的名称、类名和初始化参数。例如: <servlet> <servlet-name>default</servlet-name> <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-...
### web.xml配置文件详解 #### 一、概述 `web.xml`是Java Web应用程序的核心配置文件之一,主要用于定义Web应用程序的结构与行为。它是Servlet容器(如Tomcat)读取Web应用程序配置信息的主要来源,因此深入理解其...
web.xml 配置详解 web.xml 配置详解是指在 ...web.xml 配置详解是 Java Web 应用程序中一个非常重要的配置文件,它包含了很多描述 servlet/JSP 应用的各个方面的元素,对于 Java Web 应用程序的开发和配置非常重要。
`web.xml`作为Java Web应用程序的核心配置文件,在Servlet 2.3规范中扮演着至关重要的角色。该文件通常位于WEB-INF目录下,用于定义和配置Web应用程序的各种组件和服务。通过深入解析`web.xml`的关键元素和属性,...
web.xml文件,全称为部署描述符文件,是Servlet规范中规定的一个核心配置文件,用于配置Web应用程序的行为。它是一个XML格式的文件,包含了启动和运行Web应用所需的各种元数据和配置信息。理解并熟练掌握web.xml的...
通过对`web.xml`配置文件中各个关键配置项的详细解析,我们可以看出,正确的配置不仅能够提高系统的可维护性和可扩展性,还能有效提升Web应用程序的性能和安全性。在实际开发过程中,开发者应根据项目需求灵活配置...
当我们需要改变`applicationContext.xml`的路径时,可以在`web.xml`中使用`<context-param>`元素来指定。例如: ```xml <context-param> <param-name>contextConfigLocation</param-name> <param-value>...
### Web.xml 详解 #### 1. 定义头和根元素 ...以上便是`web.xml`文件中涉及的关键元素和配置。这些元素和配置为Java Web应用提供了强大的控制能力,使开发者能够在部署过程中精确地定义和配置应用程序的行为。
在开发Java Web应用程序时,`web.xml`是一个关键配置文件,它定义了Web应用的行为和结构。本篇文章将深入探讨如何使用`web.xml`来控制Web应用的各种特性。 1. **定义头和根元素** `web.xml`文件通常以`<web-app>`...
- `<context-param>`标签中的`contextConfigLocation`参数指定了Spring配置文件的位置,可以是多个文件,之间用逗号分隔。 #### 二、监听自定义Java类 除了加载Spring配置文件之外,`web.xml`还可以用于监听...
`context-param`元素用于定义全局上下文参数,这些参数可以被整个Web应用程序中的所有Servlet访问。每个`context-param`包含一个`param-name`和一个`param-value`子元素,分别表示参数名和参数值。DTD定义如下: ``...
本文档主要介绍了Java Web应用程序中web.xml配置文件的详细解释。web.xml文件是Java Web应用程序的核心配置文件,用于定义Web应用程序的各种配置信息。 1. `<context-param>`元素 `<context-param>`元素用于定义...