当前位置: 代码迷 >> Java Web开发 >> JSP 如何才能得到每个帖子的点击次数啊
  详细解决方案

JSP 如何才能得到每个帖子的点击次数啊

热度:6193   发布时间:2013-02-25 21:13:16.0
JSP 怎么才能得到每个帖子的点击次数啊啊啊~~~~
Java code
public int getNum() {        return num;    }    public void setNum(int num) {        num++;        this.num = num;        }

article.jsp
Java code
<a>href="articleDetailFlat.jsp?id=<%=a.getId()%>&num=<%=a.setNum(num) %>"><%=a.getTitle()%></a>

articelDetailFlat.jsp
Java code
<%    String strId = request.getParameter("id");    String num = request.getParameter("num");    List<Article> articles = new ArrayList<Article>();    Connection conn = DB.getConn();        String sql = "select * from article where rootid = " + id + " order by pdate asc";    String sqlNum = "update article set num = " + num + " where pid = 0";            Statement stmt = DB.createStmt(conn);    stmt.executeUpdate(sqlNum);        ResultSet rs = DB.executeQuery(stmt, sql);    while(rs.next()){    Article a = new Article();    a.initFromRs(rs);    articles.add(a);        }        DB.close(stmt);    DB.close(rs);    DB.close(conn);    %>

我想做的是通过点击主页上某个帖子的链接的时候就让num加1,然后传到子贴里,更新数据库里pid也就是主题帖的num值。
可是好像就是第一次能够加1,后面的再怎么点都不行了额,这是什么情况。。。有别的办法么

------解决方案--------------------------------------------------------
在你的article.jsp中连接传过去参数的时候用错方法了吧,a.setNum(num)是一个没有返回值的方法,在get里面自增再换成get试一下
------解决方案--------------------------------------------------------
每点一下传一个帖子的id,然后根据这个id找到帖子。然后帖子的num属性加加就好了
------解决方案--------------------------------------------------------
点击进入每个帖子的时候 要调用一个方法 该方法就是用来统计次数的。
------解决方案--------------------------------------------------------
检查这个sql
 String sqlNum = "update article set num = " + num + " where pid = 0";
pid=0 每次的条件都是这样的吗?
num = num + 参数
------解决方案--------------------------------------------------------
探讨

检查这个sql
String sqlNum = "update article set num = " + num + " where pid = 0";
pid=0 每次的条件都是这样的吗?
num = num + 参数

------解决方案--------------------------------------------------------
<a>href="articleDetailFlat.jsp?id=<%=a.getId()%>&num=<%=a.setNum(num) %>">
~~~~~~~~~~~~~~~~~~~
你这里的setNum返回的是void
也就是说<%=a.setNum(num)%>的结果永远是空
因此你的num参数永远是0,所以永远是0+1=1

不过我觉得你的代码思路不是很清晰,为什么要在链接里把num也带上呢?只要有id就可以了,然后根据id找到数据库里的记录,然后把num字段自增就好了吧。不要把num从数据库里读出来,然后+1,然后再存回去,这样会有多线程的问题。数据库本身有多线程保护机制。

还有就是,如果用java来做web应用,还是要用servlet的,不要把业务代码放在jsp里面,jsp只是view,只要把servlet准备好的数据读出来,嵌入到html里面就好了
  相关解决方案