当前位置: 代码迷 >> Java Web开发 >> <%session.setAttribute("UN"username)%>//小弟我这样写报错,请教怎么给Session UN赋值为js中的变量username
  详细解决方案

<%session.setAttribute("UN"username)%>//小弟我这样写报错,请教怎么给Session UN赋值为js中的变量username

热度:833   发布时间:2016-04-16 22:23:33.0
<%session.setAttribute("UN",username)%>//我这样写报错,请问如何给Session UN赋值为js中的变量username
本帖最后由 chinaflyant 于 2014-05-21 13:37:33 编辑
<script language="javascript">
var username="guest";
      <%session.setAttribute("UN",username)%>;
//我这样写报错,请问如何给Session UN赋值为js中的变量username,谢谢。
}
</script>

------解决方案--------------------
 页面上面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.getSession().setAttribute("UN","username");
%>
------解决方案--------------------
臣妾实在做不到。。。

生命周期完全不同。<% session.setAttribute(....); // 这里还漏了个分号 %> 运行在服务器端。整个服务器端的JSP代码执行完了,才轮到客户端的浏览器,读取并执行JS代码,你说,同一个JSP里面早运行的服务器代码,能读到后运行的客户端变量值吗。
------解决方案--------------------
一楼正解,二楼连错误都找出来了
------解决方案--------------------
引用:
 页面上面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.getSession().setAttribute("UN","username");
%>


js这样写:
<script>
var tmp="${UN}";
</script>
------解决方案--------------------
js通过ajax或者提交隐藏表单,把js变量值作为参数值传给后台的程序,程序里面session.set("un", userNameFromRequestParameter)
不过,就你这个username这个例子而言,你好像搞犯了吧。应该是前台(JS)变量值,是从服务器端(session/db)读取出来,用来显示当前用户名,而不是,前台随便告诉后台,老子叫“管理员”,他就是管理员的
------解决方案--------------------
如楼上所说,把这个值用ajax传递到后台,然后后台把这个值:request.getSession().setAttribute("UN","username");
  相关解决方案