急!一直等待localhost响应

希望在哪 2013-04-14 05:30:09
Action代码
System.out.println("11111111111111");
HttpSession session=ServletActionContext.getRequest().getSession();
System.out.println("22222222222222");
String username = session.getAttribute("userName").toString();
System.out.println("33333333333333");
comment = commentService.getCommentByUserName(username);
System.out.println("44444444444444");
books = bookService.getBookByUserName(username);
System.out.println("55555555555555");

第一次执行这段代码,可以正确得到comment和books,getBookByUserName是用HQL语句 session.createQuery("from Book where username =:username").setString("username", username);得到的,既然第一遍执行没问题,可以在jsp里正确显示。我想这两个函数应该没问题吧。但是我执行另外一个action后重定向到这个action后就只能输出到System.out.println("44444444444444")这里,浏览器就一直等待localhost的响应了。请教这是什么原因?

struts.xml
<action name="deleteBook" class="src.com.action.deleteBook">
<result name="success" type="redirectAction">
<param name="actionName">showMyComment</param>
</result>
</action>
...全文
1432 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
debug这个getBookByUserName函数。问题很好解决。
十年彩虹 2013-04-15
  • 打赏
  • 举报
回复
都贴出来看看。debug 一步步试试不就知道 是哪里出现了null 一看有错误要解决。我都忍不去要去找你给你解决。 我天天看看log 有问题看看代码解决问题。解决问题的感觉真好。
希望在哪 2013-04-15
  • 打赏
  • 举报
回复
谢谢楼上各位朋友的回复,我刚学java web不到一周,peng_hao1988 说的session没有关闭是正解。结贴
lvzg_005 2013-04-15
  • 打赏
  • 举报
回复
如ls所说,lz需要跟踪方法getBookByUserName, 养成自己调式解决问题的习惯
tianma630 2013-04-15
  • 打赏
  • 举报
回复
你在getUserByUserName方法里加几个断点看看 具体是哪一行的问题
jjruanlili 2013-04-15
  • 打赏
  • 举报
回复
如果需要参数,你redirect的时候可以把那个参数也一起传到下一个action里的
桃园闲人 2013-04-14
  • 打赏
  • 举报
回复
你里面的session是怎么来的?用完后关闭了吗?还有你用你获取到的username值到数据查询试试,看看能否查询出来。
  • 打赏
  • 举报
回复
可能是数据库连接异常,查不到值就报异常了呗
希望在哪 2013-04-14
  • 打赏
  • 举报
回复
这是通过用户名拿到用户的函数 public User getUserByUserName(String username){ Session session = hibernateTemplate.getSessionFactory().openSession(); User user = (User) session.createQuery("from User where userName =:username").setString("username", username).uniqueResult(); if(user != null) return user; return null; }
希望在哪 2013-04-14
  • 打赏
  • 举报
回复
Book的数据表里只有userId,所以要先拿到user的id,函数是这样写的 public List<Book> getBookByUserName(String username){ User user = userService.getUserByUserName(username); return (List<Book>)session.createQuery("from Book where userId=:userId").setInteger("userId",user.getId()).list(); } 我在只能输出到System.out.println("44444444444444")加了个只能输出到System.out.println("username")可以正确输出当前用户的name
桃园闲人 2013-04-14
  • 打赏
  • 举报
回复
只能输出到System.out.println("44444444444444")这里,说明你的程序在getBookByUserName方法里卡主了,你在转发的时候userName不知道有没有通过URL携带?可能就是这个参数不对导致在这个方法里出现了死循环,或者线程等待等情况。 好好跟一下getBookByUserName方法。
aleyn 2013-04-14
  • 打赏
  • 举报
回复
调试一下试试

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧