ajax请求action后,数据存放在session中,jsp页面通过el获取数据,可是第一次登录总

问题描述

ssh项目中,我需要登陆某个页面(如a.jsp),通过onload来触发js函数(函数是ajax请求)请求到相应的action,处理完成后将数据存放到session对象里面,然后在a.jsp中用el表达式获取想要的数据,这是我的设计思路。可是问题来了,不知道为什么在打开浏览器第一次登录a页面时,a页面不会显示想要的数据,刷新后就有数据了,之后也正常。这是为什么了???我该如何解决这个问题了?或有什么好的办法可以实现登陆一个页面,页面上数据是从服务器端获取的,的方法吗?

解决方案

解决方案二:
因为js运行时在加载页面之后的,你onload之后虽然是取到了数据,但是没有动态的赋值给页面,当你第一次进去的时候session为空,当你第二次刷新的时候session里面有值所有之后再你session失效前都是正常的。el表达式不能完成动态赋值,如果想要效果,可以用javascript动态赋值。
解决方案三:
可以在ajax函数中设置相应的回调函数,回调函数中用js来动态设置页面中的值。
解决方案四:
我又一个笨笨的解决方法:你可以在登录jsp头部添加代码段判断你页面需要的数据是否为空如果为空就用request或者respons请求你的action中获取数据的方法然后返回到登录页面
解决方案五:
其实之前想到过一个方法,不是用ajax提交,只是用window.location.href去请求action,这样的话我可以通过el动态的获得自己想要的数据,可是这样有点不好就是,要设置一个标记,用来标记是第一次访问,不然页面会总是提交(因为也是由onload来触发)。。于是我就改用ajax来尝试了,结果就出现了上述问题,通过上面几位的意见,我尝试在回调函数中修改页面,现在却发现,回调中接收到的responseXML总是为null,调试时候明明有数据的,现在我真是迷糊了。。
解决方案六:
我用ajax提交到后台action并在action中给session重新赋值,后返回页面success,session中的值不改变,为什么?
解决方案七:
又是这个问题,因为ajax是异步请求,你异步登录的操作只是服务器端登录成功了,但是客户端还没有及时相应过来,要想获取登录session就要把获取session的操作也做成异步就好了
解决方案八:
建议ajax回调取值vars=<%=session.getAttribute("myName")%>;
解决方案九:
这种的话最好的方法是url直接访问action,此这action处理完数据后返回这个jsp。如果你不想这个改,就用ajax吧,请求的action需要返回你需要的数据。为什么a.jsp得到不你要的数据是因为代码运行的顺序为:1、a.jsp中的el表达式2、js,onload的函数3、Action第一步还没有数据就获取不到。如果用url直接访问action的方式顺序:1、action2、a.jsp中的el表达式,再返回a.jsp这样不用js请求了。

时间: 2024-10-03 04:48:50

ajax请求action后,数据存放在session中,jsp页面通过el获取数据,可是第一次登录总的相关文章

怎样将一个数据存放在list的中间位置

问题描述 怎样将一个数据存放在list的中间位置 我需要将一个数据存进list,需要放在中间,不知道list的最终长度,该怎么做 解决方案 是单向链表吗?如果是,那就定义两个指针,一个用来遍历(还用一个int length,随时记录遍历的长度),一个用来指向中间的数据.现在开始, 两个指针都指向list的头(length=0),第一个指针开始遍历(循环操作)--在循环里面,指针每后移一个,length就加1,当length%2==0时, 第二个指针就后移一个.当循环结束NULL时,第二个指针的下

ajax请求成功后的返回数据

问题描述 ajax请求成功后的返回数据 我用ajax发送请求做注册,若请求成功且注册成功,用了alert("注册成功"), 若验证码或其他问题,导致访问成功但是未注册成功,会有其他的信息弹出. 在不同情况下,其他信息都会根据各种情况正确的弹出,但是当注册成功时(查了后台数据,能够查到新注册的信息),"注册成功"字样不弹出来. 解决方案 你在success回调里面return内容无用,没有任何对象接收返回值,而且ajax是异步的,如果你userLive要返回数据,也需

Ajax请求URL后加随机数原理

原文:Ajax请求URL后加随机数原理 例如: $.ajax({             type: "GET",    url: "login.action?ran="+getRandomNum() }); 中url后面接了个随机数,是为了欺骗浏览器或代理服务器用的:某些代理服务器会无视 no-cache 之类的标识,对响应结果进行强行缓存:而当url请求不改变的时候,有时候会导致浏览器不向服务器发送请求,而直接取调用缓存中的数据.加上随机数就是欺骗浏览器url改

Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因_javascript技巧

看到别人写的JS,ajax请求地址后加随机参数,比如XXXX?t= + new Date().getTime(). 一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存. 浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存.当url请求地址不变时, 有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据. 如果数据改变了,而没加随机数,读取的数据会跟之前一样. 加上随机数,就是欺骗浏览器url改变了,会每次都向服务器发送请求而不去读缓存

$.ajax()请求Action方法

问题描述 Struts2+hibernate3.2+spring2.0:$.ajax()请求Action方法,开始一直可以请求,也能正常返回.后来在别的Action中添加一个属性,在applicationContext.xml中配置了一下,我再次请求登录的那个Action方法时,既不请求,也不返回,根本就没走进Action.以前曾遇到过一次这个问题,但是我重新建一个Action,却好了,这次又遇见了,总这样也不是个办法,哎--,郁闷好久了,一直不明什么原因,请各位多多指点. 解决方案 解决方案二

session d-安卓使用volley抓包的问题,sessionId是存放在url中的

问题描述 安卓使用volley抓包的问题,sessionId是存放在url中的 20C 想做个模拟登录学校教务处网站获取学生信息的软件,但是每次直接输入url进入登录界面,都会重定向一次,然后url中被加上了sessionId有没有办法能拦截到这个sessionId,或者获取处理后的url.这样才能正确的登录 解决方案 把学号密码发到服务器,然后在服务器端用正则表达式处理教务系统的网页不就行了吗

参数-jsp页面从服务器接收数据,并且将数据经选择后提交到服务器

问题描述 jsp页面从服务器接收数据,并且将数据经选择后提交到服务器 jsp从servlet接收了一个数组,想利用select让用户选择后将选择后的结果提交回servlet,结果在向servlet提交过程中参数一直传不过去,求大神帮忙解决一下 <! --classselect.jsp--> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

Ajax请求数据库,Struts2返回不到指定的页面

问题描述 我用Ajax请求数据库,在Struts2.xml文件中,返回的逻辑视图对应一个相应的物理视图,可是却返回不到相应的物理视图,我试了一下,不用ajax,直接请求action却可以跳转到物理视图! 解决方案 解决方案二:直接请求路径的话当然返回指定的页面,如果在一个页面中用ajax请求路径的话,它会返回结果给当前页面而不是又跑到另一个页面,为什么用ajax,ajax是异步无刷新的,比如查询结果直接就重新加载返回结果了解决方案三:你ajax里异步,返回数据在执行跳转解决方案四:引用2楼rui

jQuery通过ajax请求php遍历json数组到table中的代码(推荐)_jquery

html代码(test.html),js在html底部 具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test-jquery-ajax-list</title> </head> <body> <div class="main">