关于/rt页面显示不出来的问题

来源:2-4 实现动态图表

龙丶

2019-11-22 12:54:59

package total;

import com.alibaba.fastjson.JSON;

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;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@WebServlet("/rt")
public class RequsetTotalServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        ServletContext context = request.getServletContext();
        List<String> timeList = (List<String>) context.getAttribute("timeList");
        List<Integer> valueList = (List<Integer>) context.getAttribute("valueList");
        response.setContentType("text/html;charset=utf-8");
//        response.getWriter().println(timeList.toString());
//        response.getWriter().println("<br/>");
//        response.getWriter().println(valueList.toString());

        Map result =new HashMap();
        result.put("timeList",timeList);
        result.put("valueList",valueList);
      String json=  JSON.toJSONString(request);
      response.getWriter().println(json);
    }
}
package total;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class RequestTotalListener implements ServletContextListener, ServletRequestListener {


    @Override
    public void contextInitialized(ServletContextEvent sre) {
        List timeList = new ArrayList();
        List valueList = new ArrayList();
        sre.getServletContext().setAttribute("timeList", timeList);
        sre.getServletContext().setAttribute("valueList", valueList);
    }

    @Override
    public void contextDestroyed(ServletContextEvent sre) {

    }

    @Override
    public void requestDestroyed(ServletRequestEvent sre) {

    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        //TimeList:10 : 02   10 : 03   10 : 04
        //valueList :     5           7            10
        List<String> timeList = (List) sre.getServletRequest().getAttribute("timeList");
        List<Integer> valueList = (List<Integer>) sre.getServletRequest().getAttribute("valueList");

        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
        String time = sdf.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.get(index);
            valueList.set(index, value + 1);
            sre.getServletContext().setAttribute("valueList",valueList);
        }

    }
}

就报500的错误,这是怎么回事?

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

写回答

1回答

好帮手慕珊

2019-11-22

同学,你好!错误提示信息显示找不到JSON这个类,可以看一下jar包是否成功部署到Tomcat中了。

首先查看一下项目的发布目录,如下图所示,双击下面的Tomcat v8.5 Server,会出现上面的窗口。在该窗口中,先找Server Path所在的目录。要找到Server Path,需要先找到工作区,也就是项目所在的目录,在和项目所在目录同级的目录中,会看到我这里的.metadata,最终到tmp0文件夹。然后再找wtpwebapps文件夹。最后找到你工程的lib文件夹,看一下是否有fastjson的jar包,如果没有则拷贝一个过去。

注意:如果没有改过Tomcat的发布目录,基本是按照上述操作去找目录。

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

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


0

0 学习 · 9666 问题

查看课程