javascript 操作 session 的问题

fatmind 2008-12-13 01:27:22

(index.jsp 页面,展现主题帖)
//从数据库获取主题帖,展现
List<Post> posts = PostManager.getInstance().getPosts();

..........然后

for循环{
<script type="text/javascript">
function session(p){
<%session.setAttribute("post",p); %>
}
</script>
<A id=jive-thread-22 href="postdetail.jsp" onclick="session()"><%=p.getTitle() %></A>
}

我想要的是,当点击这个主题帖的链接的时候,这个主题帖对象p被保存到session,这样在postdetail.jsp就不用再查询了!

同一个用户,保存的同名session会覆盖!

结果:保存只是一个,不管你点击那个之后,跳转到postdetail.jsp页面之后,从session拿出来的,始终是最后的那个 p !

不知道大家有没有什么好的解决办法?谢谢
...全文
1352 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
passhk 2008-12-18
  • 打赏
  • 举报
回复
up
yunyouyou 2008-12-17
  • 打赏
  • 举报
回复
楼上说得很对,,尖括号的内容在生成JSP页面的时候已经执行了,,在页面上不能执行。。
zidane1983 2008-12-17
  • 打赏
  • 举报
回复
JS操作session,看标题我就知道实现不了。
pailman 2008-12-17
  • 打赏
  • 举报
回复
不知道楼主这样做有何意义,完全可以先把值传到后台,后台在用SESSION包装啊
li_xiangyi 2008-12-17
  • 打赏
  • 举报
回复
up
suwanjun881011 2008-12-17
  • 打赏
  • 举报
回复
新手,学习中!
binghaizjw 2008-12-17
  • 打赏
  • 举报
回复
<% %> 之间的代码是在服务端执行的,而 JavaScript 是在客户端执行的。
也就是说

function session(p){
<%session.setAttribute("post",p); %>
}

在到达客户端之前 <% %> 已经执行了!

另外,JavaScript 根本不可能去操作 Session 的


可以使用ajax,提交回服务器去处理。。。。。
添加事件:onclick="add(把主键放到这里)";
<script type="text/javascript">
function add( id)
{
var ajax=null;
if(window.XMLHttpRequest)
ajax=new XMLHttpRequest();
else if(window.ActiveXObject)
ajax=new ActiveXObject("Microsoft.XMLHTTP");
}
if(ajax==null)return false;
var url=aaa/b.do;
url+="pid="id;
ajax.open("get","url",false);
ajax.send(null);//然后在aaa/b.do的servlet里写上查询,从数据库里取值,并保存到session中。。。当然有可能执行失败
</script>
liang__ 2008-12-17
  • 打赏
  • 举报
回复
看看
jinhuiyu 2008-12-17
  • 打赏
  • 举报
回复
Session要服务器段才能操作,除非用JavaScript请求服务端的某一个method去操作,否则不可能吧
搬运工865 2008-12-17
  • 打赏
  • 举报
回复
吓死我了

特意来看看
  • 打赏
  • 举报
回复
session 只有服务端才能访问的,楼主,这是概念问题啊
yinhunfeixue 2008-12-16
  • 打赏
  • 举报
回复
晕,我还以为是讲JS怎么操作SESSION的。
kingdomofhavean 2008-12-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bao110908 的回复:]
<% %> 之间的代码是在服务端执行的,而 JavaScript 是在客户端执行的。
也就是说

function session(p){
<%session.setAttribute("post",p); %>
}

在到达客户端之前 <% %> 已经执行了!

另外,JavaScript 根本不可能去操作 Session 的。
[/Quote]


学习了。
madshime 2008-12-15
  • 打赏
  • 举报
回复
UP
i2u112233 2008-12-15
  • 打赏
  • 举报
回复
你或者可以调用ajax 把session设置部分写到后台吧
  • 打赏
  • 举报
回复
首先,JAVASCRIPT在客户端运行,而SESSION在服务器端运行

比如:
<script>
var readfromsession

readfromsession = '<%=Session("string")%>'
</script>
这个操作只能是单向的
在JS中可以读取SESSION中的值

如果想更新SESSION的值,可以通过JS用URL参数传递给一个ASPX文件,由它改变SESSION值


客户端操作SESSION这个无法实现,
当然使用变通的方法是可以实现的
但麻烦而且效率低,效果死板

「已注销」 2008-12-14
  • 打赏
  • 举报
回复
jsp是在服务器上运行的,运行完将运行所生成的HTML文档发给客户端,客户端除了提交和跳转,其它操作不能影响到服务器里代码的执行
fys249931556 2008-12-13
  • 打赏
  • 举报
回复
如果需要用JS处理,都是用JSP代码来控制JS。
如1楼所说。。JSP是先编译的。
struggle1 2008-12-13
  • 打赏
  • 举报
回复
学习了 ,我也想着在js里操作session,看来的.......
很受益 一楼 的 !!
云想慕尘 2008-12-13
  • 打赏
  • 举报
回复
对呀,js不能操作的
加载更多回复(5)

81,116

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧