在HTML文件中使用Java变量

在HTML文件中使用Java变量,java,html,servlets,server,request,Java,Html,Servlets,Server,Request,我用Java制作了一个LoginServlet,它从数据库中获取用户名和密码。现在我想在登录后在我的网站上显示用户名 Servlet代码: 公共类LoginServlet扩展了HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.ge

我用Java制作了一个LoginServlet,它从数据库中获取用户名和密码。现在我想在登录后在我的网站上显示用户名

Servlet代码: 公共类LoginServlet扩展了HttpServlet{

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {

   String username = req.getParameter("username");
   String password = req.getParameter("password");

    Sql2o sql2o = DatabaseConnetcionProvider.getSql2oConnection();

    User user = UserDAO.findBenutzerByUsername(username, sql2o);


    if(user != null && user.getPassword().equals(password)){

        UserListe.getInstance().add(user);
        HttpSession session = req.getSession();
        session.setAttribute("user", user);
        resp.sendRedirect("/public/Home.html");
    } else {
        resp.sendRedirect("/public/Error.html");
    }

}
}

现在我想在我的网站上显示用户名


我希望您能帮助我:

对于JSP,您可以使用会话隐式对象

<%= ((User) session.getAttribute("user")).getUsername %>

您可以在Home.html中检索值,如下所示

<script type="text/javascript">
    $(document).ready(function() {
          userName = "{{user}}";
          $("#yourFieldName").val(userName);            
    });
</script>
如果页面是静态html页面,则静态页面无法处理servlet页面范围数据,使用jsp或其他动态页面来处理它,freemarker、velocity是合适的。 在jsp中,可以使用EL Express显示数据。格式为${sessionScope.user}。 您应该回顾pageScope、requestScope、sessionScope和applicationScope的概念。 sendRedirect方法可能导致pageScope中的数据丢失,您应该选择正确的作用域和redirect或forward方法,请进行测试。 如果页面是静态页面,请使用AJAX发送请求并处理数据,jQuery库是经典的。