配置文件web.xml小结

pc蛋蛋是一个积分换礼品平台
<servlet>...</servlet>:指明了Servlet类路径以及名称

 

<servlet>

<servlet-name>...</servlet-name>:名称

<servlet-class>...</servlet-class>:路径

</servlet>

 

<servlet-mapping>...</servlet-mapping>:指明了访问指定名称的Servlet的URI

 

<servlet-mapping>

<servlet-name>...</servlet-name>:名称

<url-pattern>...</url-pattern>:访问Servlet的路径

</servlet-mapping>

 

------------------------------------------------------------------------------------------------

 

<init-param>...</init-param>:配置初始化参数

 

<servlet>

<servlet-name>...</servlet-name>

<servlet-class>...</servlet-class>

<init-param>:第一个参数

<param-name>...</param-name>:参数名称

<param-value>...</param-value>:参数值

</init-param>

<init-param>:第二个参数

<param-name>...</param-name>:参数名称

<param-value>...</param-value>:参数值

</init-param>

......

</servlet>

 

Servlet中提供方法getInitParameter(String param)来获取初始化参数的值,如果有则返回参数值,否则返回null

方法getInitParameterNames()返回所有参数名称,返回类型为枚举类型(Enumeration)

 

例子:

......

String userName = request.getParameter("username");

String password = request.getParameter("password");

 

Enumeration param = this.getInitParameterNames();//获得所有初始化参数的名称

 

//遍历所有的初始化参数

while(param.hasMoreElements()){

        String usernameParam = (String)param.nextElement();//参数名  即 用户名

        String passwordParam = getInitParameter(usernameParam);//参数值 即 密码

        ......

}

......

 

-------------------------------------------------------------------------------------------

 

init-param是配置在<servlet>标签里面的,只能由这个Servlet读取

<context-param>...</context-param>:上下文参数或者文档参数,可以被所有Servlet读取

 

<context-param>

<param-name>...</param-name>:参数名称

<param-value>...</param-value>:参数值

</context-param>

 

获取context-param可以使用ServletContext对象

方法getServletConfig().getServletContext()获取ServletContext对象

ServletContext的方法getInitParameter()获取指定名称的参数值

ServletContext的方法getInitParameterNames()获取所有context-param参数名称

 

例如:

......

ServletContext servletContext = getServletConfig().getServletContext();

String uploadFolder = servletContext.getInitParameter("upload Folder");//获取参数

String allowedFileType = servletContext.getInitParameter("allowed file type");//获取参数

......

 

---------------------------------------------------------------------------------------------

 

注意:JDK5以上支持@注解,资源注射需要服务器支持,Tomcat6以上支持,其他Web服务器可能不支持,使用时须注意!

 

@Resource:资源注射或者资源注入

不需要Servlet主动去读取资源,Tomcat启动的时候会把web.xml里配置的信息主动“注射”到Servlet里。

<env-entry>...</env-entry>:配置资源注射的变量,仅能配置java.lang包下标准的变量,如:String、Integer、Double等

 

<env-entry>

<env-entry-name>...</env-entry-name>:参数名

<env-entry-type>...</env-entry-type>:参数类型,如:java.lang.String

<env-entry-value>...</env-entry-value>:参数值

</env-entry>

 

获取env-entry的方法:private @Resource(name="valueName") String message

在web.xml中配置一个变量valueName,message的值会在Servlet运行时动态注入

 

注射资源的工作原理是JNDI(java命名与目录接口,Java Naming and Directory interface),Servlet中使用<env-entry>配置了变量的JNDI资源,然后使用@Resource将指定名称的JNDI资源注射到Servlet里。如果不使用@Resource,通过查找JNDI同样可以获得变量资源。

 

例如:

Context ctx = new InitialContext();//实例化一个Context对象

String message = (String)ctx.lookup("message");//查找资源message

 

注射数据源等复杂复杂类型变量

例如:

假设已经在Tomcat中配置好了数据源dataBase

@Resource(name="dataBase")           //声明数据源

javax.sql.DataSource dataSource;      //注射到dataSource属性上

 

public void getConnection(){

        Connection conn = dataSource.getConnection();//方法中直接使用dataSource

......

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凡星℃

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值