刚学,不知道怎么做,有没有人解答一下😭

设计一个web应用,该web应用提供两个JSP页面,一个可以让用户输入姓名、年龄等信息,另一个页面显示登陆结果。web应用提供一个servlet对象用于负责数据的操作(姓名、年龄的合法性),web应用提供的javabean负责刻画登录用户,提供简单的数据获取和修改数据的方法。

https://blog.csdn.net/qq_51983316/article/details/120750985

  1. 创建两个JSP页面:一个用于用户输入信息,另一个用于显示登录结果。可以在第一个页面中使用HTML表单控件来获取用户输入的姓名、年龄等信息。
<form action="loginServlet" method="post">
    姓名:<input type="text" name="name"><br>
    年龄:<input type="text" name="age"><br>
    <input type="submit" value="提交">
</form>

  1. 创建一个Servlet对象,用于处理用户提交的数据。可以在Servlet中实现数据的验证和处理逻辑。例如:
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取用户输入的姓名和年龄
        String name = request.getParameter("name");
        int age = Integer.parseInt(request.getParameter("age"));

        // 验证姓名和年龄是否合法
        boolean valid = true;
        if (name == null || name.trim().equals("")) {
            valid = false;
        }
        if (age <= 0 || age >= 100) {
            valid = false;
        }

        // 如果数据合法,则创建JavaBean并存储到Session中
        if (valid) {
            UserBean user = new UserBean();
            user.setName(name);
            user.setAge(age);
            HttpSession session = request.getSession();
            session.setAttribute("user", user);
        }

        // 跳转到登录结果页面
        response.sendRedirect("loginResult.jsp");
    }
}

  1. 创建一个JavaBean,用于表示登录用户。可以在JavaBean中定义姓名和年龄的属性,以及获取和修改这些属性的方法。例如:
public class UserBean {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

  1. 创建登录结果页面loginResult.jsp,用于显示登录用户的信息。例如:
<%
    // 从Session中获取登录用户的信息
    HttpSession session = request.getSession();
    UserBean user = (UserBean) session.getAttribute("user");
%>
<div>
    <h1>登录结果</h1>
    <% if (user != null) { %>
        <p>您好,<%= user.getName() %>,您的年龄是<%= user.getAge() %>岁。</p>
    <% } else { %>
        <p>登录失败,请重新输入您的姓名和年龄。</p>
    <% } %>
</div>

下面是一个简单的实现示例:

创建 JavaBean 类 LoginUser,用于描述登录用户信息。
java
public class LoginUser {
    private String name;
    private int age;

    public LoginUser() {}

    public LoginUser(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
创建输入信息 JSP 页面 input.jsp。
html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>输入信息</title>
</head>
<body>
<form action="login" method="post">
    姓名:<input type="text" name="name"><br>
    年龄:<input type="number" name="age"><br>
    <input type="submit" value="提交">
</form>
</body>
</html>
创建显示结果 JSP 页面 result.jsp。
html
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>登录结果</title>
</head>
<body>
    <%-- 获取登录用户信息 --%>
    <% LoginUser user = (LoginUser) request.getAttribute("user"); %>

    <%-- 显示登录结果 --%>
    <% if (user != null) { %>
        <p>欢迎您,<%= user.getName() %>!</p>
        <p>您的年龄是 <%= user.getAge() %> 岁。</p>
    <% } else { %>
        <p>登录失败!</p>
    <% } %>
</body>
</html>
创建 Servlet 处理用户请求,验证数据合法性,并将结果传递给 result.jsp 页面显示。
java
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取用户输入的信息
        String name = request.getParameter("name");
        int age = Integer.parseInt(request.getParameter("age"));

        // 验证用户名和年龄是否符合要求
        if (name == null || name.trim().equals("") || age <= 0 || age >= 150) {
            // 如果不符合要求,转发到登录失败页面
            request.getRequestDispatcher("/result.jsp").forward(request, response);
        } else {
            // 如果符合要求,创建一个登录用户对象并保存到 request 中
            LoginUser user = new LoginUser(name, age);
            request.setAttribute("user", user);

            // 转发到登录成功页面
            request.getRequestDispatcher("/result.jsp").forward(request, response);
        }
    }
}
在 web.xml 文件中配置 Servlet 和 JSP 页面的映射。假设 input.jsp 和 result.jsp 页面位于 WebContent 目录下。
xml
<web-app>
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.example.LoginServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>input.jsp</welcome-file>
    </welcome-file-list>
</web-app>
以上为一个简单的实现示例,您可以根据需要进行修改和扩展。