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 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办