Java EE应用程序don';不要像JSP一样打印JSP文件,但要像HTML一样

Java EE应用程序don';不要像JSP一样打印JSP文件,但要像HTML一样,java,jsp,servlets,jakarta-ee,Java,Jsp,Servlets,Jakarta Ee,我有一个project maven web应用程序。我有一些带有HTML代码和JSP标记的JSP文件。我在本地数据库中有一个连接和一些servlet 问题是,当我登录到应用程序时,我想为登录的用户打印一条欢迎消息。 这是应显示欢迎信息的标签: <div class="hello-text"><h1>Hello <span>${sessionScope.user_name}</span>. This is yours stats:</h1>

我有一个project maven web应用程序。我有一些带有HTML代码和JSP标记的JSP文件。我在本地数据库中有一个连接和一些servlet

问题是,当我登录到应用程序时,我想为登录的用户打印一条欢迎消息。 这是应显示欢迎信息的标签:

<div class="hello-text"><h1>Hello <span>${sessionScope.user_name}</span>. This is yours stats:</h1></div>
}

为什么我没有消息,例如,Hello Admin。这是你的数据:?
我总是有Hello${sessionScope.user_name}。这是您的统计信息:…

sendRedirect不应与某些页面的其他输出混合使用

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

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

    if (login.isEmpty() || password.isEmpty()) {
        resp.setContentType("text/html");
        PrintWriter writer = resp.getWriter();
        writer.write("ERROR");
        return;
    }
    if (userRepository.validateUser(login, password)) {
        HttpSession session = req.getSession();
        session.setAttribute("user_name", login);
        resp.sendRedirect("profile.jsp");
    } else {
        req.setAttribute("error", "Invalid login or password. Try again.");
        req.getRequestDispatcher("login.jsp").forward(req, resp);
    }
}
第一个
if
可以通过验证来完成,因为空输入经常发生,通过一条漂亮的错误消息重新发布到保存了已完成输入的同一表单上

如果JSP以HTML的形式出现,那么请确保它具有有效的servlet映射。
另外,JSP不应该放在公共目录中,而应该放在WEB-INF/jsps/或类似目录下。

确保声明了servlet规范的正确版本,以便启用表达式语言
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

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

    if (login.isEmpty() || password.isEmpty()) {
        resp.setContentType("text/html");
        PrintWriter writer = resp.getWriter();
        writer.write("ERROR");
        return;
    }
    if (userRepository.validateUser(login, password)) {
        HttpSession session = req.getSession();
        session.setAttribute("user_name", login);
        resp.sendRedirect("profile.jsp");
    } else {
        req.setAttribute("error", "Invalid login or password. Try again.");
        req.getRequestDispatcher("login.jsp").forward(req, resp);
    }
}