zoukankan      html  css  js  c++  java
  • servlet中用注解的方式读取web.xml中的配置信息

      在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通过servletContext.getInitParameter("name")的方式读取,java5以后提供了新的方案叫做资源注入就是通过注解(Annotation)的方式.也就是说,不需要servlet主动读取数据,Tomcat在启动的时候会把web.xml里配置的信息主动"注入"到Servlet中,我们不需要在编写读取的代码,只需要定义出来就能用了,下面举例介绍:

    在web.xml中配置的代码如下:

    <servlet>
        <servlet-name>AServlet</servlet-name>
        <servlet-class>com.wang.servlet.AServlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>AServlet</servlet-name>
        <url-pattern>/AServlet</url-pattern>
      </servlet-mapping>
    <env-entry>
        <env-entry-name>info1</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>Hello Servlet</env-entry-value>
    </env-entry>
    <env-entry>
        <env-entry-name>number</env-entry-name>
        <env-entry-type>java.lang.Integer</env-entry-type>
        <env-entry-value>21</env-entry-value>
    </env-entry>
    <env-entry>
        <env-entry-name>info2</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>Hello,Servlet,I,am,happy</env-entry-value>
    </env-entry>

    新建一个servlet(我这里命名为AServlet):

    public class AServlet extends HttpServlet {
    
        private @Resource(name="info1") String info1;
        private @Resource(name="info2") String info2;
        private @Resource(name="number") int i;
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            out.print("info1="+info1+"<br>");
            out.print("number="+i+"<br>");
            String[] arrInfo2=info2.split(",");
            for(String s:arrInfo2){
                out.print("arrInfo2--"+s);
                out.print("<br>");
            }
            
        }
    }

    启动项目,访问Aservlet,网页上输出的结果为:

    info1=Hello Servlet
    number=21
    arrInfo2--Hello
    arrInfo2--Servlet
    arrInfo2--I
    arrInfo2--am
    arrInfo2--happy

  • 相关阅读:
    可视化工具Navicat 视图 事物 存储过程
    mysql用户管理 + pymysql的使用
    0914 表与表之间的关系补充一对一关系 记录操作 关键字 多对多 子查询
    0913数据库约束之主键 外键 非空 默认值约束 唯一约束 级联操作 表与表之间的联系
    数据库的数据类型
    面向对象之继承
    面向对象
    re模块
    加密常用模块
    日志模块
  • 原文地址:https://www.cnblogs.com/fingerboy/p/5176377.html
Copyright © 2011-2022 走看看