不要使用servlet进行.jsp连接.
我有doPostservlet:
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF8");
getUser(req, resp);
}
private void getUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getParameter("id");
//In future implements database worker this for check
User user = new User(1, "test", "test", "test", new Timestamp(System.currentTimeMillis()));
req.setAttribute("user", user);
req.getRequestDispatcher("user.jsp").forward(req, resp);
}
Run Code Online (Sandbox Code Playgroud)
以及在网页上user.jsp使用User对象进行查看的文件:
<h1>User view</h1><br />
<ul>
<% User user = (User) request.getSession().getAttribute("user"); %>
<li>Id: <% user.getId(); %></li>
<li>Name: <% user.getName(); %></li>
<li>Login: <% user.getLogin(); %></li>
<li>Email: <% user.getEmail(); %></li>
<li>Create date: <% user.getCreateAccount(); %></li>
</ul><br />
<a href="index.jsp">menu</a>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.在用户的网页上,所有信息都是空的.所有块<ul>都不会查看.我只看href菜单.我不明白为什么.请告诉我有什么不对?为什么?多么正确呢?谢谢!
在Servlet中,您将User对象置于请求中,但在Jsp中,您正在从会话中查找它.
在JSP中尝试这个:
用户user =(User)request.getAttribute("user");