java - 如何从servlet读取数据并将数据传递到JSP

标签 java jsp servlets

关于从 servlet 读取数据并将其传递到 JSP 的问题

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

  • JSP 文件:EmployeeInfo.jsp、EmployeeDetails.jsp
  • Servlet:EmployeeRegistrationServlet、EmployeeSearchServlet
  • Bean:员工
获取员工 ID 或员工信息的

EmployeeInfo.jsp 文件。它有两个提交按钮。如果用户想要搜索员工,则输入一个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来查找员工呢? 请给我一些建议。非常感谢。

最佳答案

My question is how to use EmployeeDetail.jsp read bean object passed from EmployeeRegistrationServlet?

您需要将请求/ session 属性中的对象设置为可用于转发的jsp

how to Find an employee by searching the employee ID?

取决于你的数据存储,例如如果你使用mysql,你需要使用jdbc和查询来按id获取记录

<小时/>

查看

关于java - 如何从servlet读取数据并将数据传递到JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22571508/

相关文章:

java - 如何指定 java 包的路径?

java - 使用DTO绑定(bind)多个动态创建字段的相同属性名

javascript - 根据复选框选择显示/隐藏选项卡

java - Hibernate Envers targetAuditMode = RelationTargetAuditMode.NOT_AUDITED 不起作用

java - 无法创建目录 :Android

java - config.ini 文件属性被 OSGI 运行时中的另一个文件属性替换

apache - Tomcat 的 JSP 错误

tomcat - 使用 servlet 处理自定义 HTTP 错误? ( Tomcat )

web 文件夹外的 Java Servlet 绝对路径 [ Windows & Linux ]

java - 如果响应中有多个值,如何从不同文本字段中的ajax响应中获取值?