JSP 如何才能得到每个帖子的点击次数啊
JSP 怎么才能得到每个帖子的点击次数啊啊啊~~~~
article.jsp
articelDetailFlat.jsp
我想做的是通过点击主页上某个帖子的链接的时候就让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 + 参数
------解决方案--------------------
------解决方案--------------------
<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里面就好了
- 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 + 参数
------解决方案--------------------
------解决方案--------------------
<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里面就好了