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以及数据源等复杂类型的变量。
分享到:
相关推荐
ava EE 5提供了一种新的方案叫做资源注射(Resource Injection),或者叫做资源注入。也就是说,不需要Servlet主动去读取资源,Tomcat启动的时候会把web.xml里配置的信息主动“注射”到Servlet里。这个过程是运行时...
2. SQL 注射攻击:如果不正确地处理用户输入,可能会导致 SQL 注射攻击,影响应用程序的安全性。 因此,在 Servlet 中使用 JDBC 访问数据库时,需要遵循最佳实践,例如使用连接池、PreparedStatement、参数化查询等...
EAR文件、EJB-Servlet、二进制实体、嵌入式实体、实体继承、实体生命周期 实体监听、实体管理器、实体合并、实体序列化、实体主键、实体关系 实体二级表、实体更新、实体、注射、拦截、J2SE JBoss公司、JCA、JNDI、...
9. **CDI (Contexts and Dependency Injection)**:CDI是JavaEE6中的依赖注入框架,提供了一种统一的方式来管理对象的生命周期和依赖关系,取代了EJB3.0中的注射器。 10. **JAX-RS (Java API for RESTful Web ...
这份文档详细地阐述了Spring 3.2框架的各个方面,包括核心容器、数据访问/集成、Web层、AOP和测试等方面,是Spring开发者不可或缺的学习和参考资源。通过深入学习,开发者可以充分利用Spring 3.2的功能,提升应用的...
2. **大小限制**:设置上传文件大小的上限,避免大文件占用过多服务器资源。 3. **文件名重命名**:为上传的文件生成随机或唯一的新名称,防止文件覆盖或恶意利用已知文件名进行攻击。 4. **安全性扫描**:可以使用...
5. **依赖注入**(Dependency Injection, DI):通过Java EE的注射器服务,可以轻松地管理组件间的依赖关系,提高代码的可测试性和可维护性。 6. **统一异常处理**:通过声明异常处理器,可以集中处理Web组件抛出的...