zoukankan      html  css  js  c++  java
  • ServletContext对象的应用及其相关知识点

    需求:统计某一网站上的访问次数。即当你访问一个网站时,可以显示当前这次访问是第多少次访问。

     代码

    package com.lagou;
    /**
     * 需求:编写CountServlet,实现对该网站的访问次数统计
     * 分析:通过ServletContext对象,实现该功能
     *      1.继承HttpServlet抽象类
     *      2.重写init()方法,定义计数器。并配置在项目启动时,执行init()方法
     *      3.重写doPost()和doGet()方法。
     *          3.1获取
     */
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    public class CountServlet extends HttpServlet {
    
        @Override
        public void init() throws ServletException {
    
            //设置访问次数为0,即获取到ServletContext对象并调用setAttribute方法设置数值(域对象共享数据)
            getServletContext().setAttribute("count",0);
        }
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
            //设置编码方式
            resp.setContentType("text/html;charset=utf-8");
    
            //第一步:从ServletContext域中获取计数,取数据
                //1.获取域对象
            ServletContext servletContext = req.getServletContext();
    //        ServletContext servletContext = this.getServletContext();  //获取ServletContext域对象的第二种方式
                //2.调用域对象方法,获取数据
            int count = (int)servletContext.getAttribute("count");
    
            //第二步:将数据返回给浏览器并显示
            count++;
            resp.getWriter().write("<h3>我的博客</h3>");
            resp.getWriter().write("<div> 你是第" + count + "次访问该网站..." + "</div>");
    
            //第三步:向ServletContext域对象中写入数据
            servletContext.setAttribute("count",count);
    
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            doGet(req, resp);
        }
    }
    

    相关知识点总结:

    ServletContext对象:web容器(tomcat)在启动时,它会为每个web项目承建一个对应的ServletContext对象


    主要作用:

    1. 域对象(共享数据)
    2. 获取资源在服务器的真实地址
    3. 获取全局的配置参数
    4. 获取文件MIME类型

    获取ServletContext对象

    1. 通过request对象获得
      ServletContext sc = request.getServletContext();
    2. 继承HttpServlet后,可以直接调用
      ServletContext sc = this.getServletContext();

     域对象共享数据的API方法

    1. 存储数据
    void setAttribute(String name,Object value)
    2. 获取数据
    Object getAttribute(String name)
    3. 删除数据
    void removeAttribute(String name)
    

      

  • 相关阅读:
    解释中国经济奇迹的5本书
    《门口的野蛮人》三部曲,美国的宝万之争专业户
    3星|《城市更新》:欧美东亚中国老城区改造的资料与案例汇编
    3.5星|《哈佛商业评论》2018年第11期:机场的书店很危险,出差的高管可能会被商业新书主张吸引
    3星|《好文案一句话就够了》:10年前一些日本经典广告文案
    5星|林毅夫《解读中国经济》:完美解释中国经济奇迹和现存问题
    iOS:Masonry 英文原档介绍
    iOS:Masonry介绍与使用
    iOS :学习新技术途径和sizeClasses屏幕适配
    iOS:XMPP即时聊天知识
  • 原文地址:https://www.cnblogs.com/aloneme/p/14286544.html
Copyright © 2011-2022 走看看