YEN_csdn 2016-08-01 01:55 采纳率: 100%
浏览 1998
已采纳

为什么servlet只执行了一次

index.jsp页面用来读取request中的list :即留言信息
SelectServlet用来把留言信息保存到list中

@WebServlet( "/SelectServlet")
public class SelectServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    MessageDAO messageDAO=new MessageDAO();
    request.setCharacterEncoding("UTF-8");
    String author=request.getParameter("author");
    if(null == author || "" == author){
        request.setAttribute("messageList",messageDAO.getAllMessage());
    }else{
        request.setAttribute("messageList",messageDAO.selectByAuthor(author));
    }
    request.getRequestDispatcher("index.jsp").forward(request,response);        //页面转发
}

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

}


index.jsp页面

<%
}
List messages= (List)request.getAttribute("messageList");
if(null != messages){
for(Message msg:messages){
%>



    <%
    if(null!=user){
    if( (1==tag) || ( author.equals(msg.getAuthor()) && 0==tag )){
    %>
  • 删除编辑
    <%=msg.getAuthor()%>    发表于<%=msg.getDate()%>



<%=msg.getContext()%>




<%
} //end of for(Message msg:messages){
}
%>


运行结果为:
当启动服务器后,第一次点击进入http://localhost:8080/MessageBoard/SelectServlet时:
图片说明

当我刷新地址栏时:
图片说明

就显示不出来了

也就是说只能访问一次?

请问如何解决

  • 写回答

4条回答 默认 最新

  • 果冻剑客 2016-08-01 03:11
    关注

    当你刷新一下servlet 的地址的时候他是一定会再次访问你的后台的地址的。因为你的页面是通过转发来的,要是不经过servlet 的话,你连页面都不会出来
    (也就是说你刷新的是servlet 的地址不是页面的地址是一定会再进一次后台的,这个你要打断点确定一下。)
    2. 我猜是你的程序代码后台控制问题,当你二次访问的时候messageDao 中的数据没有查出来,你可以打印一下或者打断点调试从第二次数据为什么不出来入手

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试