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 ...
随机推荐
- Java工作流引擎全局变量的介绍
关键词:工作流快速开发平台 工作流流设计 业务流程管理 asp.net 开源工作流bpm工作流系统 java工作流主流框架 自定义工作流引擎 在系统中有很多的地方需要用到表达式的地方,这些 ...
- Python用正则表达式匹配汉字
Python用正则表达式匹配汉字 匹配多个汉字,不包括空格 import re res = re.match(r'[\u4E00-\u9FA5]+', '我是 汉字') print(res) # &l ...
- python matplotlib 画图表(点状图)
首先,选择自己希望画的图:在官方网站就可以直接点击图,然后就会出现源代码: http://matplotlib.org/gallery.html
- auto_modify_ip Shell脚本安装
#!/bin/bash # : #This author is DKS #auto modify ip of linux ############################### IP_NAME ...
- 机器学习十大算法总览(含Python3.X和R语言代码)
引言 一监督学习 二无监督学习 三强化学习 四通用机器学习算法列表 线性回归Linear Regression 逻辑回归Logistic Regression 决策树Decision Tree 支持向 ...
- Linux下利用nginx实现负载均衡
linux下利用nginx实现负载均衡 前提条件: 1,安装好jdk 2,安装好tomcat和nginx(可以参考我前两篇文章) 满足前提条件后,要用nginx实现负载均衡,主要是靠配置nginx的配 ...
- 浅谈C#中的序列化与反序列化
今天我利用这篇文章给大家讲解一下C#中的序列化与反序列化.这两个概念我们再开发中经常用到,但是我们绝大部分只用到了其中的一部分,剩下的部分很多开发人员并不清楚,甚至可以说是不知道.因此我希望通过这篇文 ...
- Create an Embedded Framework in Xcode with Swift
转自:http://zappdesigntemplates.com/create-an-embedded-framework-in-xcode-with-swift/ Post Series: Cre ...
- [Python Basics]下划线变量
夜暗归云绕柁牙,江涵星影鹭眠沙. 行人怅望苏台柳,曾与吴王扫落花. 我平时很常见到的带有下划线的python变量有两种: 前后双下划线,我之前的理解是python程序中的类似meta data的信息, ...
- USB3.0 图像视频传输 开发 CYUSB3014开发基础(导入官方例程) 转
CYPREE提供的FX3_SDK开发包里面有很多基础的内容,除了前面提到的几个pdf文件外,还有三个文件夹,是官方提供的基础例程.学习CYUSB3014应该就从这里开始,从这几个例程开始.例程共有三个 ...