高分急救:关于COOKIE删除,搞了一个多星期了, 那不是cookies的问题 是程序有问题啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是不是设定到application里面去啦?大家都是一样的?呵呵 检测过了,,程序是没问题的,,,我这边的域名是通过apache反向代理的,,中间件是websphere 既然是不同机器登陆 那怎么可能是客户端的问题呢 一定是登陆代码有问题 比如xblue3所说的是不是有个全家变量在application里面,只要有人登陆后,这个变量就置true了,后面的人访问前都先判断了整个标志 明显是你的code有问题嘛,cookie只会影响一台机器,别人的机器怎么会受到影响呢? 不是cookie问题,cookie只存在本地机中,不可能到别人的机器上吧查下程序判断是否登录那部分 这个是JAVA里面的方法public void setCookie(String cUserID, String cuserLogin, String cUserPass, String cUserFName, String cUserDept, HttpServletResponse resp) { try { String cPath = "/module/leadermail"; //20080728修改 int cMaxAge = -1;//20080728修改 Cookie c = new Cookie("UserID", cUserID); Cookie d = new Cookie("UserName", URLEncoder.encode(cuserLogin, "GBK")); Cookie e = new Cookie("UserPass", URLEncoder.encode(cUserPass, "GBK")); Cookie f = new Cookie("UserFName", URLEncoder.encode(cUserFName, "GBK")); Cookie g = new Cookie("UserDept", cUserDept); c.setPath(cPath); d.setPath(cPath); e.setPath(cPath); f.setPath(cPath); g.setPath(cPath); c.setMaxAge(cMaxAge); d.setMaxAge(cMaxAge); e.setMaxAge(cMaxAge); f.setMaxAge(cMaxAge); g.setMaxAge(cMaxAge); resp.addCookie(c); resp.addCookie(d); resp.addCookie(e); resp.addCookie(f); resp.addCookie(g); } catch(Exception e) { System.out.println("[SYS] Cookie.encode Exception:" + e.toString()); } } 这个是JSP文件<%@ page contentType="text/html;charset=GBK"%><%@ page import="merp.sc.server.impl.servlet.*"%><%@ page import="merp.common.util.*"%><%@ page import="java.sql.*"%><%@ page import="java.io.*"%><%@ page import="com.hanweb.longware.*"%><%@ page import="javax.servlet.jsp.*"%><%@ page import="OaBasicClass.Clove.HtmlPageClass"%><%!private merp.sc.server.dba.common.DBA_Common dba_Common = null;private CommonServlet_oa commonServlet = null;private Connection conn = null;private myUtil longware = null;private LeaderMailLog log = null;private String i_webId = "0";//网站IDprivate String i_appId = "0";//网站群IDprivate String i_deptId = "0";//部门IDprivate String sitePath = null;//cookie varsprivate String cUserID = "0";private String cuserLogin = "0";private String cUserPass = "0";private String cUserFName = "0";private String cUserDept = "0";//显示private void showList(HttpServletRequest req,JspWriter o){ // 打开模板文件 String tplFile = sitePath + "/module/leadermail/admin/tpl/admin.html";//真正的路径 HtmlPageClass tpl = new HtmlPageClass(); String strTpl = tpl.ConvertHtmlFileToString( tplFile ); tpl = null; longware.echo(strTpl,o);}//释放资源private void free(){ try { if(conn != null) { dba_Common.closeDBA(conn); commonServlet.release(); } } catch(Exception e) { System.out.println( "[SYS] free():" + e.toString() ); }}//流程控制private void flowControl(HttpServletRequest req,JspWriter o){ try { showList(req,o); } catch(Exception e) { System.out.println( "[SYS] flowControl():" + e.toString() ); }}//主程序入口public void process(HttpServletRequest req,JspWriter o,HttpServletResponse resp){ try { dba_Common = new merp.sc.server.dba.common.DBA_Common(); commonServlet = new merp.sc.server.impl.servlet.CommonServlet_oa(); longware = new myUtil(); log = new LeaderMailLog(); sitePath = req.getRealPath("") + "/jcms_files/jcms" + i_appId + "/web" + i_webId + "/site"; conn = dba_Common.initDBA(null,i_appId); commonServlet.setConnection(conn); Cookie[] cookies = req.getCookies(); if( cookies != null ) { int cLen = cookies.length; for( int i=0 ; i<cLen ; i++ ) { if( cookies[i].getName().equals("UserID") ) cUserID = cookies[i].getValue(); else if( cookies[i].getName().equals("UserName") ) cuserLogin = java.net.URLDecoder.decode(cookies[i].getValue(),"GBK"); else if( cookies[i].getName().equals("UserPass") ) cUserPass = java.net.URLDecoder.decode(cookies[i].getValue(),"GBK"); else if( cookies[i].getName().equals("UserFName") ) cUserFName = java.net.URLDecoder.decode(cookies[i].getValue(),"GBK"); else if( cookies[i].getName().equals("UserDept") ) cUserDept = cookies[i].getValue(); System.out.println("getName======="+cookies[i].getName()); System.out.println("getValue======="+cookies[i].getValue()); System.out.println("getPath======="+cookies[i].getPath()); } } System.out.println("cUserID======="+cUserID); System.out.println("cuserLogin======="+cuserLogin); System.out.println("cUserPass======="+cUserPass); System.out.println("cUserFName======="+cUserFName); System.out.println("cUserDept======="+cUserDept); if(log.isValidUser(dba_Common,cUserID,cuserLogin,cUserPass,false)) { log.setCookie(cUserID,cuserLogin,cUserPass,cUserFName,cUserDept,resp); flowControl(req,o); } else{ longware.echo("<center><font color=\"#FF0000\">对不起,您没有访问权限或登录超时。</font></center>",o); } } catch(Exception e) { System.out.println( "[SYS] process():" + e.toString() ); } finally { free(); }}%><%@ include file="../config.jsp"%><%this.i_webId = strWebID;this.i_appId = strAppID;process(request,out,response);%> 把用户信息放到 cookie 中,而登陆信息放到 session 中 yxxcrtd你能不能所的详细点,,不是很明白 我这边用户的帐号跟密码是存放的cookie里面的,,,,,登录的时候就是存在COOKIE里面的,,没有存放到session 里面 这个是"log.isValidUser"的代码 public boolean isValidUser(DBA_Common dba_Common, String UserID, String UserName, String UserPass, boolean isDebug) { boolean returnFlag = false; String strSql = "SELECT COUNT(i_ID) AS isExists FROM JCMS_LeaderMail_Users WHERE vc_UserName='" + UserName.trim() + "' AND vc_UserPass='" + UserPass.trim() + "' AND i_ID=" + UserID.trim(); String strData[][] = dba_Common.loadDataFromDB(null, strSql, false); if(strData != null && strData.length > 0) returnFlag = Integer.parseInt(strData[0][0].trim()) > 0; else returnFlag = false; if(isDebug) { System.out.println("[SYS] strData.length=" + strData.length); System.out.println("[SYS] strSql=" + strSql + "\n"); } strData = (String[][])null; return returnFlag; } 关于JDBC的错误。。急,急,求好心人帮忙解决 关于JSP第一次运行速度慢的问题 new Integer()的问题,请大侠指点 请问有关jsp页面乱码的处理 jfreechart 甘特图对比问题 css 请教使用Applet来实现类似Windows资源管理器的目录树的实现方法! 发布N- N- N清爽的论坛>kingmim>>kingmim>>JSPBBS,与新手分享,请高手指点!!! 请问info是什么意思?说详细点100分 JAVA上传错误 struts nested标签的格式转化问题 spring 配置式事务
大家都是一样的?呵呵
一定是登陆代码有问题 比如xblue3所说的是不是有个全家变量在application里面,只要有人登陆后,这个变量就置true了,
后面的人访问前都先判断了整个标志
public void setCookie(String cUserID, String cuserLogin, String cUserPass, String cUserFName, String cUserDept, HttpServletResponse resp)
{
try
{
String cPath = "/module/leadermail"; //20080728修改
int cMaxAge = -1;//20080728修改
Cookie c = new Cookie("UserID", cUserID);
Cookie d = new Cookie("UserName", URLEncoder.encode(cuserLogin, "GBK"));
Cookie e = new Cookie("UserPass", URLEncoder.encode(cUserPass, "GBK"));
Cookie f = new Cookie("UserFName", URLEncoder.encode(cUserFName, "GBK"));
Cookie g = new Cookie("UserDept", cUserDept); c.setPath(cPath);
d.setPath(cPath);
e.setPath(cPath);
f.setPath(cPath);
g.setPath(cPath);
c.setMaxAge(cMaxAge);
d.setMaxAge(cMaxAge);
e.setMaxAge(cMaxAge);
f.setMaxAge(cMaxAge);
g.setMaxAge(cMaxAge);
resp.addCookie(c);
resp.addCookie(d);
resp.addCookie(e);
resp.addCookie(f);
resp.addCookie(g);
}
catch(Exception e)
{
System.out.println("[SYS] Cookie.encode Exception:" + e.toString());
}
}
<%@ page import="merp.sc.server.impl.servlet.*"%>
<%@ page import="merp.common.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="com.hanweb.longware.*"%>
<%@ page import="javax.servlet.jsp.*"%>
<%@ page import="OaBasicClass.Clove.HtmlPageClass"%>
<%!
private merp.sc.server.dba.common.DBA_Common dba_Common = null;
private CommonServlet_oa commonServlet = null;
private Connection conn = null;
private myUtil longware = null;
private LeaderMailLog log = null;
private String i_webId = "0";//网站ID
private String i_appId = "0";//网站群ID
private String i_deptId = "0";//部门ID
private String sitePath = null;//cookie vars
private String cUserID = "0";
private String cuserLogin = "0";
private String cUserPass = "0";
private String cUserFName = "0";
private String cUserDept = "0";
//显示
private void showList(HttpServletRequest req,JspWriter o)
{
// 打开模板文件
String tplFile = sitePath + "/module/leadermail/admin/tpl/admin.html";//真正的路径 HtmlPageClass tpl = new HtmlPageClass();
String strTpl = tpl.ConvertHtmlFileToString( tplFile );
tpl = null;
longware.echo(strTpl,o);
}//释放资源
private void free(){
try
{
if(conn != null)
{
dba_Common.closeDBA(conn);
commonServlet.release();
}
}
catch(Exception e)
{
System.out.println( "[SYS] free():" + e.toString() );
}
}//流程控制
private void flowControl(HttpServletRequest req,JspWriter o){
try
{
showList(req,o);
}
catch(Exception e)
{
System.out.println( "[SYS] flowControl():" + e.toString() );
}
}//主程序入口
public void process(HttpServletRequest req,JspWriter o,HttpServletResponse resp){
try
{
dba_Common = new merp.sc.server.dba.common.DBA_Common();
commonServlet = new merp.sc.server.impl.servlet.CommonServlet_oa();
longware = new myUtil();
log = new LeaderMailLog();
sitePath = req.getRealPath("") + "/jcms_files/jcms" + i_appId + "/web" + i_webId + "/site"; conn = dba_Common.initDBA(null,i_appId);
commonServlet.setConnection(conn);
Cookie[] cookies = req.getCookies();
if( cookies != null )
{
int cLen = cookies.length;
for( int i=0 ; i<cLen ; i++ )
{
if( cookies[i].getName().equals("UserID") )
cUserID = cookies[i].getValue();
else if( cookies[i].getName().equals("UserName") )
cuserLogin = java.net.URLDecoder.decode(cookies[i].getValue(),"GBK");
else if( cookies[i].getName().equals("UserPass") )
cUserPass = java.net.URLDecoder.decode(cookies[i].getValue(),"GBK");
else if( cookies[i].getName().equals("UserFName") )
cUserFName = java.net.URLDecoder.decode(cookies[i].getValue(),"GBK");
else if( cookies[i].getName().equals("UserDept") )
cUserDept = cookies[i].getValue(); System.out.println("getName======="+cookies[i].getName());
System.out.println("getValue======="+cookies[i].getValue());
System.out.println("getPath======="+cookies[i].getPath());
}
}
System.out.println("cUserID======="+cUserID);
System.out.println("cuserLogin======="+cuserLogin);
System.out.println("cUserPass======="+cUserPass);
System.out.println("cUserFName======="+cUserFName);
System.out.println("cUserDept======="+cUserDept);
if(log.isValidUser(dba_Common,cUserID,cuserLogin,cUserPass,false))
{
log.setCookie(cUserID,cuserLogin,cUserPass,cUserFName,cUserDept,resp);
flowControl(req,o);
}
else{
longware.echo("<center><font color=\"#FF0000\">对不起,您没有访问权限或登录超时。</font></center>",o);
}
}
catch(Exception e)
{
System.out.println( "[SYS] process():" + e.toString() );
}
finally
{
free();
}
}
%>
<%@ include file="../config.jsp"%>
<%
this.i_webId = strWebID;
this.i_appId = strAppID;
process(request,out,response);
%>
你能不能所的详细点,,不是很明白
这个是"log.isValidUser"的代码
public boolean isValidUser(DBA_Common dba_Common, String UserID, String UserName, String UserPass, boolean isDebug)
{
boolean returnFlag = false;
String strSql = "SELECT COUNT(i_ID) AS isExists FROM JCMS_LeaderMail_Users WHERE vc_UserName='" + UserName.trim() + "' AND vc_UserPass='" + UserPass.trim() + "' AND i_ID=" + UserID.trim();
String strData[][] = dba_Common.loadDataFromDB(null, strSql, false);
if(strData != null && strData.length > 0)
returnFlag = Integer.parseInt(strData[0][0].trim()) > 0;
else
returnFlag = false;
if(isDebug)
{
System.out.println("[SYS] strData.length=" + strData.length);
System.out.println("[SYS] strSql=" + strSql + "\n");
}
strData = (String[][])null;
return returnFlag;
}