关于#html#的问题,如何解决?

img

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>首页面</title>
    <link rel="stylesheet" href="./css/welcome.css">
</head>

<body>
    <div class="box w">
        <ul class="nav">
            <li>
                <a href="javascript:void(0)" class="message">信息查询</a>
                <ul class="menu">
                    <li>成绩查询</li>
                    <li>课表查询</li>
                    <li>个人信息</li>
                </ul>
            </li>
            <li>
                <a href="javascript:void(0)">信息查询</a>
            </li>
            <li>
                <a href="javascript:void(0)">学校简介</a>
            </li>
            <li>
                <a href="javascript:void(0)">选课</a>
            </li>
            <li>
                <a href="javascript:void(0)">教学评价</a>
            </li>
            <li class="name"></li>
            <li class="exit">退出</li>
        </ul>
    </div>
</body>
<script src="./js/public.js"></script>
<script>

        var a = document.querySelector(".message");
        var menu = document.querySelector(".menu");
        a.addEventListener("mouseover", function () {
            menu.style.display = "block";
        });

        a.addEventListener("mouseout", function () {
            menu.style.display = "none";
        });
        
        window.onload = function(){
            //创建对象
            var xmr = new XMLHttpRequest();
            //调用回调函数
            xmr.onreadystatechange =function () {
                if(this.readyState == 4){
                    if(this.status == 200){
                        var name = document.querySelector(".name");
                        name.innerHTML = xml.responseText;
                    }else {
                        alert(this.status);
                    }
                }
            }
            //打开通道
            xmr.open("GET","/mystudent/wel",true);
            //发送请求
            xmr.send();
        }

</script>

</html>

package com.StudentServlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet({"/wel"})
public class WelcomServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        HttpSession session = request.getSession(false);
        String name = (String) session.getAttribute("name");
        PrintWriter out = response.getWriter();
        out.print(name);
    }
}
为啥前端页面没有接受到后端返回的name进行页面刷新

是不是h5第35行写漏了?

            <li class="name">刷新</li>

f12打开控制带,查看network,看看接口返回的数据对不对

你打印 name 看看 。获取到 没有

 let name=document.getElementsByClassName("name")[0];
    console.log(name)
     name.innerHTML="99999988"

img


是顺序问题吗?
你先给页面赋值,在与后端交互的吧?