您的位置:首页 > 数据库 > MySQL

JDBC+Servlet+JSP+Mysql写的一个简单的登录注册

2017-06-29 13:50 826 查看

一.代码的结构:



二.用到的开发工具:

         ecliopse、tomcat 7.0、navicat for mysql

       用到的架包:

        mysql-connector-java-5.1.25-bin.jar

三.开发的代码:

3.1 User类:

package com.demo.bean;

public class User {
private Integer id;
private String name;
private String password;
private int role;
public User() {
super();
// TODO Auto-generated constructor stub
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
}

3.2 JdbcUtils代码:
package com.demo.utils;

import java.io.IOException;
import java.io.InputStream;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;

public class JdbcUtils {
//注册驱动的工具类

private static String url = null;

private static String user = null;

private static String password = null;

private static String dv = null;

static{

Properties prop = new Properties();

InputStream in = JdbcUtils.class.getResourceAsStream("/a.properties");

try {
prop.load(in);

url = prop.getProperty("url");
user = prop.getProperty("user");

password = prop.getProperty("123456");

dv = prop.getProperty("driver");

/*System.out.println("url:"+url);*/

//注册驱动
try {
Class.forName(dv);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

//获取连接对象
public static Connection getCon() throws SQLException{
Connection conn = null;

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

return conn;
}

//关闭的方法
public static void close(Statement statement,Connection conn){
if(statement !=null){
try {
statement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

//关闭的方法
public static void close(PreparedStatement preparedStatement,Connection conn,ResultSet resultSet){
if(preparedStatement !=null){
try {
preparedStatement.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(conn !=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

if(resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}




3.3 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"
4000
content="text/html; charset=ISO-8859-1">
<title>登录界面</title>
<style type="text/css">
body{
background-image:url(images/timg.jpg);
background-position:center;
background-repeat:no-repeat;
}

</style>
</head>

<body>
<div style="text-align:center;margin-top:120px">
<h2>小星的主页</h2>
<form action="LoginServlet" method="post">
<table style="margin-left:40%">
<marquee width="200"scrolldelay="250">用户登录</marquee>

<tr>
<td>登录名:</td>
<td><input name="username" type="text" size="21"></td>
</tr>
<tr>
<td>密码:</td>
<td><input name="password" type="password" size="21"></td>
</tr>
</table>
<input type="submit" value="登录">
<input type="reset" value="重置">
</form>
<br>
<a href="register.jsp">注册</a>
</div>
</body>
</html>
3.4
LoginServlet代码:
package com.demo.service;

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.demo.bean.User;
import com.demo.dao.UserDAO;

/**
* Servlet implementation class LoginServlet
*/
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
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 {
doPost(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected 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");
UserDAO userDAO=new UserDAO();
User user=userDAO.login(username, password);
if(user!=null){
request.getRequestDispatcher("success.jsp").forward(request, response);;
}else{
request.getRequestDispatcher("error.jsp").forward(request, response);
}

}
}
3.5 UserDAO代码:
package com.demo.dao;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.demo.bean.User;
import com.demo.utils.JdbcUtils;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;

public class UserDAO {
//数据库连接对象
public User login(String username,String password) {
User u=null;
Connection connection =null;
PreparedStatement pstmt=null;
ResultSet resultSet=null;

//赋值
try {
connection=JdbcUtils.getCon();
//静态sql语句
String sql = "select * from user where name=? and password=?";
pstmt = (PreparedStatement) connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
resultSet = pstmt.executeQuery();
if(resultSet.next()){
u=new User();
u.setName(resultSet.getString("name"));
u.setPassword(resultSet.getString("password"));
System.out.println("登录成功!");
}else{
System.out.println("用户名或者密码错误!");
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JdbcUtils.close(pstmt, connection);
}
return u;

}
public void addUser(User user) {
Connection connection = null;
PreparedStatement psmt = null;
try {
connection = JdbcUtils.getCon();

String sql ="insert into user(id,name,password,role)values(?,?,?,?);";

psmt = (PreparedStatement) connection.prepareStatement(sql);

//运用实体对象进行参数赋值
psmt.setInt(1, user.getId());
psmt.setString(2, user.getName());
psmt.setString(3,user.getPassword());
psmt.setInt(4, user.getRole());
psmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
JdbcUtils.close(psmt, connection);
}
}
}


3.6 Register.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=ISO-8859-1">
<title>注册界面</title>
<style type="text/css">
body{
background-image:url(images/tim.jpg);
background-position:center;
background-repeat:no-repeat;
}

</style>
</head>
<body>
<div style="text-align:center;margin-top:120px">
<h1 >请注册</h1>
<form action="RegisterServlet" method="post">
<table style="margin-left:40%">
<caption>用户注册</caption>
<tr>
<td>ID:</td>
<td><input name="id" type="text" size="20"></td>
</tr>
<tr>
<td>登录名:</td>
<td><input name="name" type="text" size="20"></td>
</tr>
<tr>
<td>密码:</td>
<td><input name="password" type="password" size="20"></td>
</tr>
<tr>
<td>角色:</td>
<td><input name="role" type="text" size="20"></td>
</tr>
</table>
<input type="submit" value="注册">
<input type="reset" value="重置">
</form>
<br>
<a href="login.jsp">登录</a>
</div>
</body>
</html>
3.7 RegisterServlet代码:

package com.demo.service;

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.demo.bean.User;
import com.demo.dao.UserDAO;

/**
* Servlet implementation class RegisterServlet
*/
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
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 {
doPut(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
int id=Integer.valueOf(request.getParameter("id"));
String name=request.getParameter("name");
String password=request.getParameter("password");
int role=Integer.valueOf(request.getParameter("role"));
User user=new User();
user.setId(id);
user.setName(name);
user.setPassword(password);
user.setRole(role);
UserDAO userDAO=new UserDAO();
userDAO.addUser(user);
System.out.println("注册成功");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}



3.8 数据库表:
 


  四.页面的效果:

    4.1登录界面:

    


   4.2 注册页面:
    


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: