java 用户登录 service_Java Web总结十三之一用户登录与注册

一、用户登录与注册使用了如下技术:

1、Jsp+Servlet+JavaBean+Jdbc+Mysql+DAO单例工厂设计模式+属性文件配置。

2、在JavaBean中注册了日期转化函数。

3、MySql的日期类型与Java的日期类型之间的处理。

二、类结构图和需导入的包如下图所示:

024760a5bd1b34aa44a62f14f7fac1e7.png

d643fd2b600ec818b5c68c61cd4daf20.png

8f3eab575f6671cf20d789201dc0007c.png

三、具体代码

1、DbConfig.properties:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/mydb3

user=root

password=root

2、IUserDao.java:

packagecom.gnnuit.web.login.dao;importcom.gnnuit.web.login.domain.UserInfo;public interfaceIUserDao {//查询用户名、密码是否存在

public booleanfind(String username, String password);//增加用户

public booleanadd(UserInfo userinfo);

}

3、UserDao.java:

packagecom.gnnuit.web.login.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importcom.gnnuit.web.login.domain.UserInfo;importcom.gnnuit.web.login.util.JDBCUtil;public class UserDao implementsIUserDao {

@Overridepublic booleanfind(String username, String password) {boolean flag = false;

Connection conn= null;

PreparedStatement pstmt= null;

ResultSet rs= null;

String sql= "select * from user where username=? and password=?";try{

conn=JDBCUtil.getMySqlConnection();

pstmt=conn.prepareStatement(sql);

pstmt.setString(1, username);

pstmt.setString(2, password);

rs=pstmt.executeQuery();if(rs.next()) {

flag= true;

}

}catch(Exception e) {

e.printStackTrace();

}finally{

JDBCUtil.close(rs);

JDBCUtil.close(pstmt);

JDBCUtil.close(conn);

}returnflag;

}

@Overridepublic booleanadd(UserInfo userinfo) {boolean flag = false;

Connection conn= null;

PreparedStatement pstmt= null;

String sql= "insert into user(username,password,birthday,salary) values(?,?,?,?)";try{

conn=JDBCUtil.getMySqlConnection();

pstmt=conn.prepareStatement(sql);

pstmt.setString(1, userinfo.getUsername());

pstmt.setString(2, userinfo.getPassword());

pstmt.setDate(3,newjava.sql.Date(userinfo.getBirthday().getTime()));

pstmt.setInt(4, userinfo.getSalary());

pstmt.executeUpdate();

flag= true;

}catch(Exception e) {

}finally{

JDBCUtil.close(conn);

JDBCUtil.close(pstmt);

}returnflag;

}

}

4、user.sql:

drop table ifexists user;

create tableifnot exists user(

id INTEGER primary key auto_increment,

username VARCHAR(100) not null,

password VARCHAR(100) not null,

birthday DATE,

salary INTEGER

);

insert into user(username,password) values('jack','000000');

insert into user(username,password) values('marry','111111');

5、UserInfo.java:

packagecom.gnnuit.web.login.domain;importjava.util.Date;public classUserInfo {privateString username;privateString password;privateDate birthday;private intsalary;publicUserInfo() {

}publicString getUsername() {returnusername;

}public voidsetUsername(String username) {this.username =username;

}publicString getPassword() {returnpassword;

}public voidsetPassword(String password) {this.password =password;

}publicDate getBirthday() {returnbirthday;

}public voidsetBirthday(Date birthday) {this.birthday =birthday;

}public intgetSalary() {returnsalary;

}public void setSalary(intsalary) {this.salary =salary;

}

}

6、DaoFactory.java:

packagecom.gnnuit.web.login.factory;importcom.gnnuit.web.login.dao.IUserDao;importcom.gnnuit.web.login.dao.UserDao;//访问数据库的工厂(单例)

public classDaoFactory {privateDaoFactory() {

}private staticDaoFactory daoFactory;public staticDaoFactory getDaoFactory() {if (daoFactory == null) {

daoFactory= newDaoFactory();

}returndaoFactory;

}publicIUserDao getUserDao() {return newUserDao();

}

}

7、UserService.java:

packagecom.gnnuit.web.login.service;importcom.gnnuit.web.login.dao.IUserDao;importcom.gnnuit.web.login.domain.UserInfo;importcom.gnnuit.web.login.factory.DaoFactory;public classUserService {private IUserDao dao =DaoFactory.getDaoFactory().getUserDao();public booleanlogin(String username, String password) {boolean flag = false;

flag=dao.find(username, password);returnflag;

}public booleanregister(UserInfo userinfo) {boolean flag = false;

flag=dao.add(userinfo);returnflag;

}

}

8、JDBCUtil.java:

packagecom.gnnuit.web.login.util;importjava.io.IOException;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.Properties;public final classJDBCUtil {private staticString driver;private staticString url;private staticString user;private staticString password;//静态块:加载配置文件

static{

Properties prop= newProperties();

InputStream is= JDBCUtil.class.getClassLoader().getResourceAsStream("com/gnnuit/web/login/config/DbConfig.properties");try{

prop.load(is);

driver= prop.getProperty("driver");

url= prop.getProperty("url");

user= prop.getProperty("user");

password= prop.getProperty("password");

}catch(IOException e) {

e.printStackTrace();

}

}//静态块:注册驱动

static{try{

Class.forName(driver);

}catch(ClassNotFoundException e) {

e.printStackTrace();

}

}//获取MySql数据库的连接

public static Connection getMySqlConnection() throwsSQLException {

Connection conn=DriverManager.getConnection(url, user, password);returnconn;

}//关闭数据库

public static voidclose(ResultSet rs) {if (rs != null) {try{

rs.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}public static voidclose(Statement stmt) {if (stmt != null) {try{

stmt.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}public static voidclose(Connection conn) {if (conn != null) {try{

conn.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}

9、UserServlet.java:

packagecom.gnnuit.web.login.web;importjava.io.IOException;importjava.lang.reflect.InvocationTargetException;importjava.util.Enumeration;importjava.util.Locale;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.commons.beanutils.BeanUtils;importorg.apache.commons.beanutils.ConvertUtils;importorg.apache.commons.beanutils.locale.converters.DateLocaleConverter;importcom.gnnuit.web.login.domain.UserInfo;importcom.gnnuit.web.login.service.UserService;public class UserServlet extendsHttpServlet {private static final long serialVersionUID = 1L;public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

}public voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

request.setCharacterEncoding("utf-8");

String method= request.getParameter("method");if (method != null) {if ("login".equals(method)) {

login(request, response);

}else if ("register".equals(method)) {

register(request, response);

}

}

}private voidlogin(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

String username= request.getParameter("username");

String password= request.getParameter("password");

UserService userService= newUserService();boolean flag =userService.login(username, password);if(flag) {

request.setAttribute("message", "登录成功");

}else{

request.setAttribute("message", "登录失败");

}

request.getRequestDispatcher("/message.jsp").forward(request, response);

}private voidregister(HttpServletRequest request,

HttpServletResponse response)throwsServletException, IOException {

UserInfo userinfo= newUserInfo();

Enumeration names =request.getParameterNames();

ConvertUtils.register(newDateLocaleConverter(Locale.getDefault(),"yyyy-MM-dd"), java.util.Date.class);while(names.hasMoreElements()) {

String name=names.nextElement();try{

BeanUtils.setProperty(userinfo, name,

request.getParameterValues(name));

}catch(IllegalAccessException e) {//TODO Auto-generated catch block

e.printStackTrace();

}catch(InvocationTargetException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

UserService userService= newUserService();boolean flag =userService.register(userinfo);if(flag) {

request.setAttribute("message", "注册成功");

}else{

request.setAttribute("message", "注册失败");

}

request.getRequestDispatcher("/message.jsp").forward(request, response);

}

}

10、login.jsp:

My JSP 'index.jsp' starting page
登录
用户名
密码

11、message.jsp:

My JSP 'message.jsp' starting page

12、register.jsp:

My JSP 'register.jsp' starting page
注册
用户名
密码
生日
期望薪水
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值