javaweb登录注册功能实现 javaweb 登陆注册 入门 mysql数据库交互 web前后台交互 用户管理增删改查 实现登录 注册 登陆 JavaWeb 简单登陆注册「建议收藏」

javaweb登录注册功能实现 javaweb 登陆注册 入门 mysql数据库交互 web前后台交互 用户管理增删改查 实现登录 注册 登陆 JavaWeb 简单登陆注册「建议收藏」用户登录注册流程图老版:新版:登陆界面注册界面登陆成功界面LoginServletimportjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servle…

大家好,又见面了,我是你们的朋友全栈君。

用户登录注册流程图

老版:

javaweb登录注册功能实现 javaweb 登陆注册 入门 mysql数据库交互 web前后台交互 用户管理增删改查 实现登录 注册 登陆 JavaWeb 简单登陆注册「建议收藏」

新版:

javaweb登录注册功能实现 javaweb 登陆注册 入门 mysql数据库交互 web前后台交互 用户管理增删改查 实现登录 注册 登陆 JavaWeb 简单登陆注册「建议收藏」

 

登陆界面

javaweb登录注册功能实现 javaweb 登陆注册 入门 mysql数据库交互 web前后台交互 用户管理增删改查 实现登录 注册 登陆 JavaWeb 简单登陆注册「建议收藏」

注册界面

javaweb登录注册功能实现 javaweb 登陆注册 入门 mysql数据库交互 web前后台交互 用户管理增删改查 实现登录 注册 登陆 JavaWeb 简单登陆注册「建议收藏」

登陆成功界面

javaweb登录注册功能实现 javaweb 登陆注册 入门 mysql数据库交互 web前后台交互 用户管理增删改查 实现登录 注册 登陆 JavaWeb 简单登陆注册「建议收藏」

LoginServlet

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.wzc.login.dao.UserDao;
import com.wzc.login.domain.User;

/**
 * @description 登录请求处理类
 * @author WANGZIC
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		//接收表单信息
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String verifyc  = request.getParameter("verifycode");
		//设置回显
		request.setAttribute("username", username);
		request.setAttribute("password", password);
		request.setAttribute("verifycode", verifyc);
		//获取验证码
		String svc =(String) request.getSession().getAttribute("sessionverify");
		//根据用户名查询用户
		User user =new UserDao().findUser(username);
		if(!svc.equalsIgnoreCase(verifyc)){
			request.setAttribute("loginError", "* 验证码错误");
			request.getRequestDispatcher("/login.jsp").forward(request, response);
			return;
		}
		if(user!=null){
			if(user.getPassword().equals(password)){
				request.getSession().setAttribute("user", user);
				response.sendRedirect("index.jsp");
			}else {
				request.setAttribute("loginError", "* 密码错误");
				request.getRequestDispatcher("/login.jsp").forward(request, response);
			}
		}else {
			request.setAttribute("loginError", "* 用户不存在");
			request.getRequestDispatcher("/login.jsp").forward(request, response);
		}
		
	}
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

}

RegistServlet

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.wzc.login.dao.UserDao;

/**
 * @description 注册请求处理类
 * @author WANGZIC
 */
@WebServlet("/RegistServlet")
public class RegistServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String rpsw = request.getParameter("rpsw");
		if(username==null||username.trim().isEmpty()){
			request.setAttribute("registError", "用户名不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		if(password==null||password.trim().isEmpty()){
			request.setAttribute("registError", "密码不能为空");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		if(!password.equals(rpsw)){
			request.setAttribute("registError", "密码不一致");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
			return;
		}
		UserDao u = new UserDao();
		boolean res = u.addUser(username,password);
		if(res){
			response.sendRedirect("index.jsp");
		}else {
			request.setAttribute("registError", "注册失败,该用户名已存在");
			request.getRequestDispatcher("/regist.jsp").forward(request, response);
		}
	}
	
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
}

LogoutServlet

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;

/**
 * Servlet implementation class LogoutServlet
 */
@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public LogoutServlet() {
        super();
    }
    
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.getSession().removeAttribute("user");
		response.sendRedirect("login.jsp");
	}

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

}

VerifyCodeServlet

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @description 验证码请求生成处理类
 * @author WANGZIC
 */
@WebServlet("/VerifyCodeServlet")
public class VerifyCodeServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		VerifyCode vc = new VerifyCode();
		request.getSession().setAttribute("sessionverify", vc.getText());
		vc.outputImage(90,35,response.getOutputStream());
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
	
	
	/**
	 * 验证码生成工具内部类
	 * @author WANGZIC
	 *
	 */
	static class VerifyCode {

		private static final char[] CHARS = { '2', '3', '4', '5', '6', '7', '8','9',
				'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M',
				'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' };

		private static Random random = new Random();

		private String text ;
		
		public String getText() {
			StringBuffer buffer = new StringBuffer();
			for (int i = 0; i < 4; i++) {
				buffer.append(CHARS[random.nextInt(CHARS.length)]);
			}
			text = buffer.toString();
			return text;
		}

		public void outputImage(int width,int height,OutputStream out) throws IOException{
			Color color = new Color(random.nextInt(255), random.nextInt(255), random.nextInt(255));
			Color reverse = new Color(255 - color.getRed(), 255 - color.getGreen(), 255 - color.getBlue());
			BufferedImage bi = new BufferedImage(width, height,BufferedImage.TYPE_INT_RGB);
			Graphics2D g = bi.createGraphics();
			g.setFont(new Font(Font.SANS_SERIF, Font.BOLD, 25));
			g.setColor(color);
			g.fillRect(0, 0, width, height);
			g.setColor(reverse);
			g.drawString(text, 10, 26);
			for (int i = 0, n = random.nextInt(80); i < n; i++) {
				g.drawRect(random.nextInt(width), random.nextInt(height), 1, 1);
			}
			ImageIO.write(bi, "JPEG", out);
		}
	}
}

User

public class User {
	
	private String username;
	
	private String password;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	
}

UserDao

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.wzc.login.domain.User;
/**
 * @description 数据库连接与操作类用于增删改查数据并返回给servlet使用
 * @author WANGZIC
 *
 */
public class UserDao {
	/*
	 * 数据库中运行下面的语句
	  	CREATE TABLE `user` (
		  `username` varchar(255) NOT NULL,
		  `password` varchar(255) DEFAULT NULL,
		  PRIMARY KEY (`username`)
		) ENGINE=InnoDB DEFAULT CHARSET=utf8;
	*/
	
	//根据用户名查找用户密码
	public User findUser(String username){
		String sql = "select * from user where username=?";
		Connection con =getConnection();
		PreparedStatement pstmt =null;
		ResultSet rs = null;
		User user = new User();
		try {
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1, username);
			rs = pstmt.executeQuery();
			if(rs.next()){
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			try {
				if(pstmt!=null)pstmt.close();
				if(con!=null)con.close();
			} catch (SQLException e) {		
				e.printStackTrace();
			}
		}
		return user;
	}
	//添加用户
	public boolean addUser(String username,String psw){
		Connection con = getConnection();
		PreparedStatement pstmt =null;
		String sql = "INSERT INTO user(username,password) VALUES(?,?)";
		boolean res = false;
		try {
			pstmt = con.prepareStatement(sql);
			pstmt.setString(1, username);
			pstmt.setString(2, psw);
			res = (pstmt.executeUpdate()==1);
		}catch (SQLException e) {
			if(!e.getMessage().contains("PRIMARY")){
				e.printStackTrace();
			}
		}finally {
			try {
				if(pstmt!=null)pstmt.close();
				if(con!=null)con.close();
			}catch (SQLException e) {	
				e.printStackTrace();
			}
		}
		return res;
	}
	//获得连接
	public static Connection getConnection(){
		String driver ="com.mysql.jdbc.Driver";//记得依赖mysql-jdbc驱动包
		String url ="jdbc:mysql://localhost:3306/mytest";//修改为自己的数据库
		String user ="root";//修改未自己数据库的用户名密码
		String password ="root";//修改未自己数据库的名密码
		Connection connection =null;
		try {
			Class.forName(driver);
			connection =DriverManager.getConnection(url, user, password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return connection;
	}
	public static void main(String[] args) {
		//测试方法
//		System.out.println(new UserDao().findUser("123"));
//		new UserDao().addUser("1345", "1345");
	}


	
}

新增了用户管理功能(对用户的增删改查)

有问题可以加QQ群:483411192
源码下载 下载完源码之后请仔细阅读README.md文件,导入运行步骤和数据库表结构都在里面

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136600.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 傅里叶变换概念及公式推导

    傅里叶变换概念及公式推导傅里叶变换傅里叶变换的目的是可将时域(即时间域)上的信号转变为频域(即频率域)上的信号,随着域的不同,对同一个事物的了解角度也就随之改变,因此在时域中某些不好处理的地方,在频域就可以较为简单的处理。傅里叶变换公式:(w代表频率,t代表时间,e^-iwt为复变函数)傅里叶变换认为一个周期函数(信号)包含多个频率分量,任意函数(信号)f(t)可通过多个周期函数(基函数)相加而合成。从物理角度

    2022年7月17日
    45
  • Delphi QuotedStr函数的原型

    Delphi QuotedStr函数的原型DelphiQuotedStr函数的原型functionQuotedStr(constS:string):string;
    var
     I:Integer;
    begin
     Result:=S;
     forI:=Length(Result)downto1do
       ifResult[I]=””thenInsert(””,Result,I);
     Result:=””+Resul

    2022年10月18日
    2
  • 在线视频加密播放(加密视频观看)

    在线视频加密播放(加密视频观看)功能描述:1.在线视频加密播放(加密视频观看) 2.视频播放密码/设定观看密码功能,对视频文件设置观看权限,划分学员和游客,学员输入正确的密码即可观看视频。STEP1登录酷播云管理平台,选择“视频列表”,点选对应视频,之后选择”视频设置”,即会弹出如下设置窗口,从“设置密码”中设定视频观看密码。图1:视频播放密码/设定观看密码功能STEP2用户观看端效果如下,支持PC端和移动端的播放密码功能。图2:视频播放密码/设定观看密码功能STEP3用户输入的

    2022年5月27日
    94
  • flash的计算机知识,Flash CS6计算机动画设计教程[通俗易懂]

    flash的计算机知识,Flash CS6计算机动画设计教程[通俗易懂]FlashCS6计算机动画设计教程语音编辑锁定讨论上传视频《FlashCS6计算机动画设计教程》是2014年中国铁道出版社出版的图书,作者是耿增民、刘正东、孙晓东、陈春丽。书名FlashCS6计算机动画设计教程作者耿增民刘正东孙晓东陈春丽ISBN9787113179380页数200出版社中国铁道出版社出版时间2014-03-01装帧平装开本16开版…

    2022年5月8日
    35
  • 内网安全 信息收集(收集内网计算机的所有信息 进行攻击.)

    内网安全 信息收集(收集内网计算机的所有信息 进行攻击.)?“信息收集”会对渗透测试工程师和网络安全工程师具有重大作用:???在渗透测试人员进入一个内网后,面对的是一片“未知的区域”,所以渗透测试人员首先会对当前所处的网络环境进行判断,通常的判断分为三种.?(1)我是谁?——对计算机的角色进行判断.?(2)我在哪?——对目前机器所处位置区域的判断。?(3)这是哪?——对目前机器所处网络环境的拓扑结构进行分析和判断。

    2022年6月29日
    22
  • 解决NVIDIA显卡驱动 图形驱动程序安装失败 问题

    解决NVIDIA显卡驱动 图形驱动程序安装失败 问题本教程是在当你尝试一般的教程都无法解决问题的前提下使用,比如使用DDU工具卸载原显卡驱动后重新安装无效,找不到独立显卡的情况。退出火绒等杀毒软件win+R输入services.msc进入服务。将WindowsUpdata启动类型改为自动,并启动服务。win+R输入gpedit.msc进入本地策略编辑器。在计算机配置-模板管理-系统-设备安装-设备安装限制中双击图中第三个将其改为未配置或禁用重新安装显卡驱动即可…

    2022年5月6日
    842

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号