Java web实现简单注册功能

今天写了一个注册功能,没有用任何框架!发现不会写了,中间查了好几次百度。不过还是顺利的写完并且跑起来了。在这里记录一下。我认为有时候写这些代码还是对我们理解框架很有帮助的,因为框架也是按照这些,对基础进行封装后得到的。

首先是环境的搭建

1、环境的搭建:我用的jdk1.8 tomcat 7.0 eclipse neno 数据库用的是mysql。

2、创建一个动态的web工程(这个应该都会的,这里就不再截图说明了)

3、数据库的创建

我这里创了一个名为t_t_user 的表,里面的字段也很简单,就name password age 三个。

4、数据库创建好之后就开始写前端代码

前端写的很简单

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>
 <p style="color:red;">${message}</p>

 <form action="${pageContext.request.contextPath }/login" method="post">
   姓名 <input  type="text" name="name"/><br>
    年龄 <input type="text" name="age"/><br>
    密码<input  type="password" name="password"/><br>
    <input type="submit" value="提交">
 </form>
</body>
</html>

5、前端代码写好后就可以写对应的,上传的请求的servlet,在这里我只判断了姓名不能为空,其他的就一样的写就好了。还有这里有个问题,就是我没有进行编码处理。在这里可能出现中文乱码的问题,可以直接在servlet中加入处理中文乱码的语句,或者是写个过滤器,这里我就不再赘述了。

package com.proven.controller;

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

import com.proven.service.UserService;
import com.proven.service.impl.UserServiceImpl;

/**
 * Servlet implementation class login
 */
@WebServlet("/login")
public class login extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       String name=request.getParameter("name");
       String password = request.getParameter("password");
       String ages = request.getParameter("age");
       int age = Integer.parseInt(ages);
       String message="";

       if(name.equals("")){
           message="用户名不能为空";
           request.setAttribute("message", message);
           request.getRequestDispatcher("/index.jsp").forward(request, response);
       }else{
           UserService userService = new UserServiceImpl();
           int info = userService.register(name,password,age);
           if(info==1){
               message="注册成功";
           }else if(info ==0){
               message="注册失败";
           }else if(info==-2){
               message="sql错误";

           }

           request.setAttribute("message", message);
           request.getRequestDispatcher("/index.jsp").forward(request, response);
       }

    }

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

}

6、service 层,处理逻辑,在我们写代码的时候,尽量的把逻辑处理写到service,最大的好处就是安全,毕竟写程序不只是实现功能那么简单。

接口:

package com.proven.service;
/**
 * @author  曾炜龙  E-mail: 1501122784@qq.com
 * @date 创建时间:2017年6月26日 下午4:39:45 
 * @version 1.0 
 * @parameter  
 * @since  
 * @return  
 */
public interface UserService {

    int register(String name, String password, int age);

}

实现类:这里我忘记判断数据库中是否已经存在账号,判断的话很简单,就是通过账号去查数据库中是否有相同的数据,如果有了就返回给servlet:该账号已存在,如果没有的话就继续注册。

package com.proven.service.impl;

import com.proven.dao.UserDao;
import com.proven.dao.impl.UserDaoImpl;
import com.proven.model.User;
import com.proven.service.UserService;

/**
 * @author  曾炜龙  E-mail: 1501122784@qq.com
 * @date 创建时间:2017年6月26日 下午4:40:01 
 * @version 1.0 
 * @parameter  
 * @since  
 * @return  
 */
public class UserServiceImpl implements UserService{

    @Override
    public int register(String name, String password, int age) {
        UserDao userDao = new UserDaoImpl();

        User user = new User();

        user.setName(name);
        user.setPassword(password);
        user.setAge(age);
        int info= userDao.register(user);

        return info;
    }

}

持久层:dao
接口:

package com.proven.dao;

import com.proven.model.User;

public interface UserDao {

    int register(User user);

    /**

     * @param username
     * @return
     */
    //int findUserByName(String username);

    /**

     * @param user
     * @return
     */
    //int register(User user);

    /**
     * 登录方法
     * @param username
     * @param password
     * @return
     */

}

实现类:

package com.proven.dao.impl;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.proven.dao.UserDao;
import com.proven.model.User;

public class UserDaoImpl implements UserDao {

    @Override
    public int register(User user) {
        PreparedStatement pstmt=null;
        Connection conn =null;
          try{   
                //加载MySql的驱动类   
                Class.forName("com.mysql.jdbc.Driver") ;   
                }catch(ClassNotFoundException e){   
                System.out.println("找不到驱动程序类 ,加载驱动失败!");   
                e.printStackTrace() ;   
                }   

          String url = "jdbc:mysql://localhost:3306/nokuangjia" ;    
             String username = "root" ;   
             String password = "" ; 

             String sql = "insert into t_t_user values(null,?,?,?)";
             try {
                 conn = DriverManager.getConnection(url,username,password);
                  pstmt = conn.prepareStatement(sql) ;  
                 pstmt.setString(1,user.getName() );
                 pstmt.setString(2, user.getPassword());
                 pstmt.setInt(3, user.getAge());
                 int info = pstmt.executeUpdate();
                 return info;
            } catch (SQLException e) {
                 System.out.println("数据库连接失败!");  
                e.printStackTrace();
                return -2;
            }finally {
                try {
                    pstmt.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

    }
/*
    public int findUserByName(String username) {

        QueryRunner qr = new QueryRunner(DBUtils.getDataSource());
        String sql = "select * from user where username = ?";
        try {
            User user = qr.query(sql, new BeanHandler<User>(User.class),
                    username);
            if (user == null) {

                return 1;
            } else {

                return -1;
            }
        } catch (SQLException e) {
            e.printStackTrace();
            return -2;
        }
    }

    public int register(User user) {
        return 0;
    }*/

/*  public int register(User user) {
        // 浣跨敤DBUtils灏唘ser瀵硅薄鍏ュ簱
        QueryRunner qr = new QueryRunner(DBUtils.getDataSource());

        String sql = "insert into t_t_user values(null,?,?,?)";

        try {
            return qr.update(sql, user.getName(), user.getPassword(),
                    user.getAge());
        } catch (SQLException e) {
            e.printStackTrace();
            return -2;
        }

    }

    */

}

在这里代码就全部写好。经过测试,运行良好!

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

(0)

相关推荐

  • JavaWeb 网上书店 注册和登陆功能案例详解

    本文实例讲述了JavaWeb 网上书店 注册和登陆功能.分享给大家供大家参考,具体如下: 工具:Eclipse + Navicat 源码地址:https://github.com/Sunjinhang/JavaWeb 用户实体:简简单单的六个属性,编号.姓名.密码.电话.邮箱.地址. package Entity; public class User { public User(String id, String userName, String password, String phone,

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

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

  • JavaWeb实现用户登录与注册功能

    本文实例为大家分享了JavaWeb实现用户登录与注册的具体代码,供大家参考,具体内容如下 所用知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础  JSP   Servlet  JDBC  Tomcat 数据库:MySQL 用到的Jar包 druid数据库连接池  dbutils JDBC数据库操作工具  MySQL jar包 实现效果基本为注册用户,注册成功将数据写入数据库,登录过程查看数据库中是的用户名,密码是否匹配,匹配跳转到登录成功页面,失败返回登录页面. 思路

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

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

  • JavaWeb实现用户登录与注册功能(服务器)

    本文实例为大家分享了JavaWeb实现用户登录与注册功能的具体代码,供大家参考,具体内容如下 用到的知识 客户端:HTML CSS JS (JQuery) 服务器:JAVA基础  JSP   Servlet  JDBC  Tomcat 数据库:MySQL 用到的Jar包 druid数据库连接池  dbutils JDBC数据库操作工具  MySQL jar包 总体结构: 客户端数据库部分网址 思路: 服务器部分采用JavaEE三层架构 (1).表现层:通俗讲就是展现给用户的界面,即用户在使用一个

  • JavaWeb之Servlet注册页面的实现示例

    Servlet-注册页面 环境准备: 本文所用到环境如下: 软件:Eclipse(2018) 服务器:Tomcat 9 在index.jsp添加相关的代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 T

  • Java实现简单登录注册

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

  • JavaWeb表单注册界面的实现方法

    JavaWeb表单注册界面的实现方法 今天又做了一个注册界面,还是一如既往的从以前的代码copy过来,于是决定总结一下做注册界面的思路,供同学参考. Step1 页面实现 在这一步主要用到了html.css.JavaScript的知识. 1)  html 建立页面基本结构.建议在做html的时候给每个Element都设置id,方便之后的css.JavaScript操作. 2)  css 给节点设置长.宽.边距.边框.背景等样式. 3)  js 设置按钮鼠标悬停时的背景变化等.页面效果实现. St

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

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

  • JavaWeb实战之用Servlet+JDBC实现用户登录与注册

    一.前言 使用到的技术栈: (1)JDBC (2)Servlet (3)MySQL 二.准备工作 (1)书城用户数据库与表创建 (2)编写用户类对象JavaBean (3)编写JdbcUtils对数据库进行交互(使用德鲁伊数据库连接池) (4)编写web层 最终编写好的第二阶段登陆注册文件结构为 dao中定义了基础的操作数据库代码,具体功能有 1.Insert.update.delete(修改) 2.查询一个对象(返回一个对象) 3.查询一个数组对象(数组返回多个对象) 4.返回某一个特定值对象

随机推荐