一.前后端信息传递,如用户登陆信息;放在session中,在前端使用Jsp获取后,其他页面直接include可直接使用。
1、在controller层处理:将信息放到session中
HttpSession session = request.getSession();
// 查询出登陆信息
User user = userLoginService.getUser(userId, password);
// 放在session中
session.setAttribute("user",user);
2、新建一个include文件comm.inc,用来获取session中参数。代码如下:
<%@page language="java" contentType="text/html;charset=UTF-8" pageEncoding="utf-8"%>
<%
response.setHeader("Cache-Control","no-store");
response.setHeader("Pragrma","no-cache");
response.setDateHeader("Expires",0);
%>
<title>刘姐菜篮子后台管理系统</title>
<script type="text/javascript">
var path = "<%=request.getContextPath()%>";
<%
User user_ = (User)session.getAttribute("user");
%>
var userId = "<%=user_.getUserId()%>";
var lastLoginIP = "<%=user_.getLastLoginIP()%>";
var lastLoginTime = "<%=user_.getLastLoginTime()%>";
lastLoginTime = lastLoginTime.substr(0,19);
</script>
3、在需要这些参数的页面include这个文件 ,方法:<%@ include file="comm.inc" %>。注意:我在comm.inc使用了User对象,所以在引用这个文件的地方需要增加依赖(引用User这个javaBean对象的包):<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*,com.web.domain.*"%>
4、在此页面<script>脚本中可以接使用comm.inc中变量。需要注意的是:第3步<%@ include file="comm.inc" %>只能在JSP文件使用,在前端的HTML或JS中使用不了。
二、前端页面参数传递
可以在url中增加参数,在接收页面去获取,也可以将参数放在cookie中,在页面跳转后从cookie中取,下面分别说这两种方式使用。
1、放在url中,window.location.href = "main.html" + "?userId="+ userId;
在跳转页面获取方法如下;Request["custId"]直接来获取传递参数。
//获取上一界面传值
function GetRequest() {
var url = location.search;
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i < strs.length; i ++){
theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);
}
}
return theRequest;
};
var Request = new Object();
Request = GetRequest();
2、放在cookie中
传递页面使用 document.cookie = "user" + "=" + JSON.stringify(user);将参数放在cookie中;本例中传递的是一个JSON对象
在跳转后页面根据参数键值去获取参数,var user = JSON.parse(getCookieParams("user"));
function getCookieParams(key) {
var obj = new Object();
var theCookie = "" + document.cookie;
var items = theCookie.split("&");
for (var i = 0; i < items.length; i++) {
if(items[i].indexOf(key)!=-1){
var ind = items[i].indexOf("=");
obj = items[i].substring(ind+1);
break;
}
}
return obj;
}