zoukankan      html  css  js  c++  java
  • contextServlet

    一:读取配置文件中的参数信息

    1.新建servlet文件ContextServlet1,代码为:

    import java.io.IOException;
    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 ContextServlet1 extends HttpServlet {
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		String url1 = this.getServletConfig().getServletContext().getInitParameter("url");
    		String url2 = this.getServletContext().getInitParameter("url");//这两行代码效果相同
    		System.out.println("url1:" + url1);
    		System.out.println("url2:" + url2);
    		System.out.println("--------------------------");
    		Enumeration<String> initParameterNames = this.getServletContext().getInitParameterNames();
    		while(initParameterNames.hasMoreElements()){
    			String nextElement = initParameterNames.nextElement();
    			String elementValue = this.getServletContext().getInitParameter(nextElement);
    			System.out.println("elementsValue:" + elementValue);
    		}
    	}
    }

    2.配置web.xml:
    在web.xml根元素下加入下面代码:

     <context-param>
      	<param-name>url</param-name>
      	<param-value>mysql:http://localhost:3306</param-value>
      </context-param>
      <context-param>
      	<param-name>address</param-name>
      	<param-value>this is the context-param's address</param-value>
      </context-param>
      <context-param>
      	<param-name>career</param-name>
      	<param-value>coder,enger,ceo</param-value>
      </context-param>


    3.发布工程,浏览器中输入:http://localhost/myday03/servlet/ContextServlet1
    控制台打印结果:

    url1:mysql:http://localhost:3306
    url2:mysql:http://localhost:3306
    --------------------------
    elementsValue:coder,enger,ceo
    elementsValue:mysql:http://localhost:3306
    elementsValue:this is the context-param's address


    二:程序写入contextServlet参数,并取出<统计网页访问次数>:

    1.新建servlet文件ContextServlet2代码:

    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    //servletContext,session,request. jsp page.
    
    //servletContext是一个域对象,那么有两个概念。
    // 1.域就肯定是一个容器。(可以放任何对象)。
    // 2.域是有一个作用范围的。对于servletContext对象来说,它的作用范围就是整个web应用范围。
    // 
    public class ContextServlet2 extends HttpServlet {
    /*
     * 首先通过init方法给其设置一个初始化的值。这个值设置了之后就是一个全局的。
     * 通过servletContext对象设置的数据都是全局的。
     * servletContext就当前的web应用。(non-Javadoc)
     * @see javax.servlet.GenericServlet#init()
     */
    	public void init() throws ServletException {
    		int timesValue = 0;
    		//代码中一般是键值对,键在前,值在后,
    		this.getServletContext().setAttribute("timesName", timesValue);
    	}
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    	/*为了统计网站的访问次数,首先将之前的全局的times给获得。
    	 * 每次来自客户端的请求都将该全局的times+1
    	 * 调用getAttribute("name")就可以获得全局的times.
    	 * 	
    	 */
    		int timesValue = (Integer) this.getServletContext().getAttribute("timesName");
    		timesValue++;
    		//将变化后的times重新添加到容器中,
    		this.getServletContext().setAttribute("timesName", timesValue);
    		System.out.println("本网站已被访问:" + timesValue + "次!");
    	}
    }




    2.浏览器中输入:http://localhost/myday03/servlet/ContextServlet2
    控制台输出:
    本网站已被访问:1次!
    本网站已被访问:2次!//第二次刷新时得到的结果。每刷新一次就得到一个新的结果。


    三:将上述在控制台中输出的结果改为在浏览器中输出:


    import java.io.IOException;
    import java.text.DateFormat;
    import java.util.Date;
    
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class RefreshServelet extends HttpServlet {
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		//refresh头实现定时刷新到某个页面.
    		//一般可用作定时刷新,
    		//应用:股票,聊天室,
    //		response.setHeader("Refresh", "2;url=http://www.baidu.com");
    		response.setHeader("Refresh", "0");
    		response.setContentType("text/html;charset=utf-8");
    		response.getWriter().print("每秒刷新一次:"+ new Date(System.currentTimeMillis()).toLocaleString());
    //		response.getWriter().print("每秒刷新一次:"+ DateFormat.format();
    		
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    	}
    
    }


  • 相关阅读:
    121.买卖股票 求最大收益1 Best Time to Buy and Sell Stock
    409.求最长回文串的长度 LongestPalindrome
    202.快乐数 Happy Number
    459.(KMP)求字符串是否由模式重复构成 Repeated Substring Pattern
    326.是否为3的平方根 IsPowerOfThree
    231.是否为2的平方根 IsPowerOfTwo
    461.求两个数字转成二进制后的“汉明距离” Hamming Distance
    206.反转单链表 Reverse Linked List
    448. 数组中缺少的元素 Find All Numbers Disappeared in an Array
    常见表单元素处理
  • 原文地址:https://www.cnblogs.com/pangblog/p/3278380.html
Copyright © 2011-2022 走看看