作者swallowcc (guest)
看板Ajax
标题[问题] 从server丢资讯给javascript
时间Mon Mar 5 22:30:39 2012
server端是使用jsp servlet,
达成条件之後把东西丢回前台,
response.sendRedirect(path+"/index.jsp?status=checked");
然後在 index.jsp 加一段javascript
function QueryString(item){
var sValue=location.search.match(new
RegExp("[\?\&]"+item+"=([^\&]*)(\&?)","i"));
return sValue?sValue[1]:sValue;
}
if(QueryString("status")=='checked'){
alert('balabala');
}
目前是可以做出我想做的事情没错,
只是在想有办法让server端丢回来的东西偷偷来,
而不是光明正大的写在网址给人看嘛...
--
其实我不太确定这个该写在这个版还是Java版(汗)
如果不属於这边麻烦告知一声,我会自己动手的(继续汗)
感谢@@>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 101.14.164.5
1F:推 LaPass:<% if(/*条件成立*/) out.print("alert('balabala')"); %> 03/05 22:56
2F:→ LaPass:server 传给 client 直接印出来就好了.... 你是不是一时忘 03/05 22:56
3F:→ LaPass:记javascript只是script而已? 囧" 03/05 22:57
4F:→ LaPass:啊对了,那段<% %> 要包在<script></script>中 03/05 22:57
啊不好意思,仔细看看我写的好像不太好^^"...
我是从servlet把东西丢过来的,不是在jsp网页上面工作。
简单叙述一下我想做的东西好了,
基本上就只是简单的email验证,user按下link之後连回server触发我的servlet,
然後servlet把传过来的资讯过滤完之後,如果成功便sendRedirect回index.jsp
顺便带上验证成功的关键字去前台触发javascript,然後出现特效。
不过网址上面带着那些字感觉不太好看(自我感觉不良好),
所以想说有没有办法把那些资讯偷偷地塞给javascript,
而不是秀在网址列上面这样。
大概是这样,感谢@@>
5F:推 LaPass:那,有两个方案。 03/05 23:17
6F:→ LaPass:1.用ifram传email去检查。 2.ajax 03/05 23:19
7F:→ LaPass:放session好像也可以....... 03/05 23:21
ajax是有想过,不过不晓得在这个架构该把程式放在哪一段好...
session感觉好像行得通,明天来试试@@> 感谢感谢..
8F:推 LaPass:用forward好像比较正规一点,不过传变数的方式有点不一样, 03/05 23:25
9F:→ LaPass:那地方我看过而已,还没实作过。 03/05 23:26
刚有试过用forward,不过我只会简单的用法XD"
不晓得您是在哪边看到其他传变数方法的文章?想去查阅参考看看~~
<(_ _)> 非常感谢!!!
刚刚试出了一个方法,所以上来让大家见笑一下^^
servlet的部份假设是这麽做的...
String theMessage = "Hello, World!";
request.setAttribute("message", theMessage);
RequestDispatcher rd =
getServletContext().getRequestDispatcher("/index.jsp");
rd.forward(request, response);
那麽触发了这只servlet之後就会dispatch hello world到前台去。
<input type="hidden" value="${message}" id="msg">
前台只要弄个隐藏的表单去接,然後把value设定成EL语法。
再配合上 $('#msg').val();
那麽就可以轻松的把关键字拿去触发jQuery的特效了 :D
※ 编辑: swallowcc 来自: 101.14.164.5 (03/06 01:25)
11F:推 amos6064:关键字dwr 03/06 08:16
12F:→ amos6064:你可以尝试用看到 03/06 08:18
13F:→ amos6064:看看 03/06 08:18