t1441332354 2018-05-29 01:32 采纳率: 71.8%
浏览 705
已结题

求提升jsp页面响应时间的办法

这是一个servlet,作用是调取数据库的某些数据存放到一个集合里

        try{
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://";
            String username = "test";
            String password = "123456";
            Connection conn = DriverManager.getConnection(url, username, password);
            Statement stmt = conn.createStatement();
            String sql = "select FI_FisherName from newshipinfo";
            ResultSet rs = stmt.executeQuery(sql);
            List<DetectItem> list2 = new ArrayList<DetectItem>();
            while(rs.next()){
                DetectItem dct = new DetectItem();
                dct.setFI_FisherName(rs.getString("FI_FisherName"));
                list2.add(dct);
            }
            request.setAttribute("list2", list2);
            rs.close();
            stmt.close();
            conn.close();
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }catch(SQLException e){
            e.printStackTrace();
        }
        request.getRequestDispatcher("project.jsp").forward(request, response);
    }

这个是读取数据显示的页面

 <select name="dId" id="dId" class="selectpicker bla bla bli" data-live-search="true" size="1">
                <%
                    List<detection> list = (List<detection>)request.getAttribute("list");
                        if(list ==null || list.size() < 1){
                            out.print("没有数据!");
                        }else{
                            for(detection dct :list){
                                %>
                                <option value="<%=dct.getFI_FisherName()%>"><%=dct.getFI_FisherName()%></option>
                                <%
                            }
                        }

                    %>
            </select>

现在每次页面响应时间都很长,感觉每次运行它都要去数据库里把数据放到集合里。数据库里也只有3000左右条数据。每次提交完数据返回时也要拖很长的时间。我想问有没有什么办法能提高响应时间?能不能把数据缓存到服务器,要调用的时候直接去服务器里调,就不去数据库里一次次的访问封装到集合了。

  • 写回答

7条回答 默认 最新

  • threenewbee 2018-05-29 01:39
    关注
     如果查询出来的list数据量不大,可以放在session里
    
    HttpSession hs=request.getSession();
    hs.setAttribute("list",list2);
    下次使用用
    List<DetectItem> list = (List<DetectItem>)hs.getAttribute("list");
    
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值