读书人

为什么用的servlet不能统计次数啊该如

发布时间: 2012-01-30 21:15:58 作者: rapoo

为什么用的servlet不能统计次数啊???????
package My;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

/**
*
* @author Administrator
* @version
*/
public class Count extends HttpServlet {

/** Processes requests for both HTTP <code> GET </code> and <code> POST </code> methods.
* @param request servlet request
* @param response servlet response
*/
int count = 1;




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

response.setContentType( "text/html;charset=gbk ");
response.setCharacterEncoding( "gbk ");
String num=(String)request.getAttribute( "C ");
if(request.getAttribute( "C ")!=null)
count +=1;
request.setAttribute( "C ",String.valueOf(count));
PrintWriter out = response.getWriter();

out.print( " <html> <head> <title> test </title> </head> <body> 已经被访问 "+ request.getAttribute( "C ") + "次 </body> </html> ");

}


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

}
}


[解决办法]
肯定是1啊,你的请求是放在request里面的,你把他放在session里面试试

HttpSession session=request.getSession();
session.setAttribute( "C ",String.valueOf(count));
[解决办法]
对于客户端的每一个请求, 都会new一个request, 因此你每次取C值的时候都会是0, 加一后, 显示即为一, 没有变化.

对于这个问题, 你可以看看 PageContext, ServletRequest, HttpSession, ServletContext
他们四个都有GetAttribute,SetAttribute 方法, 看看他们之间的区别.

这个问题, 你应该用 HttpSession 的Get/Set方法,即 request.GetSession() 之Get/Set方法

读书人网 >Java Web开发

热点推荐