在HTML文件中使用Java变量
我用Java制作了一个LoginServlet,它从数据库中获取用户名和密码。现在我想在登录后在我的网站上显示用户名 Servlet代码: 公共类LoginServlet扩展了HttpServlet{在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
@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库是经典的。