解决办法:初始化界面时,用jquery延时加载一个空请求,得到session后,加载验证码。
//js代码 $(function(){ $.ajaxSetup({ async: false }); //解决weblogic下第一次验证请求是session为null的问题 //使用jquery延迟进行服务器访问请求,获取会话信息后,加载验证码存入session中 function showPic(){ $.ajax({ type: 'POST', url:"*.sesseionAction", dataType:"text", success:function(data){ if(data =='success') { }else if(data!=null&&data!=""){ } } }); var _src = "Random.jsp?"+Math.random(); $("#randImage").attr("src",_src); } var test = setTimeout(function(){ showPic() },200); }); //Servlet响应 public class SessionServlet extends LoginServlet { /** * */ private static final long serialVersionUID = -5271370581043822209L; public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException { HttpSession session = request.getSession(); String ran= (String) session.getAttribute("random"); if (ran == null) { response.setContentType("text/html; charset=utf-8"); response.getOutputStream().write("random".getBytes()); return; }else { response.setContentType("text/html; charset=utf-8"); response.getOutputStream().write("success".getBytes()); return; } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { this.doPost(request, response); } }