我这里遇到个问题,就是网站用I 系统进行登录,但是同时在H1到H6上都要看到他的登录状态。
由于I系统中很多东西都不能修改,故做了个临时方案,不太注重安全性的方案:
1、在I系统的登录中增加cookie:
局部代码如下:
String username="111";
Cookie c2 = new Cookie("com.***.name",username) ;
c2.setPath("/");//这个位置最好写成对应的工程名
String userkey="222";
Cookie c1 = new Cookie("com.***.key",userkey) ;
c1.setPath("/");
response.addCookie(c1);
response.addCookie(c2);
2、在H1系统中是通过ajax 拿到上述信息:
js 代码如下:
function getUsername(){
$.ajax({
type: "GET",
url: _url,
data: '',
dataType: "script",
success: function(){
topHydl($userName);
}
});
}
对应的后台代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="javax.servlet.http.Cookie" %>
<%
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("p3p", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");
String userKey="";
String userName="";
Cookie[] cookie = request.getCookies();
if(cookie!=null){
for (int i = 0; i < cookie.length; i++) {
Cookie cook = cookie[i];
System.out.println(cook.getName());
if(cook.getName().equalsIgnoreCase("com.trs.yatai.key")){ //获取键
userKey=cook.getValue().toString();
}else if(cook.getName().equalsIgnoreCase("com.trs.yatai.name")){
userName=cook.getValue().toString();
}
}
}
%>
var $login_userKey='<%=userKey%>';
var $login_userName='<%=userName%>';