设置访问记录

设置访问记录

通过实现ServletRequestListener;强转成父类HttpServletRequest获取各类信息

通过io流进行输入文件

package com.msb;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
@WebListener
public class listenDemo implements ServletRequestListener {
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    @Override
    public void requestDestroyed(ServletRequestEvent sre) {

    }
    @Override
    public void requestInitialized(ServletRequestEvent sre) {
    //获得发出的请求
        //获得发出的url
        //获得响应时间
        HttpServletRequest req =(HttpServletRequest) sre.getServletRequest();
        String remoteHost = req.getRemoteHost();
        String requestURL = req.getRequestURL().toString();
        //使用自定义格式,这里可以参考log4j
        String format = simpleDateFormat.format(new Date());
        PrintWriter writer =null;
        try {
            //将请求打印到文件中
            /*
            * new创建一个对象file一个file文件,引入;路径
            * 在PrintWriter方法中传入FileOutputStream的参数,文件对象
            * 调用println方法换行
            * */
            File file = new File("d:/msb.txt");
            writer = new PrintWriter(new FileOutputStream(file,true));
            writer.println(remoteHost);
            writer.println(requestURL);
            writer.println(format);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (null!=writer){
                writer.close();
            }
        }
    }
}

posted @ 2022-05-29 18:38  爱豆技术部  阅读(63)  评论(0)    收藏  举报