`
亦梦亦真
  • 浏览: 230997 次
  • 性别: Icon_minigender_1
  • 来自: 秦皇岛
社区版块
存档分类
最新评论

Servlet资源注射

 
阅读更多

 

Servlet程序:

import java.io.IOException;

import javax.annotation.Resource;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")

public class ResourceInto extends HttpServlet{

private @Resource(name="uname") String uname; //资源注射

public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

request.setCharacterEncoding("utf-8");

response.setCharacterEncoding("utf-8");

response.setContentType("text/html");

response.getWriter().print(uname);

}

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{

this.doPost(request, response);

}

}

 在web.xml中配置该注射参数

<servlet>

<servlet-name>ResourceInto</servlet-name>

<servlet-class>cn.edu.bzu.ResourceInto</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>ResourceInto</servlet-name>

<url-pattern>/ResourceInto</url-pattern>

</servlet-mapping>

<!--配置注射的资源 -->

<env-entry>

<env-entry-name>uname</env-entry-name>

<env-entry-type>java.lang.String</env-entry-type>

<env-entry-value>TOM</env-entry-value>

</env-entry>

资源注射的工作原理是JNDI(Java命名与目录接口,Java Naming and Directory Interface)。Servlet实例中使用〈env-entry>配置了名为uname的JNDI资源,然后使用@Resource将指定名称的JNDI资源注射到Servlet实例里。

如果不使用@Resource,通过查找JNDI同样可以获取到这三个资源,代码如下:

Context ctx=new InitialContext();    //实例化一个Context对象
String message=(String)ctx.lookup("uname"); //查找资源uname

 Servlet中不公可以注射String、Integer等类型的变量,还可以注入自定义的Java Bean以及数据源等复杂类型的变量。

 

 



  


  
分享到:
评论
3 楼 di1984HIT 2014-08-27  
恩,说的对~
2 楼 亦梦亦真 2012-12-10  
carl32hao 写道
String message=(String)ctx.lookup("uname"); //查找资源uname 
这里应该加上 java:comp/env否则取不到值

不需要吧,这个是我自己测试可以用的啊?
1 楼 carl32hao 2012-12-05  
String message=(String)ctx.lookup("uname"); //查找资源uname 
这里应该加上 java:comp/env否则取不到值

相关推荐

    jsp中使用java资源注射

    ava EE 5提供了一种新的方案叫做资源注射(Resource Injection),或者叫做资源注入。也就是说,不需要Servlet主动去读取资源,Tomcat启动的时候会把web.xml里配置的信息主动“注射”到Servlet里。这个过程是运行时...

    2022年在Servlet中使用JDBC访问数据库.pptx

    2. SQL 注射攻击:如果不正确地处理用户输入,可能会导致 SQL 注射攻击,影响应用程序的安全性。 因此,在 Servlet 中使用 JDBC 访问数据库时,需要遵循最佳实践,例如使用连接池、PreparedStatement、参数化查询等...

    JAVA基础知识点HTML格式教程编程实例20000源代码

    EAR文件、EJB-Servlet、二进制实体、嵌入式实体、实体继承、实体生命周期 实体监听、实体管理器、实体合并、实体序列化、实体主键、实体关系 实体二级表、实体更新、实体、注射、拦截、J2SE JBoss公司、JCA、JNDI、...

    JavaEE6官方API

    9. **CDI (Contexts and Dependency Injection)**:CDI是JavaEE6中的依赖注入框架,提供了一种统一的方式来管理对象的生命周期和依赖关系,取代了EJB3.0中的注射器。 10. **JAX-RS (Java API for RESTful Web ...

    Spring3.2中文版.docx

    这份文档详细地阐述了Spring 3.2框架的各个方面,包括核心容器、数据访问/集成、Web层、AOP和测试等方面,是Spring开发者不可或缺的学习和参考资源。通过深入学习,开发者可以充分利用Spring 3.2的功能,提升应用的...

    JSP上传图片

    2. **大小限制**:设置上传文件大小的上限,避免大文件占用过多服务器资源。 3. **文件名重命名**:为上传的文件生成随机或唯一的新名称,防止文件覆盖或恶意利用已知文件名进行攻击。 4. **安全性扫描**:可以使用...

    JAVA-EE-Web-components-

    5. **依赖注入**(Dependency Injection, DI):通过Java EE的注射器服务,可以轻松地管理组件间的依赖关系,提高代码的可测试性和可维护性。 6. **统一异常处理**:通过声明异常处理器,可以集中处理Web组件抛出的...

Global site tag (gtag.js) - Google Analytics