javaweb用户登录系统

简单的用户登录系统
设计一个web应用,该web应用提供两个JSP页面,一个可以让用户输入姓名、年龄等信息,另一个页面显示登陆结果。web应用提供一个servlet对象用于负责数据的操作(姓名、年龄的合法性),无需连接数据库

简单的用户登录系统可以通过以下步骤实现:

  1. 创建一个Web应用程序,并在其中创建两个JSP页面:一个用于接收用户输入的信息,另一个用于显示登录结果。
  2. 创建一个Servlet类,它实现了doGet和doPost方法,用于在服务器上处理来自用户的HTTP请求。在Servlet中,可以验证用户提供的姓名和年龄是否合法,如果合法,将用户信息存储在Session中。
  3. 在JSP中,使用表单元素来允许用户输入姓名和年龄等信息,并使用HTTP POST方法将该表单提交到Servlet中。当从Servlet中返回时,JSP页面将显示用户的登录结果。
    以下是一个基本的Servlet代码,可以用来处理用户登录信息:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
 public class LoginServlet extends HttpServlet {
     @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // 处理 GET 请求
        doPost(request, response);
    }
     @Override
    public 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().isEmpty() || age <= 0) {
            response.sendRedirect("error.jsp");
            return;
        }
         // 将用户信息存储在Session中
        HttpSession session = request.getSession();
        session.setAttribute("name", name);
        session.setAttribute("age", age);
         // 重定向到登录结果页面
        response.sendRedirect("result.jsp");
    }
}

在以上示例中,我们使用了重定向的方式来显示登录结果。如果用户提供的信息不合法,我们将会使用sendRedirect方法将请求重定向到一个错误页面。如果用户提供的信息是合法的,我们将使用HttpSession对象来将用户信息存储在服务器上,以便在后续的请求中使用。

以下为你提供一个简单的用户登录系统示例代码:

1 登录页面(login.jsp),用户输入姓名和年龄

<form method="post" action="LoginServlet">
    <label>姓名:</label>
    <input type="text" name="name"/><br/>
    <label>年龄:</label>
    <input type="text" name="age"/><br/>
    <input type="submit" value="登录"/>
</form>


2 处理用户提交信息的 Servlet(LoginServlet.java),判断用户输入的是否合法(姓名不能为空且年龄必须为正整数),并将判断结果存入 session 中

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginServlet extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        // 获取用户输入的姓名和年龄
        String name = request.getParameter("name");
        String age = request.getParameter("age");

        // 判断用户输入的姓名和年龄是否合法
        if (name == null || name.isEmpty()) {
            // 姓名为空,返回登录页面,并显示错误提示信息
            request.setAttribute("error", "姓名不能为空");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        } else if (age == null || !age.matches("\\d+")) {
            // 年龄不是正整数,返回登录页面,并显示错误提示信息
            request.setAttribute("error", "年龄必须是正整数");
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        } else {
            // 用户输入的姓名和年龄都合法,将判断结果保存到 session 中,并重定向到结果页面
            HttpSession session = request.getSession();
            session.setAttribute("name", name);
            session.setAttribute("age", age);
            response.sendRedirect(request.getContextPath() + "/result.jsp");
        }
    }

}


3 结果页面(result.jsp),显示用户登录结果

<%
    // 从 session 中获取登录结果
    HttpSession session = request.getSession();
    String name = (String) session.getAttribute("name");
    String age = (String) session.getAttribute("age");
%>

<h1>登录结果</h1>

<% if (name == null || age == null) { %>
    <p>请先登录</p>
<% } else { %>
    <p>欢迎您,<%= name %>!您的年龄是 <%= age %> 岁。</p>
<% } %>


上边使用了 JSP 技术和 Servlet 技术实现了一个简单的用户登录系统,用户输入姓名和年龄后,用 Servlet 来处理数据,判断用户输入是否合法,再将处理结果保存到 session 中,最终显示登录结果。

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7791360
  • 这篇博客也不错, 你可以看下JavaWeb中Servlet和JSP的分工案例
  • 除此之外, 这篇博客: 最近整理的一些常见的面试题,面试大全,黑马程序员面试宝典题库---JavaWEB基础篇中的 12. 什么是 jsp,什么是 Servlet? jsp 和 Servlet 有什么区别? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • jsp 本质上就是一个 Servlet,它是 Servlet 的一种特殊形式(由 SUN 公司推出),每个 jsp 页面都是一个 servlet实例。Servlet 是由 Java 提供用于开发 web 服务器应用程序的一个组件,运行在服务端,由 servlet 容器管理,用来生成动态内容。一个 servlet 实例是实现了特殊接口 Servlet 的 Java 类,所有自定义的 servlet 均必须实现 Servlet 接口。
    区别:
    jsp 是 html 页面中内嵌的 Java 代码,侧重页面显示;
    Servlet 是 html 代码和 Java 代码分离,侧重逻辑控制, mvc 设计思想中 jsp 位于视图层, servlet 位于控制层Jsp 运行机制:如下图:

    JVM 只能识别 Java 类,并不能识别 jsp 代码! web 容器收到以.jsp 为扩展名的 url 请求时,会将访问请求交给tomcat 中 jsp 引擎处理,每个 jsp 页面第一次被访问时, jsp 引擎将 jsp 代码解释为一个 servlet 源程序,接着编译servlet 源程序生成.class 文件,再有 web 容器 servlet 引擎去装载执行 servlet 程序,实现页面交互。
     

  • 您还可以看一下 王文政老师的零基础“抄近路”驾驭Javaweb开发课程中的 构建新项目servlet小节, 巩固相关知识点