【问题标题】:How to read and pass data from servlet to JSP如何从 servlet 读取数据并将其传递给 JSP
【发布时间】:2014-03-21 23:48:48
【问题描述】:

关于从servlet向JSP读取和传递数据的问题

我想创建一个 Java EE 项目。在这个项目中总共有 5 个文件。

  • JSP 文件:EmployeeInfo.jsp、EmployeeDetails.jsp
  • Servlet:EmployeeRegistrationServlet、EmployeeSearchServlet
  • 豆:员工

EmployeeInfo.jsp 文件,用于获取员工 ID 或员工信息。它有两个提交按钮。如果用户想要搜索员工,将输入一个 ID 并调用 EmployeeSearchServlet,如果用户想要添加新的员工信息,则将调用 EmployeeRegistrationServlet 并输入客户信息。代码如下:

EmployeeSearchServlet 应该使用最终用户输入的员工 ID 搜索员工。 servlet 的工作是在集合中找到特定的雇员。找到员工后,流程将转发到 EmployeeDetails.jsp。

EmployeeRegistrationServlet 应该将员工添加到将员工存储在内存中的集合中。

如果找到员工,员工的详细信息将显示在 EmployeeDetails.jsp 中。 如果添加了新员工,员工的详细信息将显示在 EmployeeDetails.jsp 中。

这是我的 EmployeeInfo.jsp

<body>
<h1 align="center">Employee Information</h1>
<!--Form of find employee by employeeID -->
<form action="EmployeeSearchServlet" method="POST">
  <fieldset>
    <legend>Find Employee</legend>
    Employee ID: <input type="text" name="findEmployeeID"><br>
    <input type="submit" name="findEmployeeSubmit" value="Find Employee">
  </fieldset>
</form>
<p></p>
<!--Form of add employee-->
<form action="EmployeeRegistrationServlet" method="POST">
  <fieldset>
    <legend>Employee Information</legend>
        <table>
            <tr>
                <td>Employee ID (key)*: </td>
                <td><input type="text" name="employeeID"></td>
            </tr>
            <tr>
                <td>First Name:* </td>
                <td><input type="text" name="firstName"></td>
            </tr>
            <tr>
                <td>Last Name:* </td>
                <td><input type="text" name="lastName"></td>
            </tr>
            <tr>
                <td>Email: </td>
                <td><input type="text" name="email"></td>
            </tr>
            <tr>
                <td>Phone: </td>
                <td><input type="text" name="phone"></td>
            </tr>
            <tr>
                <td>Hire Date: </td>
                <td><input type="text" name="hireDate"></td>
            </tr>
            <tr>
                <td>Manager ID: </td>
                <td><input type="text" name="managerID"></td>
            </tr>
            <tr>
                <td>Department ID: </td>
                <td><input type="text" name="departmentID"></td>
            </tr>
        </table>
    <input type="submit" name="addEmployeeSubmit" value="Add Employee">
  </fieldset>
</form>

</body>

这是我的 Employee bean。

public class Employee {
    private String employeeID;
    private String firstName;
    private String lastName;
    private String email;
    private String phoneNumber;
    private String hireDate;
    private String managerID;
    private String departmentID;

    public Employee(String newEmployeeID, 
            String newFirstName, 
            String newLastName, 
            String newEmail,
            String newPhoneNumber,
            String newHireDate,
            String newManagerID,
            String newDepartmentID){
        this.employeeID = newEmployeeID;
        this.firstName = newFirstName;
        this.lastName = newLastName;
        this.email = newEmail;
        this.phoneNumber = newPhoneNumber;
        this.hireDate = newHireDate;
        this.managerID = newManagerID;
        this.departmentID = newDepartmentID;
    }

    public void setEmployeeID(String newEmployeeID){
        this.employeeID = newEmployeeID;
    }

    public void setFirstName(String newFirstName){
        this.firstName = newFirstName;
    }

    public void setLastName(String newLastName){
        this.lastName = newLastName;
    }

    public void setEmail(String newEmail){
        this.email = newEmail;
    }

    public void setPhoneNumber(String newPhoneNumber){
        this.phoneNumber = newPhoneNumber;
    }

    public void setHireDate(String newHireDate){
        this.hireDate = newHireDate;
    }

    public void setManagerID(String newManagerID){
        this.managerID = newManagerID;
    }

    public void setDepartmentID(String newDepartmentID){
        this.departmentID = newDepartmentID;
    }

public String getEmployeeID() {
    return employeeID;
}

public String getFirstName() {
    return firstName;
}

public String getLastName() {
    return lastName;
}

public String getEmail() {
    return email;
}

public String getPhoneNumber() {
    return phoneNumber;
}

public String getHireDate(){
    return hireDate;
}

public String getManagerID(){
    return managerID;
}

public String getDepartmentID(){
    return departmentID;
}

}

这是我的 EmployeeRegistrationServlet

@WebServlet("/EmployeeRegistrationServlet")
public class EmployeeRegistrationServlet extends HttpServlet {
    private Map<String,Employee> employees;
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String employeeID = request.getParameter("employeeID").trim();
        String firstName = request.getParameter("firstName").trim();
        String lastName = request.getParameter("lastName").trim();
        String email = request.getParameter("email").trim();
        String phone = request.getParameter("phone").trim();
        String hireDate = request.getParameter("hireDate").trim();
        String managerID = request.getParameter("managerID").trim();
        String departmentID = request.getParameter("departmentID").trim();
        employees = new HashMap<String,Employee>();
        Employee newAdd = new Employee(employeeID, firstName, lastName, email, phone, hireDate, managerID, departmentID);

        request.getRequestDispatcher("../../../../WebContent/EmployeeDetail.jsp").forward(request,response);
    }
}

我的问题是如何使用EmployeeDetail.jsp 读取从EmployeeRegistrationServlet 传递过来的bean 对象?以及如何通过搜索员工 ID 找到员工? 请给我一些建议。非常感谢。

【问题讨论】:

    标签: java jsp servlets


    【解决方案1】:

    我的问题是如何使用EmployeeDetail.jsp 读取从EmployeeRegistrationServlet 传递过来的bean 对象?

    你需要在请求/会话属性中设置 Object 才能被转发的 jsp 使用

    如何通过员工ID查找员工?

    取决于您的数据存储,例如,如果您使用的是 mysql,则需要使用 jdbc 并查询以通过 id 获取记录


    【讨论】:

      【解决方案2】:

      你有很多选择。我鼓励您查看本教程,并考虑使用&lt;jsp:useBean id="myObject" class="myClass" scope="session"/&gt; 标签:

      这是来自 Oracle 的完整 JSTL 教程:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-14
        • 2010-12-16
        • 2015-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-20
        相关资源
        最近更新 更多