ajax中,成功请求后跳转页面,可以获取到session中的user的userName,刷新之后页面报错,我怀疑是不是刷新之后session失效了。有没有知道为什么和怎么办的。代码如下:
function login(){
$.ajax({
type : "POST",
url : "login.action",
data : $("#login").serialize(),
cache:false,
async:false,
success : function(msg) {
if(msg == "登陆成功")
window.location.href="studentMain.jsp"
<%String userName = ((UserInfo)request.getSession().getAttribute("user")).getName(); %>
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" ">test</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a class="navbar-brand" ">当前用户:<%=userName %></a></li>
错误信息:org.apache.jasper.JasperException: An exception occurred processing JSP page /studentMain.jsp at line 40
37: </head>
38:
39: <body>
40: <%String userName = ((UserInfo)request.getSession().getAttribute("user")).getName(); %>
41: <nav class="navbar navbar-inverse navbar-fixed-top">
42: <div class="container-fluid">
43: <div class="navbar-header">
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:574)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)
获取session中存储的对象时一定更要先判断是否为null,再调用对象的方法,否则未登陆系统或者session超时时救护报错了