我正在用JSP创建一个工具。我有多个接受用户输入的JSP页面。现在,我想在许多其他jsp页面上使用这些输入。
假设我有登录页面作为我的第一个页面,当用户输入用户名时,我可以在我的下一个jsp页面上获得它,我在Form方法中使用它作为post操作。但我无法在其他Jsp页面上显示相同的用户名。
我使用jsp:getProperty获取值:
<jsp:getProperty property="username" name="user2"/><br>
<jsp:getProperty property="password" name="user2"/><br>
请建议是否有任何方法可以使用jsp:useBean 在多个页面上获取值
<% HttpSession httpSession = request.getSession();
httpSession.setAttribute("user2", user2);
%>
then from any jsp page u can access that attribute for same session like this
<%HttpSession httpSession=request.getSession();
httpSession.getAttribute("user2");
%>
是的,我们可以通过会话传递值来实现。如下面给出的request.getSession().setAttribute("key", <value>);
您可以将您的bean存储在会话中,以便从JSP直接访问它。(请参阅SO上的回答)。
您的bean声明应该类似于:
<jsp:useBean id="user2" class="mycompany.User" scope="session" />
如果您想真正持久化数据,您应该将其存储在数据库中。
请注意,您应该考虑像SpringMVC或ApacheStruts这样的MVC框架,但您必须吸收很多概念。
是的,您可以通过以下方式访问它:
login.jsp:
<form action ="process.jsp">
Username:
<input type="text" name="username">
Password:
<input type="password" name="password">
<input type="submit" value="Submit">
</form>
process.jsp:
<% String username = request.getParameter("username");
String password = request.getParameter("password");
%>