1初始化参数init-param

init-param是配置在web.xml的<servlet>标签里的,也就是说,是归该servlet单独所有的。

实例

   <servlet>
<servlet-name>ContextParamServlet</servlet-name>
<servlet-class>com.servlet.ContextParamServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>InitParamServlet</servlet-name>
<servlet-class>com.servlet.InitParamServlet</servlet-class>
<init-param>
<param-name>harry</param-name>
<param-value>3324</param-value>
</init-param>
<init-param>
<param-name>kitty</param-name>
<param-value>3124</param-value>
</init-param>
<init-param>
<param-name>rixiang</param-name>
<param-value>1992</param-value>
</init-param>
</servlet>

servlet程序中读取:

package com.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class InitParamServlet extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{ response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>请登录查看 Notice 文件</TITLE></HEAD>");
out.println("<style>body, td, div {font-size:12px; }</style>");
out.println(" <BODY>"); out.println("<form action='" + request.getRequestURI() + "' method='post'>");
out.println("帐号:<input type='text' name='username' style='width:200px; '> <br/>");
out.println("密码:<input type='password' name='password' style='width:200px; '> <br/><br/>");
out.println("<input type='submit' value=' 登录 '>");
out.println("</form>"); out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
String username = request.getParameter("username");
String password = request.getParameter("password");
@SuppressWarnings("rawtypes")
Enumeration params = this.getInitParameterNames();
while(params.hasMoreElements()){
String usernameParam = (String)params.nextElement();
String passnameParam = this.getInitParameter(usernameParam);
if(usernameParam.equalsIgnoreCase(username)
&& passnameParam.equals(password)){
request.getRequestDispatcher("/WEB-INF/notice.html").forward(request, response);
return;
}
}
this.doGet(request, response);
}
}

效果:

2上下文参数,context-param

context-param是所有servlet公有的

  <context-param>
<param-name>upload folder</param-name>
<param-value>attachment</param-value>
</context-param>
<context-param>
<param-name>allowed file type</param-name>
<param-value>.gif,.jpg,.bmp</param-value>
</context-param>

servlet程序读取:

package com.servlet;

import java.io.IOException;
import java.io.PrintWriter; import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ContextParamServlet extends HttpServlet{
private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>读取文档参数</TITLE></HEAD>");
out.println(" <link rel='stylesheet' type='text/css' href='../css/style.css'>");
out.println(" <BODY>");
out.println("<div align=center><br/>");
out.println("<fieldset style='width:90%'><legend>所有的文档参数</legend><br/>"); ServletContext servletContext = this.getServletConfig().getServletContext(); String uploadFolder = servletContext.getInitParameter("upload folder");
String allowedFileType = servletContext.getInitParameter("allowed file type"); out.println("<div class='line'>");
out.println(" <div align='left' class='leftDiv'>上传文件夹</div>");
out.println(" <div align='left' class='rightDiv'>" + uploadFolder + "</div>");
out.println("</div>"); out.println("<div class='line'>");
out.println(" <div align='left' class='leftDiv'>实际磁盘路径</div>");
out.println(" <div align='left' class='rightDiv'>" + servletContext.getRealPath(uploadFolder) + "</div>");
out.println("</div>"); out.println("<div class='line'>");
out.println(" <div align='left' class='leftDiv'>允许上传的类型</div>");
out.println(" <div align='left' class='rightDiv'>" + allowedFileType + "</div>");
out.println("</div>"); out.println("</fieldset></div>"); out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}

效果

3资源注射@Resource

不需要servlet主动去读取,tomcat启动时会把web.xml里配置的信息主动注射到servlet里。

只需要@Resource注解。

       <env-entry>
<env-entry-name>hello</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>
Hello, Welcome to the JavaEE Resource Injection.
</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>30</env-entry-value>
</env-entry> <env-entry>
<env-entry-name>persons</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>
Helloween, Cobain, Roses, Axl,
</env-entry-value>
</env-entry>

servlet程序读取

package com.servlet;

import java.io.IOException;
import java.io.PrintWriter; import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class InjectionServlet extends HttpServlet{
private static final long serialVersionUID = -8526907492073769090L; // 注入的 字符串
private @Resource(name="hello") String hello;
// 注入的 整数
private @Resource(name="i") int i; // 注入更常见的写法
@Resource(name="persons")
private String persons; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8"); response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>资源注入</TITLE></HEAD>");
out.println("<style>body {font-size:12px; }</style>"); out.println("<b>注入的字符串</b>:<br/>&nbsp;&nbsp;-&nbsp;" + hello + "<br/>");
out.println("<b>注入的整数</b>:<br/>&nbsp;&nbsp;-&nbsp;" + i + "<br/>");
out.println("<b>注入的字符串数组</b>:<br/>"); for(String person : persons.split(",")){
out.println("&nbsp;&nbsp;-&nbsp;" + person + "<br/>");
} out.println(" <BODY>");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
}

效果

servlet 读取web.xml参数的更多相关文章

  1. Servlet中Web.xml的配置详解

    1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码. DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用 ...

  2. Servlet中Web.xml的配置详解(一)

    1 定义头和根元素 部署描述符文件就像所有XML文件一样,必须以一个XML头开始.这个头声明可以使用的XML版本并给出文件的字符编码.DOCYTPE声明必须立即出现在此头之后.这个声明告诉服务器适用的 ...

  3. Servlet中web.xml 以及 <url-pattern>总结

    web.xml中添加Servlet配置信息 使用Eclipse创建Servlet,会自动的在WEB-INF下的web.xml中声明,但是有的时候需要我们手动的写入配置信息,以下就是Servlet在we ...

  4. 读取web.xml中设置的参数

    以获取Filer元素里设置的参数为例 先在web.xml文件中配置如下 <?xml version="1.0" encoding="UTF-8"?> ...

  5. servlet中用注解的方式读取web.xml中的配置信息

    在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通 ...

  6. Servlet 使用ServletContext共享数据,读取web.xml配置

    ServletContext对象 session和cookie,对于每一个请求用户来说,都是不同的,因为要保证隐私安全. 而有一些数据,可以让所有用户共享,此时就可以用ServletContext对象 ...

  7. Servlet中Web.xml配置详解(二)

    5.2 分配JSP初始化参数给JSP页面提供初始化参数在三个方面不同于给servlet提供初始化参数.1)使用jsp-file而不是servlet-class.因此,WEB-INF/web.xml文件 ...

  8. 【转】Servlet与web.xml的配置

    Web.xml常用元素<web-app><display-name></display-name>定义了WEB应用的名字<description>< ...

  9. servlet中web.xml配置详解

    Web.xml常用元素 <web-app> 所有部署描述符文件的顶层(根)元素 <display-name></display-name>定义了WEB应用的名字 & ...

随机推荐

  1. CSS背景图拉伸自适应尺寸,全浏览器兼容

    突然有人问我这个问题,说网上CSS filter的方法在非IE浏览器下不奏效.思考之后,问题之外让我感慨万千啊,很多我们所谓的难题,都会随着时代的发展迎刃而解,或被新的问题所取代. 当CSS背景图片拉 ...

  2. 转 A Week with Mozilla's Rust

    转自http://relistan.com/a-week-with-mozilla-rust/ A Week with Mozilla's Rust I want another systems la ...

  3. C++(MFC)中WebBrowser去除3D边框的方法(实现IDocHostUIHandler接口)控制 WebBrowser 控件的外观和行为

    在 CSDN 上经常看到以下两个问题:1.在 MFC 应用程序中,如果创建了一个 WebBrowser 控件(包括 CHtmlView 在内),如何可以把该控件的三维边框禁止掉?2.在 MFC 应用程 ...

  4. mybatis(三)懒加载

    懒加载的好处: 所谓懒加载(lazy)就是延时加载,延迟加载.什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载.至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为 ...

  5. iOS获取当前app的名称和版本号

    NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary]; CFShow(infoDictionary); // ap ...

  6. 如何使用JS脚本从HTML中分离图片标签与文本,替换文本中指定的内容并加粗(原创)

    var html='ddfsdfsdfdsd dfsdfsdffds<img _src="http://localhost:8490/60E86EA7-FE7B-44BF-8270-4 ...

  7. hdu 5818 (优先队列) Joint Stacks

    题目:这里 题意: 两个类似于栈的列表,栈a和栈b,n个操作,push a x表示把数x放进a栈的栈底,pop b 表示将栈b的栈顶元素取出输出,并释放这个栈顶元素,merge a b表示把后面的那个 ...

  8. iOS AFNetworking “Request failed: unacceptable content-type: text/html”问题

    使用AFNetworking出现报错: error=Error Domain=com.alamofire.error.serialization.response Code=-1016 "R ...

  9. [转]理解dropout

    理解dropout 原文地址:http://blog.csdn.net/stdcoutzyx/article/details/49022443     理解dropout 注意:图片都在github上 ...

  10. Mysql基础2

    一.DQL下查询英语分数在 80-90之间的同学.mysql>SELECT * FROM student WHERE english>=80 AND english<=90;或者my ...