window.location.href()跳转后刷新页面session失效

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超时时救护报错了