上一篇写到将http请求的head解析出来,本篇将对我写的具体的业务记录,供参考。
//如果有测试环境,例如上篇讲到的DHC
request.getSession().setAttribute("eccp_uid", request.getHeader("eccp_uid"));
request.getSession().setAttribute("eccp_prov", request.getHeader("eccp_prov"));
request.getSession().setAttribute("eccp_chn", request.getHeader("eccp_chn"));
//测试,直接将参数值存储在session中
request.getSession().setAttribute("eccp_uid", "linying");
request.getSession().setAttribute("eccp_prov", "100");
request.getSession().setAttribute("eccp_chn", "app");
ok,session中已经有了我存储的信息,那么在页面中如何使用的,我是在后端写了一个.do的请求,其实在jsp中直接可以使用“request.getSession().getAttribute(“参数名称”)”直接获取,我写在后端的原因是为了其他地方方便调用,上代码:
/****
* seesion中获取相关信息再返回
* @param request
* @param response
* @return
* @throws ServletException
* @throws IOException
*/
@RequestMapping(value = "/getSessionInfos.do", method = RequestMethod.GET)
public @ResponseBody String getSessionInfos(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String str_session = null;
String eccp_uid = null;
String eccp_prov = null;
String eccp_chn = null;
//判断是否从session中获取到值, ***表示为全部,即“没有”
if (request.getSession().getAttribute("eccp_uid") == null) {
eccp_uid = "***";
} else {
eccp_uid = (String) request.getSession().getAttribute("eccp_uid");
}
if (request.getSession().getAttribute("eccp_prov") == null) {
eccp_prov = "***";
} else {
eccp_prov=(String) request.getSession().getAttribute("eccp_prov");
}
if (request.getSession().getAttribute("eccp_chn") == null) {
eccp_chn = "***";
} else {
eccp_chn=(String) request.getSession().getAttribute("eccp_chn");
}
str_session = "{eccp_uid:'" + eccp_uid + "',eccp_prov:'" + eccp_prov
+ "',eccp_chn:'" + eccp_chn + "'}";
return str_session;
ok ,上述代码已经可以将session中信息返回给调用者,那前端如何接收和请求的呢,上代码:
//具体的业务代码,调用getSessionInfos获取返回值
function getSession(){
var js_obj=getSessionInfos("../../../");
var js_pro;
if(js_obj!=null){
if(js_obj.eccp_prov=="***"){
//document.getElementById('user_id').innerHTML ="未登录"
$("#province_id").val("全部");
js_pro="全部"
}else{
js_pro=js_obj.eccp_prov
$("#province_id").attr("disabled","disabled");
//$("#province_id").val(js_obj.eccp_prov);
//document.getElementById('user_id').innerHTML =js_obj.eccp_uid;
}
}else{
js_pro="全部"
}
return js_pro;
};
//定义变量
var resultJson;
var eccp_uid = '';//用户id
var eccp_prov = '';//省份
var eccp_chn = '';//渠道
// 获取session中的用户信息 ,公共方法
function getSessionInfos(url) {
$.ajax({
type : "GET",
url : url + "http_request/getSessionInfos.do",
cache : false,
async : false,
// dataType: ,
success : function(xmlobj) {
var obj = eval("(" + xmlobj + ")");
resultJson = eval("(" + obj + ")");
eccp_uid = resultJson.eccp_uid;
eccp_prov = resultJson.eccp_prov;
eccp_chn = resultJson.eccp_chn;
// alert(resultJson.eccp_prov);
console.log("用户id:" + eccp_uid + "省份:" + eccp_prov + "渠道:"
+ eccp_chn);
}
});
return resultJson;
}
getSessionInfos方法我是放在公共文件里面了,在任何地方调用都可以直接返回,比如,a.html, b.html, c.html 只要传入不同的路径即可。
ok,我具体的业务就是这些,毕竟代码仅供参考,不同业务会特立而行,如果有问题及时私信我,有问题也请及时指出,谢谢!