jsp+mysql+servlet的登录

登录代码

  • entity类
package com.wy.entity;
public class User {
	private int id;
	private String username;
	private String password;
	private String email;
	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 getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}
  • userDao接口
package com.wy.dao;
import com.wy.entity.User;
public interface UserDao {
    //保存用户信息
	public void save(User user);
	//登录接口
	public User login(String username,String password);
	//根据用户名查询用户方法接口
	public boolean findByName(String username);
}
  • userDaoImpl(接口的实现)
package com.wy.daoImpl;

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

import com.wy.dao.UserDao;
import com.wy.db.DBUtils;
import com.wy.entity.User;

public class UserDaoImpl implements UserDao {

	@Override
	//保存
	public void save(User user) {
		// TODO Auto-generated method stub
		Connection conn = null;
		PreparedStatement ps = null;
		try {
		//连接数据库
			conn = DBUtils.getConnection();
			//SQL语句
			ps = conn
					.prepareStatement("insert into user(username,password,email)values(?,?,?)");
			//给用户属性动态设置
			ps.setString(1, user.getUsername());
			ps.setString(2, user.getPassword());
			ps.setString(6, user.getEmail());
			ps.executeUpdate();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
		//关闭数据库连接
			DBUtils.close1(ps, conn);
		}

	}

	@Override
	public User login(String username, String password) {
		// TODO Auto-generated method stub
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			conn=DBUtils.getConnection();
			ps=conn.prepareStatement("select * from user where username=? and password=?");
			ps.setString(1, username);
			ps.setString(2, password);
			rs=ps.executeQuery();
			if(rs.next()){
				User user=new User();
				user.setId(rs.getInt("id"));
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
				user.setEmail(rs.getString("email"));
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			DBUtils.close2(rs, ps, conn);
		}
		return null;
	}

	@Override
	public boolean findByName(String username) {
		// TODO Auto-generated method stub
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			conn=DBUtils.getConnection();
			ps=conn.prepareStatement("select * from user where name=?");
			ps.setString(1, username);
			rs=ps.executeQuery();
			if(rs.next()){
				user.setUsername(rs.getString("username"));
				user.setPassword(rs.getString("password"));
			}
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}finally{
			DBUtils.close2(rs, ps, conn);
		}
		return false;
	}

}
  • 数据库的设置
package com.wy.db;

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

public class DBUtils {
    //数据库的连接设置
	static String url="jdbc:mysql://localhost:3306/java";
	static String user="root";
	static String password="wy123";
	static{
		try {
		//加载数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	/**
	 * 建立连接
	 * @throws SQLException
	 * */
	public static Connection getConnection() throws SQLException{
		Connection conn=DriverManager.getConnection(url, user, password);
		return conn;
	}
	/**
	 * 数据库关闭操作1:PreparedStatement ps,Connection conn
	 * */
	public static void close1(PreparedStatement ps,Connection conn){
		if(ps!=null){
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		}
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		}
	}
	/**
	 * 数据库关闭操作2:ResultSet rs,PreparedStatement ps,Connection conn
	 * */
	public static void close2(ResultSet rs,PreparedStatement ps,Connection conn){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		}
		close1(ps, conn);
	}
}
  • 登录Servlet(LoginServlet)
package com.wy.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.wy.daoImpl.UserDaoImpl;
import com.wy.entity.User;

public class LoginServlet extends HttpServlet{
    //doPost方法
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//获取jsp页面参数
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		//实例化userDaoImpl,该类中为接口的实现方法
		UserDaoImpl userDaoImpl=new UserDaoImpl();
		//根据得到的参数信息查询数据库中的用户名以及密码是否匹配
		User user=userDaoImpl.login(username, password);
		//匹配结果是否为空,即该用户是否存在
		if(user!=null){
			request.getSession().setAttribute("user", user);
			request.getRequestDispatcher("message.jsp").forward(request ,response);
		}else {
			request.setAttribute("message", "用户名或密码错误!!!");
			request.getRequestDispatcher("message.jsp").forward(request, response);
		}
	}
}

这次登录的心得体会:在最开始的时候看了一些基础的Servlet视频进行的学习,对于它的页面跳转有一些了解,但是并具体的功能实现。敲代码我觉得是最快的了解语言的方式,这次的登录做完后比刚开始要更加了解Servlet,就如同在刚开始的时候我都不太理解如何区分executeUpdate与executeQuery,所以在去敲的时候有专门去查它们的区别然后再去使用就知道为什么去用它,要去研究它的用法,个人认为比看书要好一些。代码肯定还需要去不断的完善,新人也还在摸索更适合自己的学习道路,希望大家多多指教

时间: 2024-08-27 09:11:27

jsp+mysql+servlet的登录的相关文章

jsp和servlet 简单登录界面(不连接数据库)

1.首先说明一点,虽然很简单但是对于初学者 这个jsp和servlet的链接 我捣鼓了半天才算弄明白 jsp将请求提交到一个url,然后servlet获取也从这个url中获取请求的数据,两者的链接就在那个url jsp中的代码 文件名:login.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <

java毕设---基于bootstrap+jsp+mysql+servlet开发的日记本系统

联系qq:2835777178   有兴趣者可以联系我,也可先查看项目运行视频再决定 系统功能截图 一.系统登录 二.系统主界面 三.写日记界面 四.日记分类管理界面 五.日记类别添加界面 六.个人管理中心

【MVC】Servlet+Jsp+MySql用户登录实例

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文要用Servlet+Jsp+MySql实例用户登录,并简要介绍了下MVC的思想,此例子也是按照这个思路来做的.在Eclipse+tomcat7.0上做的.不会很难,对于了解MVC思想很有帮助! 效果: 这是刚开始的界面 这是错误时的信息 这是成功时的信息 一.MVC简介 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(control

抄袭的用Jsp+JavaBean+Mysql实现的登录和注册

用Jsp+JavaBean+Mysql实现的登录和注册 (2010-11-18 20:54:43) 转载▼ 标签: 软件   共同学习和进步:一个简单的用户登录和注册系统. 代码比较简单,希望对刚开始学习的同学有所帮助. 具体代码如下: *******用户注册页面 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%><html>  <he

JSP+servlet简单登录实例

一个简单的jsp+servlet实例,实现简单的登录 转载▼ http://blog.sina.com.cn/s/blog_5c5bc9070100z7wb.html     开发环境myeclipse+tomcat6 1.先创建web project,项目名为RegisterSystem, 2.在WebRoot 目录下创建login.jsp文件,只需修改body中的内容,如下所示: <body>     <form action="login">     us

Spring MVC +MyBatis +MySQL 简单的登录查询 Demo 解决了mybatis异常

忙活了大半天,饭也没顾得上吃,哎许久不动手,一动手就出事,下面请看今天的重头戏,额吃个饭回来再发了! 1.整体结构 2.准备工作 数据库: --Mysql 5.6 创建数据库 wolf CREATE DATABASE wolf; 创建用户表 user create table user( id int  AUTO_INCREMENT  primary key, name varchar(25) not null, pwd varchar(20) not null, create_time dat

JSP程序编写用户注册登录系统,登录成功后显示此用户的登录次数

刚来公司实习,老大让我们分别用JSP和servlet写一个用户的登录和注册系统.经过这两天的奋斗,终于算是搞定了(至少我这么认为······) 这一篇贴一下用JSP写的代码,下一篇贴一下用servlet写的~~ 文件位置和类库位置如图: 代码如下: login.jsp 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" 2 pageEncoding="ISO-8

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验. 1.说一说Servlet生命周期(非常重要) Servlet生命周期包括三部分: 初始化:Web容器加载servlet,调用init()方法 只执行一次 处理请求:当请求到达时,运行其service()方法.service()自动调用与请求相对应的doXXX

(转载)关于JSP和Servlet乱码处理

JSP和Servlet的中文乱码处理 前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下.应该是可以解决日常的乱码问题了.现在作以下总结希望对需要的人有所帮助.我也是刚学,所以有不足之处希望谅解. 一.表单提交时出现乱码: 在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式.所以请求的时候便有get请求和post请求.以前我一直以为get请求和post请求方式出现的乱码的解决方式是一