Java web实现简单注册功能

网友投稿 409 2022-08-02


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

首先是环境的搭建

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"%>

${message}

姓名

年龄

密码

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.sethttp://Attribute("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.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;

}

}

*/

}

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解SpringBoot集成消息队列的案例应用(spring 消息队列)
下一篇:java实现注册登录系统(java如何实现登录注册)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~