首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2012-01-30 
为什么用的servlet不能统计次数啊???????packageMyimportjava.io.*importjava.net.*importjavax.servle

为什么用的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方法

热点排行