簡體   English   中英

如何從servlet讀取數據並將數據傳遞到JSP

[英]How to read and pass data from servlet to JSP

有關從servlet讀取數據並將數據傳遞到JSP的問題

我想創建一個Java EE項目。 該項目總共有5個文件。

  • JSP文件:EmployeeInfo.jsp,EmployeeDetails.jsp
  • Servlet:EmployeeRegistrationServlet,EmployeeSearchServlet
  • Bean:員工

獲取雇員ID或雇員信息的EmployeeInfo.jsp文件。 它有兩個提交按鈕。 如果用戶要搜索Employee,則將輸入一個ID,它將調用EmployeeSearchServlet,如果用戶想添加新的Employee信息,則將使用輸入的客戶信息來調用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查找員工? 請給我一些建議。 非常感謝。

我的問題是如何使用EmployeeDetail.jsp讀取從EmployeeRegistrationServlet傳遞的bean對象?

您需要將“請求/會話中的對象”屬性設置為可用於轉發的jsp

如何通過搜索員工ID查找員工?

取決於您的數據存儲,例如,如果您使用的是mysql,則需要使用jdbc和查詢以按ID獲取記錄


看到

您有很多選擇。 我鼓勵您看一下本教程,並考慮使用<jsp:useBean id="myObject" class="myClass" scope="session"/>標簽:

這是Oracle的完整JSTL教程:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM