java - 从 Servlet 写入文件

标签 java xml servlets

这是我写的一段代码:

public class ServletCounter extends HttpServlet {

    private final Object lock = new Object();

    private int serviceCounter = 0;
    private FileOutputStream out;
    private boolean shuttingDown;

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        super.init(servletConfig);
            }

     @Override
    protected void service(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        enteringServiceMethod();
        try {
            super.service(httpServletRequest, httpServletResponse);
            out = new FileOutputStream("C:\\xampp\\tomcat\\webapps\\myapp\\WEB-INF\\lib\\counter.txt");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        } 
        @Override
    protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
        if (!shuttingDown) {
            writeToFile("number of servlet access = " + serviceCounter );

        }
    }

    @Override
    public void destroy() {
        ...
    }
    private void enteringServiceMethod() {
        synchronized (lock) {
            serviceCounter++;
            writeToFile("method enteringServiceMethod serviceCounter =  " + serviceCounter);
        }
    }
    private int getNumServices() {
        synchronized (lock) {
            return serviceCounter;
        }
    }
    private void writeToFile(String text) {
        System.out.println(text);
        text += "\r\n";

        try {
            out.write(text.getBytes());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    }

我需要的是每次有人打开我的 Servlet 时,它都应该打开“counter.txt”文件并存储 Servlet 被打开的次数。例如,如果文件保存数字 8,那么在有人访问 servlet 后,它应该存储数字 9 并删除数字 8。这有意义吗?任何人都可以帮我重写 writeToFile 方法。我写的代码不完整,但我被卡住了,尝试了几件事,但似乎没有任何效果。

最佳答案

如果您尝试计算页面点击次数,那么 Filter 将是不错的方法

拦截每个请求并在应用程序范围内获取一个同步变量并递增它

关于java - 从 Servlet 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10563210/

相关文章:

java - Maven 的配置文件问题

java - Servlet 映射问题 - 我做错了什么?

java - 使用 spring boot 在同一端口上使用多个 webapp

java - 请求的资源在 Servlet、Tomcat7 中不可用

java - 使用起始字符串和结束字符串从长字符串中提取子字符串?

java - 如何从 javac 插件获取 MemberSelectTree 中的表达式类型?

java - 如何防止XML中的自关闭<tags/>?

xml - 查看原始 RSS 提要?

android - Phonegap 全屏应用

Java Space Invaders Game Rapid Fire 作弊触发游戏获胜过早