比如jsp页面中(部分代码)
<head>
<script type="text/javascript">
var loginId=document.all.loginForm.loginId.value.trim();
</script>
</head>
<body>
......
<% 
String cookieName=怎样将loginId的值赋给这里??; Cookie cookie=new Cookie(cookieName, "Test_Content"); 
cookie.setMaxAge(10); 
response.addCookie(cookie); 
%>
<form id="loginForm" name="loginForm"> 
<input type="text" name="loginId" id="loginId">
..........
</form>
</body>

解决方案 »

  1.   

    表单提交的时候不就可以了吗?直接request.getParameter("loginId");
    注意,这里的loginId不是你的变量,而是要求表单里有个name值为loginId的表单元素。理论上客户端的javascript不能直接与jsp交互。
    不过你可以考虑ajax的方式,对那个我不是很熟。就不胡说了。
      

  2.   

    在ajax里可以写java类的...以前见过.
      

  3.   

    首先,脚本里面的值,要进行传递,就要有运行脚本的事件进行触发.
    看版主的代码,应该不是采用的Ajax技术,
    那么,可以通过客户端浏览器点击提交的时候,当成参数传过来就可以了.
    如果是脚本中的变量,可以用脚本在form里,添加hidden元素,提交的时候就可以得到了
      

  4.   

    众兄弟,我这是在应用的登陆页面设置cokie的,想用jsp来做,所以,一般登陆页面都有一个用户名输入框,一个密码的输入框和一个提交按钮吧,我是想当点击提交按钮的时候,把用户名输入框的输入值作为cokie的名字,我试过了,在提交按钮设置一个onclick事件,把值赋给声明的一个javascript变量,是可以的,关键是怎么样把这个值赋给java变量cookieName啊??
      

  5.   

    登陆设置cookie,一般是表单提交给处理页面时候,处理页面判断可以登陆,并加入cookie中,用request.getParameter("property")获得,也就是说,你的cookie在下一个处理页面设置
      

  6.   

    你在解决这个问题之前你必须知道jsp web开发中,你必须搞清楚一些基础的问题,B/S架构是怎么回事,什么是服务器,什么是客户端,什么是浏览器,哪些东西是在浏览器执行,哪些东西在客户段保存,哪些东西在服务器执行,哪些东西又保存在服务器,弄清楚这些以后,你那些问题就都解决啦。
    学东西还是要从基础开始的,弄清楚根本原来可执行流程才是最重要的,不要以为学编成就拿着代码死编,那是没有用的。
      

  7.   

    AJAX
      

  8.   

    AJAX
      

  9.   

    ajax没搞过可以吗?以后学学看!
      

  10.   

    ajax没有学过,不知怎么用,小晓同学,设置cookie不是在登陆页面,而是首页设置吗?
    我这个应用是登陆页面登陆成功进入首页的
      

  11.   

    我说,你们为什么就认为ajax能够解决这个问题呢,ajax原理和普通提交原理是一样的,同样是提交响应的方式,只不过普通提交是同步的整个页面的更新,ajax只是把这个过程变成异步的局部的页面更新,但是原理还是http协议,还是服务器和浏览器,从本质上来说还是一样的。
    似乎你们把ajax这个东西看得很神奇,好高深,很强大。其实不是那样的,它就是一根很简单的东西哦。我觉得ajax到了你们口中似乎已经是一种奇迹般的飞跃了,他不属于http了超越了web的划时代的进步了。我感觉纳闷
      

  12.   

    严格来说,不能将js值赋给java,要赋值给java必须将值提交给一个jsp或servlet,可通过get或post提交,也可ajax提交
    同一个jsp里是不赋值的,jsp在服务器上运行,js在浏览器里运行,运行环境不一样,怎么赋值呢?一定要提交!!!
    java资料太多?在网页中选中想收藏的文字(图片),右键选“收录到易载”,搞定!
      

  13.   

    1.设置一个hidden
    <input type="hidden" id="hid" >
    2.然后在js里把loginId传给hid
    3.然后用request.getParameter("hid")传给你的cookieName;改过了,看看行不行<head>
    <script type="text/javascript">
    var loginId=document.all.loginForm.loginId.value.trim();
     document.loginForm.hid.value =loginId; 
    </script>
    </head>
    <body>
    ......
    <% 
    String cookieName=request.getParameter("hid");//怎样将loginId的值赋给这里??
     Cookie cookie=new Cookie(cookieName, "Test_Content"); 
    cookie.setMaxAge(10); 
    response.addCookie(cookie); 
    %>
    <form id="loginForm" name="loginForm"> 
    <input type="text" name="loginId" id="loginId">
    <input type="hidden" id="hid" >
    ..........
    </form>
    </body>
      

  14.   

    楼上的几位同学,其实我的需求是这样的,之前用session保存用户的登录信息,但是由于偶然有出现一登录就提示会话消失,无论点击哪个模块都出现这种情况,web.xml配置的session时间是360000,只是偶然才出现这种情况,可能五百次登陆会出现一两次这样的情况,客户对此不满意,所以,想改用cookie记录会话,不知cookie的设置时候和sesion差不多?原来用session的时候,是判断用户登陆成功才写进session,如if(success)session.setAttribute("UserBean",UserBean),然后再写一个专门验证session是否过期的jsp页面,然后,被include进很多页面,内容就是判断session是否为空,如果不为空,就从session里面取出用户信息,
    现在改用cookie来设置,怎么实现?话题转移了,我另开新帖讨论这个问题吧http://topic.csdn.net/u/20080619/09/c19374dd-ff5a-4fe2-aad6-c52a27559ff3.html
      

  15.   

    众兄弟,我这是在应用的登陆页面设置cokie的,想用jsp来做,所以,一般登陆页面都有一个用户名输入框,一个密码的输入框和一个提交按钮吧,我是想当点击提交按钮的时候,把用户名输入框的输入值作为cokie的名字,我试过了,在提交按钮设置一个onclick事件,把值赋给声明的一个javascript变量,是可以的,关键是怎么样把这个值赋给java变量cookieName啊?? 首先你这种想法就是不对的,做了不必要的工作,干什么非要把javascript 的值传递给JAVA(万不得一的时候可以用AJAX xmlhttprequest)
    你可以把当前的页面的值提交到下一个页面的时候设置Cookie(不过这样做违背了MVC的开发模式,最好是不要在jsp中写代码,全部都用标签)
    写程序要懂得变通,开发时要节省时间
      

  16.   

    Request对象啊。更多的内容可以用JSON格式。
      

  17.   

    <% 
    String cookieName=怎样将loginId的值赋给这里??; Cookie cookie=new Cookie(cookieName, "Test_Content"); 
    cookie.setMaxAge(10); 
    response.addCookie(cookie); 
    %>看了<% %> 这对符号  还能说是javascript 吗?
      

  18.   

    呵呵,看来,实现起来难啊,谢谢各位同学了,java的值赋给javascript容易,反过来,难了
      

  19.   

    应该是你设计的某个模块存在问题,把session值移出掉了,也可能是使服务器问题,在某个时刻服务器自动重新部署,造成session全部丢失,也有可能是客户端问题,然而客户端操作问题情况就比较复杂了,可能是客户端完全禁用cookie,这样一来session也无法用。也有可能客户端实用浏览器的时候经常打开了一个新的会话,但是客户自己不知道,也可能是浏览器存在问题。
    对于保存到cookie也是由服务器做的,不一定能够解决问题的。
      

  20.   

    局部的页面更新?很简单的东西?你要是真正用过AJAX就不会纳闷了,简单的原理没错,复杂神奇的是应用,虽没有HTTP和WEB那样具有划时代的意义(你的意思是只有颠覆整个WEB的技术才算强大,高深外加神奇?),但确实能增进用户的使用体验(用用126邮箱),再有,AJAX可以连局部页面更新都没有的前提下与Server通讯,异步的本质是后台进行的并发HTTP请求和响应处理。
      

  21.   

    改用 cookie 解决不了根本问题,因为默认情况下浏览器就是通过 cookie 来维护登录用户的 session id 的,是不是你的哪个模块的 Bug 现在光从行为上分析不好说,你可以通过记录每次请求的请求头和响应头信息的方法来跟踪 session 失效的原因,弄清哪儿的原因再解决,否则只能越弄越糟,更改实现老问题没解决可能还会引入新的 Bug。
      

  22.   

    为什么你会认为我没有用过ajax呢,ajax出现就是为了解决在页面不刷新的条件下实现客户端与服务器数据交换的目的。如果是应用的复杂与神奇,说句实话,不运用ajax难道就不能设计出好的应用么,不可以复杂神奇么?一个东西的出现在于解决某一个问题,如果把应用设计的复杂性归加到某种技术上,我觉得这有点可笑,任何一种简单的技术都可以有一个复杂的应用,就像简单的自然数相加都没有被人们完全了解,哥德巴赫猜想不就是一个最好例子?
    只要理解原理,再复杂的应用都能解决,那只不过是一个技术累加的过程,应用=技术+需求,只要你掌握好两者,什么都很容易解决的。
      

  23.   

    ajax没有用过,所以,不好说,看到大家进行的探讨,感觉还要学的东西很多,我已经新开帖了,把这帖结了吧
      

  24.   

    其它认同,这句“一个东西的出现在于解决某一个问题,如果把应用设计的复杂性归加到某种技术上,我觉得这有点可笑”你误解我了,我可没这意思,新技术的出现往往是为了简化应用设计上的复杂,AJAX 就是如此,XMLHttpRequest 的出现一方面简化和替代了 iframe 方式的使用(虽然诸如浏览器历史没处理好),另一方面也引入和增强了 XML 数据交换形式,简化的是设计,复杂了的是应用领域,或者说扩展了应用领域,比如 Google Map。还有,多给新手点鼓励和学习 AJAX 的动力,干这行的最大的学习动力来自于求知欲和实践。
      

  25.   

    弄个表单,建一个hidden的值,一提交不就行嘛。
    其实说到根上,AJAX也是提交了,形式不同罢了
      

  26.   

    sagezk 和 spiniper 两位大哥不用再争论了.其实谁都没有理解错.
    我认为,lz的问题仅仅是想把javascript的值传给jsp,而lz本人是希望能够直接交互,但是这显然不可能,所以我提出ajax,因为它是最接近的方式.
    我想其他兄弟在提ajax的时候并没有可多的考虑lz的逻辑需求,而只是想得到基本的传值方法而已,所以没必要非得争出个ajax能不能解决这个问题的答案.