如何从JavaBean中读取Web.xml中的全局变量? String param_value = getServletContext().getInitParameter("para_name"); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 单纯的JAVA bean是获得不料这些参数的,除非采用jdom或者jax读取分析此XML文件,另外一种方法就是要拥有servlet的全局Content对象,这样就可以直接通过content.getinitparameter("DBDriver"),好像是这个方法名字,具体你可以点出来看看 二楼的方法不行,因为不知道应该包含哪个包!---------------------------------------------------------------------------------//这是一个.Net的Web.config文件 <appSettings> <add key = "strConnection" value="data source=TELESCOPE;initial catalog=jjcars;persist security info=True;user id=sa;pwd=pass;packet size=4096"/> <add key= "Manager" value="admin"/> </appSettings>-----------------------------------------------------------------------------这是从.Net的类中读取全局变量的方法string strConn=ConfigurationSettings.AppSettings["strConnection"];------------------------------------------------------------------------------难道JSP中的JavaBean就没类似的解决方法? String value = getServletContext().getInitParameter("DBPass");out.println(value); 楼上的方法在Bean中根本就不行,说getServletContext()没定义...我指在Bean中好用的方法! 你如果不进入 Context 怎么能直接读呢, 除非 直接找到磁盘上 web.xml 文件, 直接读文件. 使用servletconfig 对象config.getInitParameter("") 我觉得把xml里面的属性放到javabean的属性里面做成一个对象放到map里面去,是static类型的,不知道行不行。 public final class Config{ private static final Config instance = new Config(); public static final getInstance(){return instance;} private final Properties config= new Properties(); // 这个方法可以使用包内访问级别. void putParam(String key,String value){config.setProperty(key,value); } public Properties getConfig(){ } // } public class ConfigListener implements ServletContextListener {public void contextDestroyed(ServletContextEvent event) { System.out.println("Bye!");}public void contextInitialized(ServletContextEvent event) { ServletContext ctx = event.getServletContext(); Config cfg =Config.getInstance(); // 你在 JavaBean 中也这样访问.Config.getInstance().getConfig(); Enumeration names = ctx getInitParameterNames(); while(names.hasMoreElements()){ String key = (String) names.nextElement(); config.putParam(key,ctx.getInitParameter(key)); } }} 补充上帖, 那个 ConfigListener 要在 web.xml 上配置.<listener> <listener-class>ConfigListener</listener-class></listener>最好把 Config 和 ConfigListener 放在与 JavaBean 或其他Servlet 不同的包内,这样能限制对包内方法的访问.或者在 Config 中添加状态变量记录曾经被 ConfigListener 放入过参数. 以后再修改这个 Config 就抛错, 表示只能进行一次初始化. 楼主的问题: 如何从JavaBean中读取Web.xml中的全局变量? 我们可以理解为:1,如何用java读取一个名称为Web.xml的文件;2,如何在web container内利用一个JavaBean读取Web.xml中的变量;呵呵,如果是第一种理解方式的话,那用sax来读吧;如果是第二种的话,2楼的答案应该没问题的,不过这位兄弟少和你说了一句:String param_value = getServletContext().getInitParameter("para_name");这句要放在servlet里面的,不是随便放个java class里就可以的.ps:记得要将web server启动哦,哈 程序开发中使用接口的优势 请问在拍卖网站中的倒计时是怎么实现的? 郁闷啊!<ajaxtags:autocomplete>中文乱码问题! 问一个简单的问题 jsp框架应用的问题 高手帮忙发现怪问题~~~参与有分! jsp与数据库的问题 jsp语法问题! 寻求毕设帮助,给500分 关于IIS和JSP 急问sendRedirect传递参数的问题 如何访问本地usb驱动器 求教
另外一种方法就是要拥有servlet的全局Content对象,这样就可以直接通过content.getinitparameter("DBDriver"),好像是这个方法名字,具体你可以点出来看看
//这是一个.Net的Web.config文件
<appSettings> <add key = "strConnection" value="data source=TELESCOPE;initial catalog=jjcars;persist security info=True;user id=sa;pwd=pass;packet size=4096"/>
<add key= "Manager" value="admin"/>
</appSettings>-----------------------------------------------------------------------------
这是从.Net的类中读取全局变量的方法
string strConn=ConfigurationSettings.AppSettings["strConnection"];------------------------------------------------------------------------------难道JSP中的JavaBean就没类似的解决方法?
out.println(value);
我指在Bean中好用的方法!
private static final Config instance = new Config();
public static final getInstance(){return instance;}
private final Properties config= new Properties(); // 这个方法可以使用包内访问级别.
void putParam(String key,String value){config.setProperty(key,value); } public Properties getConfig(){ } //
} public class ConfigListener implements ServletContextListener {
public void contextDestroyed(ServletContextEvent event) {
System.out.println("Bye!");
}public void contextInitialized(ServletContextEvent event) {
ServletContext ctx = event.getServletContext();
Config cfg =Config.getInstance();
// 你在 JavaBean 中也这样访问.Config.getInstance().getConfig(); Enumeration names = ctx getInitParameterNames();
while(names.hasMoreElements()){
String key = (String) names.nextElement();
config.putParam(key,ctx.getInitParameter(key));
}
}
}
<listener>
<listener-class>ConfigListener</listener-class>
</listener>最好把 Config 和 ConfigListener 放在与 JavaBean 或其他Servlet 不同的包内,
这样能限制对包内方法的访问.或者在 Config 中添加状态变量记录曾经被 ConfigListener 放入过参数. 以后再修改这个 Config 就抛错, 表示只能进行一次初始化.
我们可以理解为:
1,如何用java读取一个名称为Web.xml的文件;
2,如何在web container内利用一个JavaBean读取Web.xml中的变量;
呵呵,如果是第一种理解方式的话,那用sax来读吧;如果是第二种的话,2楼的答案应该没问题的,不过这位兄弟少和你说了一句:String param_value = getServletContext().getInitParameter("para_name");这句要放在servlet里面的,不是随便放个java class里就可以的.
ps:记得要将web server启动哦,哈