一会报错500 一会不报错,而且value值不增加

来源:2-2 请求流量分析统计-开发统计查询Servlet

weixin_慕瓜9083905

2020-01-07 17:58:01

package com.imooc.total;


import java.awt.image.SampleModel;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;


import javax.servlet.ServletContextEvent;

import javax.servlet.ServletContextListener;

import javax.servlet.ServletRequestEvent;

import javax.servlet.ServletRequestListener;


public class RequestTotalListener implements ServletContextListener,ServletRequestListener{


@Override

public void requestDestroyed(ServletRequestEvent sre) {

// TODO Auto-generated method stub

}


@Override

public void requestInitialized(ServletRequestEvent sre) {

// TODO Auto-generated method stub

List<String>timeList = (List)sre.getServletContext().getAttribute("timeList");

List<Integer>valueList = (List)sre.getServletContext().getAttribute("valueList");

Date date = new Date();

SimpleDateFormat saf = new SimpleDateFormat("HH:mm");

String time = saf.format(date);

if(timeList.indexOf(time)==-1) {

timeList.add(time);

valueList.add(1);

sre.getServletContext().setAttribute("timeList", timeList );

sre.getServletContext().setAttribute("valueList", valueList);

}else {

int index = timeList.indexOf(time);

int value = valueList.indexOf(index);

valueList.set(value, value+1);

sre.getServletContext().setAttribute("valueList", valueList);

}

}


@Override

public void contextDestroyed(ServletContextEvent sce) {

// TODO Auto-generated method stub

}


@Override

public void contextInitialized(ServletContextEvent sce) {

// TODO Auto-generated method stub

List timeList=new ArrayList();

List valueList=new ArrayList();

sce.getServletContext().setAttribute("timeList", timeList);

sce.getServletContext().setAttribute("valueList", valueList);

}


}




package com.imooc.total;


import java.io.IOException;

import java.util.List;


import javax.servlet.ServletContext;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;


/**

 * Servlet implementation class RequestTotalServlet

 */

@WebServlet("/rt")

public class RequestTotalServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

       

    /**

     * @see HttpServlet#HttpServlet()

     */

    public RequestTotalServlet() {

        super();

        // TODO Auto-generated constructor stub

    }


/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

ServletContext content=request.getServletContext();

List<String>timeList = (List)content.getAttribute("timeList");

List<Integer>valueList = (List)content.getAttribute("valueList");

response.setContentType("text/html;utf-8");

response.getWriter().println(timeList.toString());

response.getWriter().println("<br/>");

response.getWriter().println(valueList.toString());

}


/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

doGet(request, response);

}


}


写回答

1回答

好帮手慕酷酷

2020-01-07

同学你好,RequestTotalListener类的代码编写的有点小问题,这里应该通过get()方法,获取访问次数。然后将指定位置的数据进行设置到list集合中。

修改后的代码如下:

http://img.mukewang.com/climg/5e14630309d70dd707200218.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 9666 问题

查看课程