• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    jsp网页计数器实现示例
    复制代码 代码如下:

    //过滤器类
    public class EcondingFilter implements Filter {
    private String charset = null;
    private ServletContext context = null;
    private String path = "";
    /**
    * 在销毁前将数据存入本地文件中
    */
    public void destroy() {
    //获取servleContext中的属性的那个值
    String nums = (String) context.getAttribute("nums");
    //创建写入流
    FileWriter fw = null;
    BufferedWriter bw = null;
    try {
    fw = new FileWriter(path);
    bw = new BufferedWriter(fw);
    bw.write(nums);
    } catch (Exception e) {
    e.printStackTrace();
    } finally {

    try {
    if (bw != null) {
    bw.close();
    }
    if (fw != null) {
    fw.close();
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    System.out.println("filter销毁");
    }

    复制代码 代码如下:

    public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    System.out.println("doFilter前");
    String path = ((HttpServletRequest)request).getServletPath();//获取每次访问的action的相对路径
    img alt="" src="http://img.blog.csdn.net/20130728233435953?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2tyZ3diag==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center">img alt="" src="http://img.blog.csdn.net/20130728233445625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2tyZ3diag==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"> //判断路径,如果是登陆的那个action,就让保存的context里面的那个属性加1
    if(path.endsWith("/login.action")){
    context.setAttribute("nums",Integer.parseInt(context.getAttribute("nums").toString())+1+"");
    }
    request.setCharacterEncoding(charset);
    response.setCharacterEncoding(charset);
    chain.doFilter(request, response);
    System.out.println("doFilter后");

    }

    复制代码 代码如下:

    public void init(FilterConfig filterConfig) throws ServletException {
    // TODO Auto-generated method stub
    System.out.println("filter初始化");
    //获取编码格式
    charset = filterConfig.getInitParameter("encoding");
    //获取servletContext
    context = filterConfig.getServletContext();
    System.out.println(charset);

    path = context.getRealPath("");
    File file = new File("D:\\text.txt");
    if (!file.exists()) {//判断文件是否存在
    // 如果文件不存在,就创建一个文件,保存在D盘中
    file = new File("d:\\text.txt");
    FileWriter fw = null;
    BufferedWriter bw = null;
    try {
    fw = new FileWriter(file);
    bw = new BufferedWriter(fw);
    bw.write(0 + "");// 写入初始化数据0
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (bw != null) {
    bw.close();
    }
    if (fw != null) {
    fw.close();
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();

    }
    }
    }
    //当每次tomcat启动服务时,进行读取创建的那个文件
    path = "d:\\text.txt";
    // 从本地读取访问的人数的文件
    FileReader fr = null;
    BufferedReader bf = null;
    String nums = "";
    try {
    fr = new FileReader(path);
    bf = new BufferedReader(fr);
    nums = bf.readLine();
    System.out.println(nums);
    } catch (Exception e) {
    e.printStackTrace();
    } finally {

    try {
    if (bf != null) {
    bf.close();
    }
    if (fr != null) {
    fr.close();
    }
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    //将获得到的数据保存在servletContext中
    context.setAttribute("nums", nums);
    }

    }

    用过滤器方便的一点,不需要我们每次手动去调用,当web服务启动时候,自动会引用。首先说下,我写到init方法的依据是,每次web服务启动会调用一次init方法,当关闭服务的时候会调用一次destory方法,将计数的那个数据文件,这个方法写到init方法和destory方法,这样可以减少每次的不断的读取服务器和读取写入文件的次数,当我们每登陆一次,就让servletContext中的那个attr加1,从而实现当关闭服务的时候,把文件保存在磁盘中。下次从磁盘中读取。
    您可能感兴趣的文章:
    • JavaScript实现计数器基础方法
    • 使用JavaScript制作一个简单的计数器的方法
    • 一个简单的网站访问JS计数器 刷新1次加1次访问
    • javascript下计数器每秒自动加1
    • 用JAVASCRIPT帮我写个计数器
    • js计数器代码
    • 原生JS实现非常好看的计数器
    上一篇:使用maven+eclipse搭建struts2开发环境
    下一篇:jsp页面间传中文参数示例(页面传参数编码)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    jsp网页计数器实现示例 jsp,网页,计数器,实现,示例,