java+mysql实现登录和注册功能

初学JAVA  EE,老师留下一小作业,用JAVA实现与服务器端交互,实现登录和注册功能,初学一种专业课很多老师都会留下一种让学生实现登录和注册的作业。

下面是记录的实现步骤:

1、首先是账号密码输入框和按钮:

登录:

<form action="login.do"  method="get">
     <table>
        <tr><td>账号:</td><td><input style="line-height: 28px;" type="text" name="id" /></td></tr>
        <tr><td>密码:</td><td><input style="line-height: 28px;" type="password" name="password" /></td></tr> 
        <tr><td> <a href="register.jsp" rel="external nofollow"  >还没注册?点击注册</a></td><td><input id="login_in" type="submit" value=" 登录 "></td></tr>
        </table>
 </form>

注册:

<form name="form1" action="register.do" method="post">
    <table width="200" border="0">
        <tr>
            <td colspan="2">
                <div id="status">注册新用户</div>
            </td>
        <tr>
            <td>*用户名</td>
            <td><input type="text" name="username" size="10" id="username"></td>
        </tr>
        <tr>
            <td>*密码</td>
            <td><input type="password" name="password1" size="10"></td>
        </tr>
        <tr>
            <td>*确认密码</td>
            <td><input type="password" name="password2" size="10"></td>
        </tr>
        <tr>
            <td>Email</td>
            <td><input type="text" name="email" size="10"></td>
        </tr>
        <tr>
            <td colspan="2"><a href="login.jsp" rel="external nofollow" >返回登录页</a> <input
                    type="submit" name="submit" value="提交注册"></td>
        </tr>
    </table>
</form>

两个form表的属性里都有action,可理解为是用来标记登录和注册的,在web.xml中和对应的servlet绑定

2、数据库建表,插入数据

在服务器中打开MySQL,建表

create table login(
uname char(15) primary key,
password char(15) not null,
email char(20)
)

3、sql语句内嵌到java语句中,查找(登录)和插入(注册)用户信息,以下类名即为文件的名字

登录:

import java.sql.*;
public class userlogin {
 
    String drv = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/login";
    String usr = "root";
    String pwd = "***";//自己的密码
 
    public boolean isuserlogin(String id,String password){
        boolean isValid = false;
 
        String sql="select * from ulogin where uname='"+id+"' and password='"+password+"'";
        try{
            Class.forName(drv).newInstance();
            Connection conn = DriverManager.getConnection(url,usr,pwd);
            Statement stm = conn.createStatement();
            ResultSet rs = stm.executeQuery(sql);
 
            if(rs.next()){
                isValid = true;
            }
 
            rs.close();
            stm.close();
            conn.close();
        }catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
        if(isValid){//判断用户名以及密码是否与设定相符
            return true;
        }
        else return false;
    }
}

注册:

import java.sql.*;
public class register {
 
    String drv = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/login";
    String usr = "root";
    String pwd = "***";
 
    public boolean userregister(String id,String password,String email){
 
        boolean b = false;
 
        String sql = "select * from ulogin where uname='"+id+"'";
 
        try{
            Class.forName(drv).newInstance();
            Connection conn = DriverManager.getConnection(url,usr,pwd);
            Statement stm = conn.createStatement();
            ResultSet rs = stm.executeQuery(sql);
 
            if(!rs.next()){
 
                sql = "insert into ulogin(uname,password,email) values('"+id+"','"+password+"','"+email+"')";
                stm.execute(sql);
                b = true;
            }
 
            rs.close();
            stm.close();
            conn.close();
        }catch (Exception e) {
            e.printStackTrace();
            System.out.println(e);
        }
 
        if(b)
        {
            return true;
        }
        else return false;
    }
}

4、构建servlet来处理事务,如果连接数据库查找成功,则登录成功,否则失败;如果注册成功返回登录界面

登录:由用户输入信息,所以使用doGet方法

@WebServlet(name = "ServletLogin")
public class ServletLogin extends HttpServlet {
    public void init() throws ServletException {
    }
 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        boolean b=false;
        userlogin MyPOJO=new userlogin();//新建MyPOJO类的对象myPOJO
 
        //根据标示名获取JSP文件中表单所包含的参数
        String id=request.getParameter("id");
        String password=request.getParameter("password");
        String result = "";
 
        b=MyPOJO.isuserlogin(id,password);//使用模型对账号和密码进行验证,返回一个boolean类型的对象
        PrintWriter out = response.getWriter();
        if(b){  //如果验证结果为真,跳转至登录成功页面
            out.println("success");
            result = "success";
            //Cookie
            Cookie username= new Cookie("username",id);
 
            //设置路径,这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问
 
            username.setPath("/");
            username.setMaxAge(60*60);
            response.addCookie(username);
            response.sendRedirect("index.jsp");
        }
        else {  //如果验证结果为假,跳转至登录失败页面
            out.println("fail");
            result = "fail";
            response.sendRedirect("JSP/LoginFailed.jsp" );
        }
        out.write(result);
        out.flush();
        out.close();
        System.out.println(result);
    }

注册:使用doPost方法

@WebServlet(name = "ServletRegister")
public class ServletRegister extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        boolean b = false;
        register myPOJO=new register();
 
        String id=request.getParameter("username");
        String password=request.getParameter("password1");
        String email = request.getParameter("email");
 
        b=myPOJO.userregister(id,password,email);
 
        if(b){
            response.sendRedirect("login.jsp");
        }
        else{
            response.sendRedirect("register.jsp");
        }
    }
}

5、在web.xml中将servlet和url-pattern进行匹配

<servlet>
        <servlet-name>ServletLogin</servlet-name>
        <servlet-class>service.ServletLogin</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletLogin</servlet-name>
        <url-pattern>/login.do</url-pattern>
    </servlet-mapping>
 
    <servlet>
        <servlet-name>ServletRegister</servlet-name>
        <servlet-class>service.ServletRegister</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletRegister</servlet-name>
        <url-pattern>/register.do</url-pattern>
    </servlet-mapping>

6、测试运行

将服务器端的mysql数据库中加入一条用户信息:

insert into ulogin values('test1','123',null);

网页上输入该信息:

点击登录:登陆成功

注册:在注册框中输入信息:

提交后在数据库中查找该用户信息:

注意:项目中应该导入jsp-api.jar和servlet-api.jar两个jar包

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Servlet+JavaBean+JSP打造Java Web注册与登录功能

    采用Java Web所实现的MVC结构图如下,其中控制器部分采用Servlet来实现,模型部分采用JavaBean来实现,而大部分的视图采用Jsp页面来实现. 思想基础 JSP+JavaBean两层结构工作原理应该是比较熟悉的,也比较好理解. 但是有一点必须要清楚就是用户通过浏览器来发送网页的请求,此请求到达服务器后在服务器端查找对应的网页,如果是首次请求(第二次就不用解释执行了),对于JSP来说要生成Servlet,然后通过Servlet引擎来执行 Servlet,把调用JavaBean的结果

  • Java使用IO模拟注册登录

    本文实例为大家分享了Java使用IO模拟注册登录的具体代码,供大家参考,具体内容如下 user的pojo类 package cn.lg.pojo; public class User {     private String username;     private String password;     public String getUsername() {         return username;     }     public void setUsername(Strin

  • JAVA简单实现MD5注册登录加密实例代码

    开发环境:jdk1.7,eclipse 框架:springmvc,mybatis 工具:maven 以下代码复制即可实现MD5加密 创建一个mave项目,加web.不懂得可以搜索一下就有了. 注册用户的JSP页面代码如下. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PU

  • Java实现登录与注册页面

    用java实现的登录与注册页面,实现了客户端(浏览器)到服务器(Tomcat)再到后端(servlet程序)数据的交互.这里在注册页面加入了验证码验证. 注册的html代码,页面非常丑!!请见谅.. <body> <fieldset id="">   <legend>注册页面</legend>   <form action="/day02/register2" method="post" id

  • Java实现登录和注册案例

    本文实例为大家分享了Java实现登录和注册的具体代码,供大家参考,具体内容如下 登录和注册案例的分析: 我们在完成一个需求时,需要面向对象,我们必须找到能完成某个功能的类,接着调用里面的方法来完成它.而这些类我们要进行分包,在不同包下实现,Java中的分包:com.edu.domain — 标准的Java描述类com.edu.dao — 存放的是接口com.edu.daoimpl — 存放的是接口的实现类com.edu.util — 对对象进行操作的工具类com.edu.test — 测试类 登

  • JavaWeb简单用户登录注册实例代码(有验证码)

    需求 编写login登录界面(用户名,密码,验证码,登陆按钮,注册按钮) 设计关系数据库(编号,用户名,密码) 编写注册功能,将数据存储在数据库中.(姓名不能重复,设为主键,重复会注册失败) 编写登录功能 .首先获取验证码,先判断验证码是否正确,不正确则显示验证码错误.验证码正确后再获取用户名和密码,进行数据库的搜索比对,若正确则重定向到成功的界面,并且将用户名显示. jar包 技术选型 Servlet + JSP + Mysql + JDBCTemplate + Druid + BeanUti

  • Java+mysql用户注册登录功能

    最近刚刚开始学习mysql,所以就写了这个很基本的用户注册登录的功能来练练手.虽然这个很简单,但是我还是看到了自己学习的进步,很开心.哈哈哈. 这里要注意数据表的建立: 直接上代码吧,里面注释很详细了. package client; import java.sql.*; import java.util.*; public class Client { /** * 用以实现用户的注册和登录 */ private static String username;//用户登录注册的姓名 privat

  • Java基于IO流实现登录和注册功能

    案例分析: 我们之前做过的登录注册案例是把用户信息存进集合里,要用IO流实现的话,就是要把用户信息存入文件中.登录注册两个功能的具体实现是在用户操作类中,所以我们只需要在用户操作类中把之前用户信息存进集合改为存进文件就可以了. 用到的类的详细分解: (1)用户类(User):用户名,密码,邮箱,电话号码等等各种注册时会用到的东西.我们在实现这个登录和注册案例的时候只需要用户名和密码就够了.这是一个标准Java描述类. package com.edu.domain; public class Us

  • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式. 这里以一个最常用的用户登录注册程序来讲解Servlet+JS

  • Java实现简单登录注册

    本文实例为大家分享了Java实现简单登录注册的具体代码,供大家参考,具体内容如下 一.登录 1. 内容介绍 定义一个内置的账号和密码,写好账号输入.密码输入.随机验证码生成.验证码输入方法(3个输入方法没有使用重载)以及账号密码验证码比较方法.调用这些方法实现简单的控制台登录. 2. 思路解析 方法调用.优先判断验证码,在判断账号最后判断密码. 3. 代码实现 import java.util.Random; import java.util.Scanner; public class Logi

随机推荐