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

  • 相关阅读:
    Jquery 跨域请求JSON数据问题
    js定时器实现图片轮播
    Redis数据一致性
    Redis缓存击穿、缓存穿透、缓存雪崩
    数据库连接池druid连接mysql数据库‘链路断开’问题
    Mysql启动错误: Can’t create test file xxx lower-test
    DB2-表空间
    DB2-Schema
    DB2-数据库
    DB2-实例
  • 原文地址:https://www.cnblogs.com/fingerboy/p/5176377.html
Copyright © 2011-2022 走看看