最近在开发一个流量统计系统,主要有个JS文件是嵌入到要统计的页面中,这个JS文件主要是获取客户端的一些基本信息,比如屏幕大小,屏幕分辩率,当前用户正在访问的页面等。
我的JS文件如下:var pcstj;
pcstj='&atj='+escape(document.referrer)+'&btj='+escape(document.location)+'&ctj='+escape(navigator.userAgent'&dtj='+screen.colorDepth+'&etj='+screen.width+'*'+screen.height+'&ftj='+navigator.systemLanguage; //alert(pcstj);document.write('<img scr="images/pics.gif" border=1 width=2 heigth=2>');
document.write('<img src="goStat.jsp?id=1'+pcstj+'" border=0 width=0 height=0 />');
这个JS文件经过ALERT所有的参数值是正确的。然后我的统计系统中,有个专门接收JS传过来的参数的页面(goStat.jsp)。但是不管我怎么刷新嵌入了JS的页面,数据都没有进到数据库中来。接收页面(goStat.jsp)的内容如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.util.*" pageEncoding="UTF-8"%>
<%@ page import = "gzbd.picopcs.*" %><%
Connection con = DBStat.getConn() ;
Statement stmt=con.createStatement();
ResultSet rs =null;String id=request.getParameter("id");
String Ip=request.getRemoteAddr();
String referrer = request.getParameter("atj");
if (referrer==null)
  referrer="直接输入";
else if (referrer.equals("")) 
  referrer="直接输入";
String location=request.getParameter("btj"); 
String UserAgent = request.getParameter("ctj");
String ScreenColor= request.getParameter("dtj");
String ScreenSize = request.getParameter("etj");
String ScreenLanguage = request.getParameter("ftj");String sql="insert into pcs_data(pcs_VisitIP, pcs_VisitFPage, pcs_VisitPage, pcs_VisitScreenColor,pcs_VisitScreenSize, pcs_VisitLanguage"+
          ") values('"+Ip+"','"+referrer+"','"+location"','"+ScreenColor+
          "','"+ScreenSize"','"+ScreenLanguage+"')'";stmt.executeUpdate(sql);DBStat.closeResource(stmt, rs, con);
%>
测试过DBStat连接数据库是正常的,我其它页面连接数据库并显示出来是没有问题的。现在问题是怎么测试这个页面呢?还是要把这个页面嵌入到我的其它显示页面中去?

解决方案 »

  1.   

    <%
    System.out.print(sql);
    %>
    看看sql是否正确。
      

  2.   

    你光刷新有什么用
    他是个连接,你要点击这个连接,才能根据这个url访问后台的
      

  3.   


    谢谢,通过看SQL才发现原来我有个字段名写错了但是还有个问题,怎么在不执行goStat.jsp页面的情况下,将数据插入数据库?因为我这个goStat.jsp页面是没有内容的,只是接收参数并将参数存入数据库的
      

  4.   


    你之前是用什么访问goStat.jsp的呢?
      

  5.   

    o  吃饭了 
    你的访问代码木有放出来。ajax访问会有缓存问题,就前面说的方式解决还有好似是可以用cookie + 拦截器做吃饭!
      

  6.   


    用servlet不行么?一定要用jsp啊...
      

  7.   

    呵呵,我是菜鸟,不太会用servlet
      

  8.   

    goStat.jsp 中的代码 就是负责执行数据库操作的,为什么不想转到这个页面呢?
    这种结构还是比较正确的。即,不同功能放在不同的文件中。
    你的统计页面专门负责显示,而goStat.jsp专门负责操作数据库,这样是正确的。不要把显示和数据库的代码放到一个文件中。即使你使用servlet之类的技术,也还是要转到其它文件去操作数据库的。
    即使你不转到goStat.jsp,也要转到goStat.servlet(仅简单举例,不要深究)。
    不要拘泥与形式。jsp就是servlet。