Java实现登录与注册页面

下面是Java实现登录和注册页面的具体攻略:

1. 准备工作:

  • 下载并安装Java JDK,安装JDK后需要配置一下环境变量,确保能在控制台中使用javac和java命令。
  • 安装Java IDE,如Eclipse、IntelliJ IDEA等。

2. 实现注册页面

(1)创建Java web项目

  • 打开IDE,点击File -> New -> Dynamic Web Project
  • 设置项目名称和保存路径,并选择Target runtime为你的Tomcat版本
  • 点击Finish,生成项目骨架

示例1:

<!-- 配置web.xml -->
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <servlet>
    <servlet-name>RegisterServlet</servlet-name>
    <servlet-class>com.example.web.RegisterServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>RegisterServlet</servlet-name>
    <url-pattern>/register</url-pattern>
  </servlet-mapping>

  <welcome-file-list>
    <welcome-file>register.jsp</welcome-file>
  </welcome-file-list>

</web-app>

<!-- register.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head>
<body>
  <form action="${pageContext.request.contextPath}/register" method="post">
    <table>
      <tr>
        <td>用户名</td>
        <td><input type="text" name="username"></td>
      </tr>
      <tr>
        <td>密码</td>
        <td><input type="password" name="password"></td>
      </tr>
      <tr>
        <td colspan="2">
          <input type="submit" value="注册">
          <input type="reset" value="重置">
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

(2)创建Servlet类

  • 在Java项目的src目录下创建一个Servlet类
  • 在doPost()方法中获取request对象的参数,从而得到用户输入的用户名和密码
  • 将用户名和密码插入到数据库中

示例2:

package com.example.web;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RegisterServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;

  private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  private static final String DB_URL = "jdbc:mysql://localhost:3306/test";
  private static final String USER = "root";
  private static final String PASSWORD = "root";

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

    String username = request.getParameter("username");
    String password = request.getParameter("password");

    Connection conn = null;
    PreparedStatement pstmt = null;

    try {
      Class.forName(JDBC_DRIVER);
      conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
      String sql = "INSERT INTO user (username, password) VALUES (?, ?)";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, username);
      pstmt.setString(2, password);
      pstmt.executeUpdate();
    } catch (SQLException se) {
      se.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        if (pstmt != null)
          pstmt.close();
      } catch (SQLException se2) {
      }
      try {
        if (conn != null)
          conn.close();
      } catch (SQLException se) {
        se.printStackTrace();
      }
    }

    response.sendRedirect("login.jsp");
  }

}

3. 实现登录页面

(1)创建登录页面

(2)创建Servlet类

示例3:

<!-- 配置web.xml -->
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>com.example.web.LoginServlet</servlet-class>
  </servlet>

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

  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>

</web-app>

<!-- login.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
  <form action="${pageContext.request.contextPath}/login" method="post">
    <table>
      <tr>
        <td>用户名</td>
        <td><input type="text" name="username"></td>
      </tr>
      <tr>
        <td>密码</td>
        <td><input type="password" name="password"></td>
      </tr>
      <tr>
        <td colspan="2">
          <input type="submit" value="登录">
          <input type="reset" value="重置">
        </td>
      </tr>
    </table>
  </form>
</body>
</html>

<!-- LoginServlet -->
public class LoginServlet extends HttpServlet {

  private static final long serialVersionUID = 1L;

  private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  private static final String DB_URL = "jdbc:mysql://localhost:3306/test";
  private static final String USER = "root";
  private static final String PASSWORD = "root";

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

    String username = request.getParameter("username");
    String password = request.getParameter("password");

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;

    try {
      Class.forName(JDBC_DRIVER);
      conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
      String sql = "SELECT * FROM user WHERE username=? AND password=?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, username);
      pstmt.setString(2, password);
      rs = pstmt.executeQuery();
      if (rs.next()) {
        request.getSession().setAttribute("username", username);
        response.sendRedirect("home.jsp");
      } else {
        response.sendRedirect("login.jsp");
      }
    } catch (SQLException se) {
      se.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      try {
        if (rs != null)
          rs.close();
      } catch (SQLException se2) {
      }
      try {
        if (pstmt != null)
          pstmt.close();
      } catch (SQLException se2) {
      }
      try {
        if (conn != null)
          conn.close();
      } catch (SQLException se) {
        se.printStackTrace();
      }
    }

  }

}

总结:

以上是Java实现登录与注册页面的完整攻略,需要注意的是,这些示例只是展示了如何在Java中实现登录和注册页面,并不包含完善的表单验证和数据类型校验等内容,需要在实际开发中根据需求进行相应的扩展。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现登录与注册页面 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • SpringBoot 如何实现异步编程

    Spring Boot提供了多种方式来实现异步编程,包括使用异步方法、使用异步任务、使用响应式编程等。在本攻略中,我们将介绍Spring Boot如何实现异步编程,并提供两个示例来说明其用法。 以下是两个示例,介绍Spring Boot实现异步编程的用法: 示例一:使用异步方法 Spring Boot提供了@Async注解来实现异步方法调用。以下是一个示例,…

    Java 2023年5月15日
    00
  • java实现多个文件压缩成压缩包

    要将多个文件压缩成一个压缩包,可以使用Java的ZipOutputStream类。以下是详细攻略: 创建压缩包文件 首先,需要创建一个压缩包文件,可以使用Java的File类,并指定后缀名为zip。例如: File zipFile = new File("myarchive.zip"); 实例化ZipOutputStream对象 创建Zi…

    Java 2023年5月19日
    00
  • Sprint Boot @ConditionalOnMissingClass使用方法详解

    以下是关于Spring Boot中@ConditionalOnMissingClass的作用与使用方法的完整攻略,包含两个示例: @ConditionalOnMissingClass的作用 @ConditionalOnMissingClass是Spring Boot提供的一个条件注解,用于在类路径中不存在指定的类时才会生效。它可以用于控制Bean的创建和配置…

    Java 2023年5月5日
    00
  • Spring Data JPA注解Entity使用示例详解

    Spring Data JPA注解Entity使用示例详解 本文将详细介绍Spring Data JPA注解Entity的使用方法,包括如何定义实体类、如何使用注解配置实体类以及实现一些基本的CRUD操作。下文将通过两个示例演示Spring Data JPA注解Entity的使用方法。 示例一:定义实体类 定义实体类是Spring Data JPA的第一步,…

    Java 2023年6月2日
    00
  • 常见的线程池有哪些?

    让我来为你详细讲解如何回答这个问题。 1. 什么是线程池? 线程池是线程的容器,用于维护和复用线程,从而提高应用程序的性能和资源利用率。线程池通常会维护一组工作线程,每个线程都可以从线程池中获取一个任务并执行。 2. 常见的线程池有哪些? 常见的线程池有以下几种: 2.1. 固定大小线程池 固定大小线程池是指线程池中的线程数是固定的,当线程池中的线程都处于运…

    Java 2023年5月10日
    00
  • Android开发实现的简单五子棋游戏示例

    下面是关于“Android开发实现的简单五子棋游戏示例”的完整攻略。 主要步骤 步骤一:设计界面UI 首先,在通过XML设计界面时,需要考虑到下棋时棋盘的大小、棋子的大小、边框颜色等因素。规划好界面之后,需要通过相关的布局容器来实现场景的设计。 步骤二:创建动态事件监听器 在设计完成了界面之后,需要通过编写代码,创建必要的动态事件监听器,这将有助于我们跟踪棋…

    Java 2023年5月23日
    00
  • 解析Java的Hibernate框架中的持久化类和映射文件

    解析Java的Hibernate框架中的持久化类和映射文件 Hibernate是一个Java平台的ORM框架,可以方便地进行对象和关系的映射,从而实现持久化操作。持久化类和映射文件是Hibernate框架中实现持久化操作的核心要素。本文将详细讲解解析Java的Hibernate框架中的持久化类和映射文件的完整攻略。 持久化类 持久化类是Hibernate框架…

    Java 2023年5月31日
    00
  • Java中两种基本的输入方式小结

    Java中有两种基本的输入方式,分别为键盘输入和文件输入。以下是两种方式的详细讲解。 键盘输入 1. 使用Scanner类 使用Scanner类可以很方便地接受键盘输入。示例如下: import java.util.Scanner; public class KeyboardInput { public static void main(String[] a…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部