application 使用

本文介绍了一种通过Servlet初始化应用程序上下文中的变量的方法,解决了每次请求都需要重新构造相同变量的问题。这种方式可以有效减少重复劳动,并确保变量的一致性和快速访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

servlet在某些情况下好用多了


新版SKG需要这么一个功能,由于当初数据库设计原因,一些变量每次用都要自己构造

如:数据库只存了0,1,2,34,5,6

0代表fuzhuang ,1,代表鞋包。。。。。

等等。。很费时费力


把这些信息放入application存入hash表,每次取出即可


问题就变成了:何时放入application,如果在struts中的某个请求中进行,如果没请求,application就没有,其它页面就会发生错误。

而且由于struts2的action是原型的。所以每次request都会更新。。此法不好。


在stackoverflow上找资料时,偶然发现web.xml的load-on-start 这个servlet配置。

<servlet>
		<servlet-name>initCategory</servlet-name>
		<servlet-class>org.stackbox.control.servlet.InitCategoryServlet</servlet-class>
		<init-param>
			<param-name>log4jConfigLocation</param-name>
			<param-value>/WEB-INF/log4j.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>


而进行初始化的servlet只要重载 genericServlet的init()方法( 注意source- override/implement method 的父类是 GenericServlet而不是HttpServlet

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值