JSP流量监控脚本使用方法

百度不到JSP的流量监控脚本,自己写一个吧,1.0版本,后续更新会封装一下;功能:保存请求头和表单信息并打印
使用方法:
1 把web.xml配置为这个脚本的路径


2 把全局变量设置为你要保存的txt文件路径

效果:


代码如下: 

import java.io.File;

import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.sql.Date;
import java.text.SimpleDateFormat;
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 liu extends HttpServlet {


    public static String path = "E:/Test/log.txt";
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	

	
	     public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
	         response.setCharacterEncoding("UTF-8");//设置将字符以"UTF-8"编码输出到客户端浏览器
 //通过设置响应头控制浏览器以UTF-8的编码显示数据
	        response.setHeader("content-type", "text/html;charset=UTF-8");
	         PrintWriter out = response.getWriter();
	         @SuppressWarnings("unchecked")
//           遍历获取表单值
           Enumeration<String> em = request.getParameterNames();
           while (em.hasMoreElements()) {
	            String postname = (String)em.nextElement();
	            String postvalue = request.getParameter(postname);
              String postvalues = postname+":"+postvalue;
              System.out.println(postvalues);


     
             
              
              BufferedWriter out1 = null;
              try {
              out1 = new BufferedWriter(new OutputStreamWriter(
              new FileOutputStream(path, true)));
              out1.write(postvalues+"\r\n");
             
              } catch (Exception e) {
              e.printStackTrace();
              } finally {
            	  
                  
              try {
              out1.close();
              } catch (IOException e) {
              e.printStackTrace();
              }
              }
                          

           }
	        
	         
//	         在页面上回显数据
			Enumeration<String> reqHeadInfos = request.getHeaderNames();//获取所有的请求头
	        out.write("获取到的客户端所有的请求头信息如下:");
	        out.write("<hr/>");

//	        遍历获取请求头信息
	        while (reqHeadInfos.hasMoreElements()) {
	             String headName = (String) reqHeadInfos.nextElement();
//根据请求头的名字获取对应的请求头的值
	             String headValue = request.getHeader(headName);
	             out.write(headName+":"+headValue);
	             out.write("<br/>");

	           String string = headName+":"+headValue;
	           
               FileWriter fw = null;
	             try {
 //  存入指定路径,如果文件存在,则追加内容;如果文件不存在,则创建文件
	             File f=new File("E:/Test/log.txt");
	             fw = new FileWriter(f, true);
	             } catch (IOException e1) {
	             e1.printStackTrace();
	             }
	             PrintWriter pw = new PrintWriter(fw);
	             pw.println(string);
	             
	             pw.flush();
	             try {
	            
	             fw.flush();
	             pw.close();
	             
	             fw.close();
	            
	             } catch (IOException e1) {
	             e1.printStackTrace();
	             }
	             
	             }
	        
	        FileWriter fw = null;
            try {
            //如果文件存在,则追加内容;如果文件不存在,则创建文件
            File f=new File("path");
            fw = new FileWriter(f, true);
            } catch (IOException e) {
            e.printStackTrace();
            }
            PrintWriter pw = new PrintWriter(fw);
//  加上时间
            Date date= new Date(System.currentTimeMillis());
        	   String pattern="yyyy/MM/dd HH时mm分ss秒";
        			   SimpleDateFormat sdf= new SimpleDateFormat(pattern);
        	   String datestr=sdf.format(date);// format  为格式化方法
        	   pw.write(datestr);

            pw.flush();
            try {
           
            fw.flush();
            pw.close();
            
            fw.close();
           
            } catch (IOException e) {
            e.printStackTrace();
            }
   
 }
	       
	         
	 
	   
	 
	     public void doPost(HttpServletRequest request, HttpServletResponse response)
	             throws ServletException, IOException {
	         doGet(request, response);
	     }
	 
}

	

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-教育技术博主

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值