Web连接数据库登录注册功能实现(学习笔记)
package com.test.dao;
import com.test.domain.User;
public interface UserDao {
//接口或得UserServicelmpl得到的user数据
public void addUser(User user) throws Exception;
//接口 返回User
public User addlogin(User user)throws Exception;
}
package com.test.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import com.sun.xml.internal.ws.api.pipe.NextAction;
import com.test.dao.UserDao;
import com.test.domain.User;
import com.test.utils.DBUtils;
//接口
public class UserDaoImpl implements UserDao {
//实现方法,将从用户获得user,然后再连接数据库实现封装好的数据库方法
public void addUser(User user) throws Exception {
Connection conn=null;
PreparedStatement ps=null;
try {
System.out.println(“我来到数据库门外了”);
System.out.println("-----"+user.getUsername()+"-------");
//连接数据库,
conn=DBUtils.getConnection();
//将sql语句使用注入的方式传到数据库
ps=conn.prepareStatement("insert into users " +
“(username,password,email,birthday)values (?,?,?,?)”);
//user的用户名
ps.setString(1,user.getUsername());
//user的密码
ps.setString(2, user.getPassword());
//user的邮件
ps.setString(3, user.getEmail());
//用户的生日
SimpleDateFormat sdf=new SimpleDateFormat(“yyy-MM-dd”);
String date=sdf.format(user.getBirthday());
ps.setString(4, date);
int i=ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭数据连接
DBUtils.closeAll(null, ps, conn);
}
} //实现接口的方法 public User addlogin(User user) throws Exception { //连接数据库 Connection conn=null; //传送sql PreparedStatement ps=null; //返回 ResultSet rs=null; User u=null; try { //加载驱动 conn=DBUtils.getConnection(); //将sql语句传送给数据库,and前后之间有空格 ps=conn.prepareStatement("select *from users where username=? and password=?"); //注入user.getUsername,getpassword ps.setString(1, user.getUsername()); ps.setString(2, user.getPassword()); //执行命令 rs=ps.executeQuery(); //如果存在 if(rs.next()){ System.out.println("登录成功!"); //将数据取到的值放入u中 u=new User(); u.setId(rs.getInt(1)); u.setUsername(rs.getString(2)); u.setPassword(rs.getString(3)); u.setEmail(rs.getString(4)); u.setBirthday(rs.getDate(5)); }else{ System.out.println("账号密码错误,请重新登录"); } } catch (Exception e) { e.printStackTrace(); }finally{ //关闭连接 DBUtils.closeAll(rs,ps, conn); } return u; }
}
package com.test.domain;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable{
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
private String username;
private String email;
private String password;
private Date birthday;
}
package com.test.service;
import com.test.domain.User;
public interface UserService {
//接口获取到RegServler得到的user数据
public void register(User user) throws Exception;
//接口获得user用户user
public User relogin(User user);
}
package com.test.service.impl;
import com.test.dao.UserDao;
import com.test.dao.impl.UserDaoImpl;
import com.test.domain.User;
import com.test.service.UserService;
//引用接口
public class UserServiceImpl implements UserService {
//引用UserService后得到从用户传回来的user数据, UserDao userDao=new UserDaoImpl(); public void register(User user) throws Exception { //将user传到user中 userDao.addUser(user); } //实现接口的方法 public User relogin(User user) { User u=null; try { //拿到user的数据,返回u u=userDao.addlogin(user); } catch (Exception e) { e.printStackTrace(); } return u; }
}
package com.test.utils;
import java.sql.*;
import java.util.ResourceBundle;
public class DBUtils {
private static String driverClass;
private static String url;
private static String username;
private static String password;
static{ //从配置文件dbinfo.properties获得 driverClass,url,username,password ResourceBundle rb=ResourceBundle.getBundle("dbinfo"); driverClass = rb.getString("driverClass"); url=rb.getString("url"); username=rb.getString("username"); password=rb.getString("password"); try{ //加载驱动 Class.forName(driverClass); }catch(ClassNotFoundException e){ e.printStackTrace(); } } public static Connection getConnection() throws Exception{ //创建连接 return DriverManager.getConnection(url,username,password); } public static void closeAll(ResultSet rs,PreparedStatement stmt,Connection conn) { try { if(rs!=null){rs.close();} if(stmt!=null){stmt.close();} if(conn!=null){conn.close();} } catch (SQLException e) { e.printStackTrace(); } }
}
package com.test.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import com.test.domain.User;
import com.test.service.UserService;
import com.test.service.impl.UserServiceImpl;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); User u=new User(); try { //使用阿帕奇公司的提供的方法获取表单数据 BeanUtils.populate(u, request.getParameterMap()); //处理业务 UserService user=new UserServiceImpl(); u=user.relogin(u); } catch (Exception e) { e.printStackTrace(); } //分发转向,将获得u的数据的转发index.jsp request.setAttribute("u", u); request.getRequestDispatcher("/index.jsp").forward(request, response); }
}
package com.test.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.Converter;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import com.test.domain.User;
import com.test.service.UserService;
import com.test.service.impl.UserServiceImpl;
public class RegServler extends HttpServlet {
private static SimpleDateFormat sdf=new SimpleDateFormat(“yyy-MM-dd”);
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("--------我来到这里乐-----"); //请求客户端使用utf-8解析 request.setCharacterEncoding("UTF-8"); //响应回去 response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); //获取表单数据 System.out.println("--------我来到这里乐-----"); User user=new User(); try {
// ConvertUtils.register(new Converter() {
//
// public Object convert(Class type, Object value) {
// if(value instanceof String){
// String date =(String) value;
// SimpleDateFormat sdf=new SimpleDateFormat(“yyy-MM-dd”);
// Date date1=null;
// try {
// date1= sdf.parse(date);
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// return value;
// }
// }, Date.class);
//转换Date类型
ConvertUtils.register(new DateLocaleConverter(), Date.class);
//将表达中的数据存到uesr中
BeanUtils.populate(user, request.getParameterMap());
// System.out.println(request.getParameter(“username”));
// user.setUsername(request.getParameter(“username”));
// user.setUsername(request.getParameter(“username”));
// user.setPassword(request.getParameter(“password”));
// user.setEmail(request.getParameter(“email”));
// Date date=sdf.parse(request.getParameter(“birthday”));
// user.setBirthday(date);
//
} catch (Exception e) { e.printStackTrace(); } //调用业务逻辑 // UserService us=new UserServiceImpl(); try { //调用register,将user传入 us.register(user); } catch (Exception e) { e.printStackTrace(); } //分发转向 response.getWriter().write("注册成功!一秒跳转登录页面……"); response.setHeader("refresh","1;url="+request.getContextPath()+"/index.jsp" ); }
}
//配置文件dbinfo.properties
driverClass =com.microsoft.sqlserver.jdbc.SQLServerDriver
url=jdbc:sqlserver://localhost:1433;DatabaseName=DBLogin
username=sa
password=123
//index.jsp 主页面
<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"😕/"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->登录 注册 欢迎你:${u.username} 登录
注销
//https://blog.csdn.net/ssq_qss/article/details/reg.jsp 登录的页面
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
https://blog.csdn.net/ssq_qss/article/details/login.jsp
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
密码
- 点赞
- 收藏
- 分享
- 文章举报
- 【J2EE核心开发学习笔记 010】struts2的搭建及连接数据库实现用户注册与登录
- 【个人学习】使用idea搭建SpringBoot,整合Mybatis、Thymeleaf,连接数据库,实现具有前端界面项目:主要功能登录,注册,个人信息查看、更改,不定时更新中...
- Javaweb学习阶段总结(一)【IDEA_JAVA-WEB工程创建;入门Java-web工程(含数据库)的框架结构;网页用户注册功能实现代码】
- node.js学习笔记(3)-node.js结合mysql数据库实现的web项目中常见功能--登录验证、session传值、拦截器、ajax传值等
- 使用JFinal框架连接数据库,实现注册、登录功能
- 【web】CodeIgniter框架学习笔记 之 使用ajax连接数据库实现Echarts动态数据可视化
- node.js---study2 连接池连接数据库实现登录注册查询用户的功能---
- spring 3.x 学习笔记_spring mvc、spring jdbc 实现网站的登录注册功能
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- 使用JFinal框架连接数据库,实现注册、登录功能
- Python学习笔记_02:使用Tkinter连接MySQL数据库实现登陆注册功能
- java之页面连接eclipse连接数据库实现注册,登录功能
- 用Python实现web端用户登录和注册功能的教程
- iOS学习笔记55- iOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- 用Python实现web端用户登录和注册功能的教程
- JAVA 用于练手的超简单登录注册,jdbc实现【学习笔记】
- 数据库基础入门(四)— — 产品功能实现之数据库架构与用户登录注册
- 【Java学习笔记】19.登录和注册案例(IO流实现)
- 【web开发笔记】mybatis实现新建内容,提交,并存入数据库功能
- Vue+Vue Router+Axios+Webpack+Flask+MySQL实现简单的注册、登录验证功能