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 ...
随机推荐
- 前端vue如何下载或者导出word文件和excel文件
前端用vue怎么接收并导出文件 window.location.href = "excel地址" 如果是 get 请求,那直接换成 window.open(url) 就行了 创建一 ...
- selenium无界面执行和反爬
selenium无界面执行和反爬 无界面执行 from selenium import webdriver from selenium.webdriver.chrome.options import ...
- PyTorch官方教程中文版
首先呈上链接:http://pytorch123.com/ PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序.它主要由Facebookd的人工智能小组开发,不 ...
- RocketMQ 主题扩分片后遇到的坑
目录 1.案情回顾 1.1 集群现状 1.2.RocketMQ 在线扩容队列 1.3 消息发送 2.问题暴露 3.问题分析 4.问题复盘 消息组接到某项目组反馈,topic 在扩容后出现部分队列无法被 ...
- MongoDB第一天(MongoDB的简介和安装)
MongoDB 简介 什么是 MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++语言编写.在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...
- jQuery操作页面的元素
主要有添加,替换,删除,清空三种方式: 添加又分为,在之前添加,在之后添加,在元素外之前添加,在元素外之后添加.每个添加方式又有俩种方法(效果一模一样): 俩种方法区添加,在原内容之后: p.appe ...
- SpringBoot中JdbcTemplate
步骤如下: 依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- AtCoder-3920
We have a 3×3 grid. A number ci,j is written in the square (i,j), where (i,j) denotes the square at ...
- ARTS-S idea常用快捷键
1.生成main方法 先输入p,再输入Ctrl+j,选psvm,回车. 2.生成System.out.println() 先输入s,再输入Ctrl+j,选sout,回车. 输入A.B.C.D形式的快捷 ...
- unity3d 动态添加地面贴图 草地
TerrainData.splatPrototypes = ]{ new SplatPrototype() { texture=Caodi, //Texture2D的贴图 normalMap=null ...