JSP页面可以记住它有的旧对象吗?

时间:2012-08-08 05:50:13

标签: java html jsp web-applications servlets

我要离开:

JSP1->JSP2-JSP3-JSP1

JSP1 - 管理员界面中,我有一个存储Administrator数据的对象:这是 adminPage.jsp

<!DOCTYPE html>
<html>
<head><title>System Administrator Page</title>
<link rel="stylesheet"
      href="./css/styles.css"
      type="text/css"/>
</head>
<body>


<h1>Hello ${name.firstName} ${name.lastName} , You've logged in successfully!</h1>
<h1>
Please choose one of the following options
</h1>

<fieldset>
  <legend>Add a new employee to the bank system</legend> 
  <form action="blablabla">     <!-- THAT ONE forwards to a servlet that's called Admin1.java -->
    <a href="adminAdds1">Press here to continue</a>  
  </form>
</fieldset>


<!-- NOTE THE FORWARDS TO THE SERVLETS -->


<fieldset>
  <legend>Add a new manager to the bank system</legend>
  <form action="blablabla">  <!-- THAT ONE forwards to a servlet that's called Admin2.java -->
    <a href="adminAdds2">Press here to continue</a>
  </form>
</fieldset>

</body></html>

照片:

enter image description here

然后我转到下一页 - JSP2 ,这是 adminAddNewEmployee.jsp

<!DOCTYPE html>
<html>
<head><title>System Administrator Page</title>
<link rel="stylesheet"
      href="./css/styles.css"
      type="text/css"/>
</head>
<body>


<h1>Registration Page for Administrator!</h1>
<h1>
Add a new employee to the bank system
</h1>

<!-- Admin adds a new employee -->

<fieldset>
  <legend>Registration</legend>
  <form action="adminOperation1"> 
    First name: <input type="text" name="firstName"><br>
    Last name : <input type="text" name="lastName"><br>
    Address   : <input type="text" name="address"><br>
    ID-number : <input type="text" name="idnumber"><br>
    User-Name : <input type="text" name="userName"><br>
    Password  : <input type="text" name="password"><br>
    Status    : <input type="text" name="status"><br>
    <input type="submit" value="Register">
  </form>
</fieldset>

</body></html>

看起来像这样:

enter image description here

我,管理员,在系统中添加一个新的管理器。

然后我到达这里 - JSP3 ,即: adminSuccess.jsp

<!DOCTYPE html>
<html>
<head><title>Database has been updated successfully!</title>
<link rel="stylesheet"
      href="./css/styles.css"
      type="text/css"/>
</head>
<body>
<h1>Congratulations , Database has been updated successfully for the following Manager!</h1>
<h2>Manager's first-Name: ${name.firstName}</h2>
<h2>Manager's last-Name: ${name.lastName}</h2>
<h2>Manager's address: ${name.address}</h2>
<h2>Manager's password: ${name.password}</h2>
<h2>Manager's user-Name: ${name.userName}</h2>
<h2>Manager's id-Number: ${name.idnumber }</h2>

<fieldset>
  <legend>Continue to Admin's transactions page</legend>
  <form action="blablabla"> 
    <a href="adminAdds3">Press here to continue</a>
  </form>
</fieldset>

</body></html>

图片:

enter image description here

现在,我想回到母基,例如 JSP1 ,这是 adminPage.jsp ,所以我添加了一个servlet:

/**
 * Servlet implementation class Admin3
 */
@WebServlet("/adminAdds3")
public class Admin3 extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    {
        request.getRequestDispatcher("/WEB-INF/results/adminPage.jsp").forward(request, response);
    }


}

为了回到 JSP1 ,但我得到了这个:

enter image description here

所以,而不是我的原始管理员,杰克Reacher,我得到David Bowie ......

旧的管理员未存储。

我该如何解决这个问题?

此致

1 个答案:

答案 0 :(得分:1)

您需要在登录帐户时设置会话变量(已登入的用户的名称和ID),当您需要此ID和用户名时,您可以通过访问会话变量来获取它。 这将彻底解决您的问题

尝试在jsp2

上将文本框的名称从firstname更改为first_name