Servlet配置与资源参数
2014-12-28 11:14
162 查看
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; // 继承HttpServlet 类 public class HelloWorld extends HttpServlet { private String message; public void init() throws ServletException { // 执行必需的初始化 message = "Hello World"; } //此方法用来处理GET请求 public void doGet(HttpServletRequest request, HttpServletResponseresponse) throws ServletException,IOException { // 设置响应内容类型 response.setContentType("text/html"); // 实际的逻辑是在这里 PrintWriter out = response.getWriter(); out.println("<h1>" +message + "</h1>"); } //此方法用来处理POST请求 public void doPost(HttpServletRequestrequest, HttpServletResponseresponse) throws ServletException,IOException { this.doGet(request,response); } public void destroy() { // 什么也不做 } }
web.xml中的配置
<context-param><!-- 全局参数--> <param-name>uploadfolder</param-name> <param-value>attachment</param-value> </context-param> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <init-param><!-- 只能有这个Servlet读取,不是全局参数--> <param-name>message</param-name> <param-value>welcom toservlet</param-value> </init-param> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping>
<url-pattern>可以同时配置多个映射,也允许使用通配符“*”和“_”
在Servlet中通过getServletConfig.getInitParameter(Stringname)来取得配置中的初始化参数(如果没有context初始化参数与Servlet的初始化参数同名,getServletContext.getInitParameter(String name)也可以取到此参数,但是不推荐这么用)
如果要取得context初始化参数,用getServletConfig.getServletContext. getInitParameter(String name)
上面的两种方法都是都是在编写程序代码时读取初始参数,java EE 5以后还提供了资源注射(Resource Injection)的方法,不需要Servlet主动地去读取资源,Tomcat启动时会把web.xml里配置的信息主动注射到Servlet中
示例如下:
private@Resource(name = “hello”) String hello; //一行的写法 @Resource(name = "i") //两行的写法 private int i;
在web.xml中用<env-entry>标签来配置资源
<env-entry> <env-entry-name>hello</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value>welcom toservlet</env-entry-value> <env-entry> <env-entry> <env-entry-name>i</env-entry-name> <env-entry-type>java.lang.Integer</env-entry-type> <env-entry-value>66</env-entry-value> <env-entry>
资源注射的原理是JNDI(java命名与目录接口,Java Naming and Directory Interface),如果不使用@Resource注解,通过查找JNDI同样可以获取到这三个资源
Context ctx =new InitialContext(); String message =(String)ctx.lookup("message"); Integer i =(Integer)ctx.lookup("i");
Servlet中不仅可以注释String、Integer等类型的变量,还可以注射自定义的Java Bean以及数据源等复杂类型变量
Servlet是线程不安全的
相关文章推荐
- 资源注射与Servlet配置初始化参数
- Servlet(19)web.xml 配置之Servlet参数配置和读取资源文件,获取文件全路径
- Servlet配置与资源参数
- Servlet配置与资源参数
- 资源注射与Servlet配置初始化参数
- servlet中配置文件web.xml中的参数context-param和init-param区别
- Servlet的初始化参数的配置和使用
- Java_Web Project_web.xml参数配置、servlet配置;
- 通过ServletConfig对象获取Servlet配置参数
- Servlet 中的配置参数
- Servlet的参数配置
- servlet 里面配置访问资源(资源打成jar包)
- 与TUXEDO相关的IPC资源配置参数
- 备忘:在web.xml中使用org.springframework.js.resource.ResourceServlet的配置对静态资源的访问
- NFS之:NFS安装配置及其参数说明资源集锦
- Servlet 读取web.xml文件中的配置参数连接数据库
- 通过ServletConfig对象获取Servlet配置参数
- Enumeration遍历servlet配置参数的一个例子
- servlet中配置文件web.xml中的参数context-param和init-param
- servlet中配置文件web.xml中的参数context-param和init-param区别