JavaWeb 实现简单登录、注册功能
1.首先创建一个简单的动态Javaweb项目

2.然后手动建立文件目录:

项目创建好之后,在src下建几个包:
controller:控制器,负责转发请求,对请求进行处理,主要存放servlet;
dao:数据库管理,主要是写数据库操作方法;
model:存放实体类;
service:业务逻辑的处理;
util:存放工具类,在这里我主要是把数据库加载驱动和创立连接、关闭连接封装成了一个静态类。
ps:别忘了在lib文件夹里放入这个jar包,用以连接数据库。

3.下面直接贴上对应的代码:
src代码:
package com.maike.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.maike.service.UserService;
import com.maike.service.UserServiceImpl; /**
* Servlet implementation class RegisterServlet
*/
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
UserService userService = new UserServiceImpl();
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public RegisterServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
String userName = request.getParameter("userName");
String userPwd = request.getParameter("userPwd");
String userRePwd = request.getParameter("userRePwd"); int k = userService.insertUser(userName,userPwd,userRePwd); if(k > 0) {
request.getRequestDispatcher("login.jsp").forward(request, response);
}else {
request.getRequestDispatcher("register.jsp").forward(request, response);
}
} }
RegisterServlet
package com.maike.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.maike.service.UserService;
import com.maike.service.UserServiceImpl; /**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
UserService userService = new UserServiceImpl();
private static final long serialVersionUID = 1L; /**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
} /**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
} /**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");
String userName = request.getParameter("userName");
String uesrPwd = request.getParameter("userPwd"); int k = userService.judgeLogin(userName,uesrPwd);
if(k > 0) {
request.getRequestDispatcher("success.jsp").forward(request, response);
}else {
request.getRequestDispatcher("login.jsp").forward(request, response);
}
} }
LoginServlet
package com.maike.dao;
import com.maike.model.User;
public interface UserDao {
int insert(String userName,String userPwd);
User selectByName(String userName);
}
UserDao
package com.maike.dao; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import com.maike.model.User;
import com.maike.util.ConnectionUtil; public class UserDaoImpl implements UserDao {
Connection con = null;
PreparedStatement pt = null;
ResultSet rs = null;
String sql; @Override
public int insert(String userName, String userPwd) {
// TODO Auto-generated method stub
int k = 0;
sql = "insert into user value(null,?,?)";
try {
con = ConnectionUtil.getConnection();
pt = con.prepareStatement(sql);
pt.setString(1, userName);
pt.setString(2, userPwd);
k = pt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.closeRe(con, pt);
}
return k;
} @Override
public User selectByName(String userName) {
// TODO Auto-generated method stub
sql = "select * from user where user_name = ?";
User user = new User();
try {
con = ConnectionUtil.getConnection();
pt = con.prepareStatement(sql);
pt.setString(1, userName);
rs = pt.executeQuery(); while(rs.next()) {
user.setUserId(rs.getInt("user_id"));
user.setUserName(rs.getString("user_name"));
user.setUserPwd(rs.getString("user_pwd"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
ConnectionUtil.closeRe(con, pt, rs);
}
return user;
} }
UserDaoImpl
package com.maike.model;
public class User {
private int userId;
private String userName;
private String userPwd;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
@Override
public String toString() {
return "User [userId=" + userId + ", userName=" + userName + ", userPwd=" + userPwd + "]";
}
}
User
package com.maike.service;
public interface UserService {
int insertUser(String userName,String userPwd,String userRePwd);
int judgeLogin(String userName,String userPwd);
}
UserService
package com.maike.service; import com.maike.dao.UserDao;
import com.maike.dao.UserDaoImpl;
import com.maike.model.User; public class UserServiceImpl implements UserService {
UserDao userDao = new UserDaoImpl(); /**
* insertUser: 实现注册功能.<br/>
*/
@Override
public int insertUser(String userName, String userPwd, String userRePwd) {
// TODO Auto-generated method stub
int k = 0;
if(userName == "" || userName == null || userPwd == "" || userRePwd == null) {
return k;
}
if(!userPwd.equals(userRePwd)) {
return k;
} k = userDao.insert(userName,userPwd); return k;
} /**
* judgeLogin:登录判断 .<br/>
*/
@Override
public int judgeLogin(String userName, String userPwd) {
// TODO Auto-generated method stub
int k = 0;
if(userName == "" || userName == null || userPwd == ""|| userPwd == null) {
return k;
}
User user = userDao.selectByName(userName); if(!userPwd.equals(user.getUserPwd())) {
k = 0;
}else {
k = 1;
}
return k;
} }
UserServiceImpl
package com.maike.util; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class ConnectionUtil {
private static String url = "jdbc:mysql://127.0.0.1/nanfeng?characterEncoding=utf8&useSSL=true";
private static String rootName = "root";
private static String rootPwd = "zz201608"; private ConnectionUtil() {}; static {
try {
/*加载驱动*/
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* getConnection:创建连接.<br/>
* @return
* @throws SQLException
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,rootName,rootPwd);
} /**
* closeRe:关闭连接.<br/>
* @param con
* @param pt
* @param rs
*/
public static void closeRe(Connection con,PreparedStatement pt,ResultSet rs) {
if(rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(pt != null) {
try {
pt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(con != null) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
}
} /**
* closeRe:关闭连接.<br/>
* @param con
* @param pt
*/
public static void closeRe(Connection con,PreparedStatement pt) {
if(pt != null) {
try {
pt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(con != null) {
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
} }
ConnectionUtil
jsp页面代码:
<%@ 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>
<br><br><br>
<h3 align = "center">登录页面</h3>
<hr>
<form align = "center" action="LoginServlet" method="post">
<table align = "center" border="0">
<tr><td>用户名</td><td><input type="text" name="userName" ></td></tr>
<tr><td>密码</td><td><input type="password" name="userPwd" ></td></tr>
<tr><td align = "center"><input type="submit" value = "登录" style="color:blue" ></td><td align = "right"><button><a href = "register.jsp" style="color:blue" >注册</a></button></td></tr>
</table> </form> </body>
</html>
login.jsp
<%@ 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>
<br><br><br>
<h3 align = "center">注册页面</h3>
<hr>
<form align = "center" action="RegisterServlet" method="post">
<table align = "center" border="0">
<tr><td>用户名</td><td><input type="text" name="userName" ></td></tr>
<tr><td>密码</td><td><input type="password" name="userPwd" ></td></tr>
<tr><td>确认密码</td><td><input type="password" name="userRePwd" ></td></tr>
<tr><td align = "center" colspan="2"><input type="submit" value = "注册" style="color:blue" ></td></tr>
</table> </form>
</body>
</html>
register.jsp
创建数据库:
CREATE TABLE nanfeng.`user` (
user_id INT NOT NULL AUTO_INCREMENT,
user_name varchar(100) NULL,
user_pwd varchar(100) NULL,
CONSTRAINT user_pk PRIMARY KEY (user_id)
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8
COLLATE=utf8_general_ci;
4.最后,启动服务器,界面效果出来了

JavaWeb 实现简单登录、注册功能的更多相关文章
- JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
- 简单登录注册实现(Java面向对象复习)
简单登录注册的实现(面向对象的复习) 需求: 设计用户类,包含用户名和密码两个属性 设计LoginDemo类设计用户登录方法 用户有三次登录机会,如果连续三次登录失败则退出程序 功能实现页面: ...
- Java Spring+Mysql+Mybatis 实现用户登录注册功能
前言: 最近在学习Java的编程,前辈让我写一个包含数据库和前端的用户登录功能,通过看博客等我先是写了一个最基础的servlet+jsp,再到后来开始用maven进行编程,最终的完成版是一个 Spri ...
- SSM 实现登录注册功能
1.上一篇SSM框架搭建好了之后就要开始写功能了,现在来写一个简单的登录注册功能 这几个包是自己手动创建的,然后往里面写代码 2.代码详情 package com.maike.controller; ...
- vue koa2 mongodb 从零开始做个人博客(一) 登录注册功能前端部分
0.效果演示 插入视频插不进来,就很烦.可以出门右拐去优酷看下(点我!). 1.准备工作 1.1前端框架 前端使用了基于vue.js的nuxt.js.为什么使用nuxt.js? 首先我做的是博客的项目 ...
- tornado 08 数据库-ORM-SQLAlchemy-表关系和简单登录注册
tornado 08 数据库-ORM-SQLAlchemy-表关系和简单登录注册 引言 #在数据库,所谓表关系,只是人为认为的添加上去的表与表之间的关系,只是逻辑上认为的关系,实际上数据库里面的表之间 ...
- Node.js实现登录注册功能
使用Node.js + Navicat for mysql实现的登录注册功能 数据库中存在有”user_id,user_name,password,user_img,user_number“字段,其中 ...
- flask 开发用户登录注册功能
flask 开发用户登录注册功能 flask开发过程议案需要四个模块:html页面模板.form表单.db数据库操作.app视图函数 1.主程序 # app.py # Auther: hhh5460 ...
- JAVAEE_Servlet_20_登录注册功能
实现登录注册功能 注册功能 import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import j ...
随机推荐
- R 语言学习笔记(1)——R 工作空间与输入输出
什么是工作空间? 工作空间(workspace)就是当前 R 的工作环境,它储存着所有用户定义的对象(objectives)包括了向量.矩阵.函数.数据框.列表等. 处理 R 文件的工作流程 #设置当 ...
- OSI-传输层
OSI-传输层 端口号(2字节 SYN(1bit) ACK(1bit) 会话多路复用(为什么一个IP地址可以做很多事情?) 源端口地址可以不同 五元组(世界上没有相同的2个五元组) 源IP地址-目的I ...
- VLAN实验1(VLAN基础配置及Access接口)
本实验基于<HCNA网 络技术实验指南> 本实验使用eNSP软件 原理概述: 早期的局域网技术是基于总线型结构的.总线型拓扑结构是由一根单电缆连接着所 有主机,这种局域网技术存在着冲突域问 ...
- 【BZOJ4001】【Luogu P3978】 [TJOI2015]概率论
题目描述: Description: Input 输入一个正整数N,代表有根树的结点数 Output 输出这棵树期望的叶子节点数.要求误差小于1e-9 Sample Input 1 Sample Ou ...
- Python与自然语言处理搭建环境
参考书籍<Python自然语言处理>,书籍中的版本是Python2和NLTK2,我使用的版本是Python3和NLTK3 实验环境Windows8.1,已有Python3.4,并安装了Nu ...
- Shell入门01-bash Shell特性
命令和文件自动补齐 [root@hadoop04 ~]# yum -y install bash-completion 命令历史记忆功能 1.上下键 查看历史命令 2.!number 执行histor ...
- iOS开发笔试面试- KVC/KVO简单使用
转自:http://my.oschina.net/caijunrong/blog/510701 一.对于KVC模式(Key Value Coding): 1.其实在实际开发中用得比较多得就是:接收到j ...
- ELK filebeat的安装
安装参考官方文档: https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html 注意事项: Fr ...
- 理解django的框架为何能够火起来
理解django的框架为何能够火起来 https://www.yiibai.com/django/django_basics.html https://code.ziqiangxuetang.com/ ...
- 01-EF Core笔记之创建模型
使用EF Core的第一步是创建数据模型,模型建的好,下班走的早.EF Core本身已经设置了一系列约定来帮我们快速的创建模型,例如表名.主键字段等,毕竟约定大于配置嘛.如果你想改变默认值,很简单,E ...