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中实现登录和注册页面,并不包含完善的表单验证和数据类型校验等内容,需要在实际开发中根据需求进行相应的扩展。

阅读剩余 81%

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

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

相关文章

  • 三步轻松搭建springMVC框架

    当您想要使用SpringMVC框架构建Web应用程序时,按照以下三个步骤操作可以轻松完成: 第一步 – 配置SpringMVC标准Maven依赖项 SpringMVC是Spring框架的一部分。要在您的项目中使用它,您需要首先添加SpringMVC的Maven依赖项。 以下是配置SpringMVC标准Maven依赖项的步骤: 打开您的项目的pom.xml文件…

    Java 2023年5月16日
    00
  • jQuery解析XML文件同时动态增加js文件的方法

    首先需要明确的是,jQuery提供了内置的函数来实现解析XML文件和动态增加js文件。下面是详细的操作步骤。 解析XML文件 步骤一:通过ajax方法获取XML数据 使用jQuery的ajax方法,通过URL链接获取XML数据。使用ajax方法时,需要设置dataType为xml。 $.ajax({ url: ‘xml/your_xml_file.xml’,…

    Java 2023年6月15日
    00
  • springboot通过注解、接口创建定时任务详解

    让我详细讲解一下关于“springboot通过注解、接口创建定时任务”的完整攻略。 一、创建定时任务需要的依赖 在项目中,需要导入以下依赖: <!– Spring Boot定时器需要的依赖 –> <dependency> <groupId>org.springframework.boot</groupId>…

    Java 2023年5月19日
    00
  • SpringBoot2零基础到精通之自动配置底层分析及小技巧

    SpringBoot2零基础到精通之自动配置底层分析及小技巧 SpringBoot是一个非常流行的Java Web框架,它提供了很多便利和优雅的实现方式。其中自动配置是其中一个非常重要的特性,可以极大地简化开发者的工作量,提高开发效率。本文将对SpringBoot中的自动配置进行剖析,并介绍一些小技巧,帮助你更好地理解和使用SpringBoot。 自动配置原…

    Java 2023年5月15日
    00
  • Spring Security认证提供程序示例详解

    Spring Security认证提供程序示例详解 Spring Security提供了强大的身份验证和授权功能,其基础在于认证提供程序的实现。本文将讨论Spring Security认证提供程序示例,并提供两个示例以便更好地理解该功能。 什么是Spring Security认证提供程序? Spring Security认证提供程序是一个接口,定义了如何获取…

    Java 2023年5月20日
    00
  • Java实现5种负载均衡算法(小结)

    Java实现5种负载均衡算法(小结) 什么是负载均衡 负载均衡是分布式系统中常用的一种技术,用于将请求分发到多个计算机资源上,以达到平衡负载的效果。通过负载均衡技术,能够提高系统的可用性、可伸缩性和性能。 为什么需要负载均衡 在分布式系统中,有时一个计算节点无法满足系统的负载需求,而此时采用多个节点共同处理请求则成为了必要。负载均衡技术将请求分发到多个节点上…

    Java 2023年5月19日
    00
  • 浅谈java随机数的陷阱

    浅谈Java随机数的陷阱 在Java中,我们常常需要使用随机数来模拟一些随机的行为,比如生成验证码、抽奖等。然而,在使用Java随机数的过程中,我们可能会遇到一些难以预料的陷阱。本文将从以下几个方面详细讲解Java随机数的使用注意事项: 随机种子的问题 伪随机数生成器的局限性 安全随机数生成器的使用方法 随机种子的问题 在Java中,我们可以使用java.u…

    Java 2023年5月19日
    00
  • Java util concurrent及基本线程原理简介

    Java util concurrent及基本线程原理简介 线程基本概念 线程是操作系统进行任务调度和执行的基本单位,一个进程可以拥有多个线程。 线程是轻量级的,相对于进程来说占用较少的资源。 线程也是并发编程的基石,不同的线程可以同时执行不同的任务,提高了应用程序的并发性。 线程的状态 新建状态 线程是尚未启动的状态,实例化了一个Thread对象,还未调用…

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