有wap和web网站,提供搜索功能,用户登录网页时,先检测用户机器上面有没有我们网站的cookie(里面有给每个网页用户分配的userid),如果没有的话,就自动分配一个userid通过cookie保存在用户端。
我在wap和web网页的首页页首部分添加了一个动态加载cookie.jsp页面(用来检测cookie、获取userid或新分配userid和发送cookie),以下是cookie.jsp相关代码:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
<head> </head>
<body>
<%
boolean flag=false; //设置cookie检测标示
int time=60*60*24*365*3;
String name="";
String UseridFinal="";
StringBuffer UseridTemp = new StringBuffer("0000000000");//设置userid格式
Cookie cookie[]=request.getCookies();
if(cookie!=null)
{
for(int i=0;i<cookie.length;i++)
{
Cookie c=cookie[i];
if(c.getName().equals("chonguserid"))
{
UseridFinal=c.getValue().toString(); //获取已存cookie的值
flag=true;
break;
}
}
}
if(!flag)
{
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="admin";
//密码
String userPasswd="admin";
//数据库名
String dbName="chong";
//表名
String tableName="userid";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData rmeta = rs.getMetaData();
int numColumns=rmeta.getColumnCount();
int NewUserid=0;
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date currentTime = new java.util.Date();
String str_date1 = formatter.format(currentTime);
rs.last();
if(rs.isLast())
{
NewUserid=rs.getInt(1)+1;
name=NewUserid+"";
} rs.close();
UseridFinal=UseridTemp.replace(10-name.length(),10,name).toString();
Statement stmt = connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
//建立新增数据至数据库的SQL语句
String strSQL = "INSERT INTO userid(userid, count, lasttime, batch, verifycode,installtime,city) Values ('" + NewUserid + "'," +
"1, ' " + str_date1 + " ',20100101,5,' " + str_date1 + " ','')";
stmt.executeUpdate(strSQL); //利用SQL语句将数据新增至数据库
stmt.close();
statement.close();
connection.close();
Cookie cname=new Cookie("chonguserid",name);//
cname.setMaxAge(time); //设置cookie生存时间;
System.out.print("In cookie.jsp,time为:" + time ); response.addCookie(cname);//添加cookie
session.setAttribute("Userid",UseridFinal);
System.out.print("In cookie.jsp,即将传送的Userid为:" + UseridFinal );
}
%> </body>
</html>
结果:web网页可以正常生成、检测cookie和userid,但是wap不能,请问wap网页的cookie功能怎么添加?
我在wap和web网页的首页页首部分添加了一个动态加载cookie.jsp页面(用来检测cookie、获取userid或新分配userid和发送cookie),以下是cookie.jsp相关代码:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="UTF-8"%>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>
<head> </head>
<body>
<%
boolean flag=false; //设置cookie检测标示
int time=60*60*24*365*3;
String name="";
String UseridFinal="";
StringBuffer UseridTemp = new StringBuffer("0000000000");//设置userid格式
Cookie cookie[]=request.getCookies();
if(cookie!=null)
{
for(int i=0;i<cookie.length;i++)
{
Cookie c=cookie[i];
if(c.getName().equals("chonguserid"))
{
UseridFinal=c.getValue().toString(); //获取已存cookie的值
flag=true;
break;
}
}
}
if(!flag)
{
String driverName="com.mysql.jdbc.Driver";
//数据库用户名
String userName="admin";
//密码
String userPasswd="admin";
//数据库名
String dbName="chong";
//表名
String tableName="userid";
//联结字符串
String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM "+tableName;
ResultSet rs = statement.executeQuery(sql);
ResultSetMetaData rmeta = rs.getMetaData();
int numColumns=rmeta.getColumnCount();
int NewUserid=0;
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date currentTime = new java.util.Date();
String str_date1 = formatter.format(currentTime);
rs.last();
if(rs.isLast())
{
NewUserid=rs.getInt(1)+1;
name=NewUserid+"";
} rs.close();
UseridFinal=UseridTemp.replace(10-name.length(),10,name).toString();
Statement stmt = connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
//建立新增数据至数据库的SQL语句
String strSQL = "INSERT INTO userid(userid, count, lasttime, batch, verifycode,installtime,city) Values ('" + NewUserid + "'," +
"1, ' " + str_date1 + " ',20100101,5,' " + str_date1 + " ','')";
stmt.executeUpdate(strSQL); //利用SQL语句将数据新增至数据库
stmt.close();
statement.close();
connection.close();
Cookie cname=new Cookie("chonguserid",name);//
cname.setMaxAge(time); //设置cookie生存时间;
System.out.print("In cookie.jsp,time为:" + time ); response.addCookie(cname);//添加cookie
session.setAttribute("Userid",UseridFinal);
System.out.print("In cookie.jsp,即将传送的Userid为:" + UseridFinal );
}
%> </body>
</html>
结果:web网页可以正常生成、检测cookie和userid,但是wap不能,请问wap网页的cookie功能怎么添加?
另外可能是老手机不支持cookie。
csdn上面如云的高手们,现身片刻,以解我忧啊!感激~~~
<%
Cookie cookie = new Cookie("newtest", URLEncoder.encode("1111111","utf-8"));
cookie.setMaxAge(60 * 60 * 24 * 30 * 2);
cookie.setDomain(request.getServerName());//加个这就可以了。
response.addCookie(cookie);
Cookie[] cookies = request.getCookies();
if(cookies != null){
for(int i = 0; i < cookies.length; i++){
if(cookies[i].getName().equals("newtest")){
out.println(cookies[i].getName()+"::"+URLDecoder.decode(cookies[i].getValue(), "utf-8")+" "+cookies[i].getDomain()+"你好<br/>");
}
}
}
%>