Conn.java
package cn.cheen.utils;
import java.sql.*;
public class Conn {
public static Connection getConnection(){
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/toyfun?useUnicode=true&characterEncoding=UTF-8";
String user="root";
String password="x5";
conn=DriverManager.getConnection(url,user,password);
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void release(Connection conn){
if(conn!=null)
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public static void release(PreparedStatement pstmt){
if(pstmt!=null)
try{
pstmt.close();
}catch(SQLException e){
e.printStackTrace();
}
}
public static void release(ResultSet rs){
if(rs!=null)
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
JSP页面
使用JSTL需要JSP页面头部写入
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
form部分 login.jsp <form action="Login" method="post">
<div class="form-group col-md-4 col-md-offset-4">
<input class="form-control" type="text" name="username" value="" placeholder="用户名">
</div>
<div class="form-group col-md-4 col-md-offset-4">
<input class="form-control" type="password" name="password" value="" placeholder="密码">
</div>
<div class="col-md-4 col-md-offset-4" style="text-align: center;">
<input class="btn btn-primary" type="submit" value="登录">
</div>
<div class="col-md-12" style="text-align: center;">
<span><font color="red">${loginms }</font></span>
<h3></h3>
</div>
<div class="col-md-12" style="text-align: center; margin-top: 10px;">
<a href="index.jsp">忘记密码?</a> <a href="register.jsp">前去注册</a>
</div>
</form>
register.jsp
<form action="Register" method="post">
<div class="form-group col-md-4 col-md-offset-4">
<input class="form-control" type="text" name="username" value="" placeholder="用户名">
</div>
<div class="form-group col-md-4 col-md-offset-4">
<input class="form-control" type="password" name="password" value="" placeholder="密码">
</div>
<div class="form-group col-md-4 col-md-offset-4">
<input class="form-control" type="password" name="repassword" value="" placeholder="确认密码">
</div>
<div class="form-group col-md-4 col-md-offset-4">
<input class="form-control" type="text" name="email" value="" placeholder="邮箱">
</div>
<div class="col-md-4 col-md-offset-4" style="text-align: center;">
<input class="btn btn-default" type="reset" value="重置"> <input class="btn btn-primary" type="submit" value="提交">
</div>
<div class="col-md-12">
<h3></h3>
</div>
<div class="col-md-12" style="text-align: center; margin-top: 10px;">
<a href="index.jsp">返回主页</a> <a href="login.jsp">前去登录</a>
</div>
</form>
Servlet:Login.java:dopost()
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
UserDaoImpl userDaoImpl = new UserDaoImpl();
User user=userDaoImpl.Login(username, password);
if(user!=null){
request.getSession().setAttribute("user", user);
// request.getRequestDispatcher("index.jsp").forward(request, response);
response.sendRedirect("/Index.jsp");
}else{
request.setAttribute("loginms", "帐号或密码错误");
request.getRequestDispatcher("login.jsp").forward(request, response);
}
Register.java:dopost()
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setEmail(email);
UserDaoImpl userDaoImpl = new UserDaoImpl();
boolean succeed = userDaoImpl.AddUser(user);
if(succeed) {
System.out.println("注册成功");
request.getRequestDispatcher("login.jsp").forward(request, response);
} else {
System.out.println("注册失败");
request.getRequestDispatcher("register.jsp").forward(request, response);
}
Daomain:User.java
package cn.cheen.daomain;
public class User {
private int id;
private String username;
private String password;
private String name;
private String email;
private String phone;
private String address;
private String city;
private String poscode;
private String img;
public String getUsername() {
return username;
}
public User(int id, String username, String password, String name, String email, String phone, String address,
String city, String poscode, String img) {
super();
this.id = id;
this.username = username;
this.password = password;
this.name = name;
this.email = email;
this.phone = phone;
this.address = address;
this.city = city;
this.poscode = poscode;
this.img = img;
}
public User() {
// TODO Auto-generated constructor stub
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getPoscode() {
return poscode;
}
public void setPoscode(String poscode) {
this.poscode = poscode;
}
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Dao:UserDao.java 此文件为interface文件为一个接口
package cn.cheen.dao;
import cn.cheen.daomain.User;
public interface UserDao {
public User Login(String username, String password);
public User FindUserByUsername(String username);
public boolean DeleteUserByUsername(String username);
public boolean UpdateUserByUsername(String username);
public boolean AddUser(User user);
}
DaoImplement:UserDaoImpl.java 这里在创建class的时候需要在下方框中添加前面创建的UserDao接口。
package cn.cheen.daoimpl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.cheen.dao.UserDao;
import cn.cheen.daomain.User;
import cn.cheen.utils.Conn;
import java.util.Collection;
public class UserDaoImpl implements UserDao {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
User user = null;
@Override
public User Login(String username, String password) {
// 赋值
try {
conn = Conn.getConnection();
// 静态sql语句
String sql = "select * from user where username=? and password=?";
pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()) {
user = new User();
user.setId(rs.getInt("u_id"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setName(rs.getString("u_name"));
user.setEmail(rs.getString("u_email"));
user.setPhone(rs.getString("u_phone"));
user.setAddress(rs.getString("u_address"));
user.setCity(rs.getString("u_city"));
user.setPoscode(rs.getString("u_poscode"));
user.setImg(rs.getString("u_img"));
System.out.println("用户:"+user.getUsername()+" 登录成功!");
} else {
System.out.println("用户名或者密码错误!");
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e.getMessage().toString());
} finally {
Conn.release(conn);
Conn.release(pstmt);
Conn.release(rs);
}
return user;
}
@Override
public User FindUserByUsername(String username) {
// 赋值
try {
conn = Conn.getConnection();
// 静态sql语句
String sql = "select * from user where username=?";
pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, username);
rs = pstmt.executeQuery();
if (rs.next()) {
user = new User();
user.setUsername(rs.getString("username"));
user.setName(rs.getString("u_name"));
user.setEmail(rs.getString("u_email"));
user.setPhone(rs.getString("u_phone"));
user.setAddress(rs.getString("u_address"));
user.setCity(rs.getString("u_city"));
user.setPoscode(rs.getString("u_poscode"));
user.setImg(rs.getString("u_img"));
System.out.println("查询成功!");
} else {
System.out.println("查询失败!");
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e.getMessage().toString());
} finally {
Conn.release(conn);
Conn.release(pstmt);
Conn.release(rs);
}
return user;
}
@Override
public boolean DeleteUserByUsername(String username) {
int i = 0;
boolean succeed = false;
// 赋值
try {
conn = Conn.getConnection();
// 静态sql语句
String sql = "delete * from user where username=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
i = pstmt.executeUpdate();
if (i > 0) {
succeed = true;
System.out.println("删除成功");
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println(e.getMessage().toString());
} finally {
Conn.release(conn);
Conn.release(pstmt);
Conn.release(rs);
}
return succeed;
}
@Override
public boolean UpdateUserByUsername(String username) {
int i = 0;
boolean succeed = false;
// TODO Auto-generated method stub
return succeed;
}
@Override
public boolean AddUser(User user) {
int i = 0;
boolean succeed = false;
String sql = "insert into user(username,password,u_email)values(?,?,?)";
try {
conn = Conn.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.setString(3, user.getEmail());
i = pstmt.executeUpdate();
if (i > 0) {
succeed = true;
System.out.println("插入成功");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(e.getMessage().toString());
} finally {
Conn.release(conn);
Conn.release(pstmt);
}
return succeed;
}
}
如果要使用JSTL和EL表达式,见此处