日期:2014-05-17  浏览次数:20816 次

怎么测试从JS传过来的参数我的页面已经正确接收并存进了数据库?
最近在开发一个流量统计系统,主要有个JS文件是嵌入到要统计的页面中,这个JS文件主要是获取客户端的一些基本信息,比如屏幕大小,屏幕分辩率,当前用户正在访问的页面等。
我的JS文件如下:
JScript code

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)的内容如下:
Java code
<%@ 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连接数据库是正常的,我其它页面连接数据库并显示出来是没有问题的。

现在问题是怎么测试这个页面呢?还是要把这个页面嵌入到我的其它显示页面中去?



------解决方案--------------------
会不会是缓存·····
每次提交的链接是否是相同的?
------解决方案--------------------
其实不明白为什么不在过滤器中做额
------解决方案--------------------
探讨

引用:
会不会是缓存·····
每次提交的链接是否是相同的?

是相同的

------解决方案--------------------
<%
System.out.print(sql);
%>
看看sql是否正确。
------解决方案--------------------
探讨

引用:
其实不明白为什么不在过滤器中做额


过滤器怎么做呢?

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

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


谢谢,通过看SQL才发现原来我有个字段名写错了

但是还有个问题,怎么在不执行goStat.jsp页面的情况下,将数据插入数据库?因为我这个goStat.jsp页面是没有内容的,只是接收参数并将参数存入数据库的

------解决方案--------------------
o 吃饭了 
你的访问代码木有放出来。

ajax访问会有缓存问题,就前面说的方式解决

还有好似是可以用cookie + 拦截器做