package com.zoufang.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;
public class Register extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
resp.setContentType("text/html;charset=uft-8");
String name=req.getParameter("name");
String pwd=req.getParameter("password");
UserDao uDao=new UserDao();
User user = null;
try {
user = uDao.findByName(name);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(user.getName());
System.out.println("判斷user是否存在");
if(name.equals(user.getName())){
String msg=name+"該用戶名已經使用!請重新註冊!";
req.setAttribute("msg", msg);
req.getRequestDispatcher("register.jsp").forward(req, resp);
}else{
System.out.println("檢驗數據庫沒有該用戶,存入用戶信息!");
User user1=new User();
user1.setName(name);
user1.setPassword(pwd);
try {
uDao.saveUser(user1);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String msg=name+"註冊成功,請重新登陸!";
req.setAttribute("msg", msg);
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
doGet(req, resp);
}
}
1、bean層,創建一個對象
package com.zoufang.bean;
import java.io.Serializable;
public class User implements Serializable{
private String name;
private String password;
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;
}
}
2、dao層連接數據庫(此處爲mysql)
package com.zoufang.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.zoufang.bean.User;
public class UserDao {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/test";
private static String username = "zoufang";
private static String password = "123";
private static Connection connection = null;
private static PreparedStatement ps = null;
public Connection getConnection() throws ClassNotFoundException, SQLException{
Class.forName(driver);
connection=DriverManager.getConnection(url, username, password);
return connection;
}
public void closeConnection() throws SQLException{
if(connection!=null)
connection.close();
if(ps!=null)
ps.close();
}
public void saveUser(User user) throws SQLException{
try {
connection=getConnection();
String sql="insert into user values(?,?)";
ps=connection.prepareStatement(sql);
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
ps.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeConnection();
}
}
public User findByName(String name) throws SQLException{
ResultSet rs = null;
User user=new User();
try {
connection=getConnection();
System.out.println("開始讀取數據");
String sql="select * from user where name='"+name+"'";
ps=connection.prepareStatement(sql);
rs=ps.executeQuery(sql);
while(rs.next()) {
System.out.println(rs.getString(1)+"\t"+rs.getString(2));
user.setName(rs.getString(1));
user.setPassword(rs.getString(2));
return user;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeConnection();
}
return user;
}
public void deleteUser(String name) throws ClassNotFoundException, SQLException{
Connection connection=getConnection();
String sql="delete from user where name='"+name+"'";
ps=connection.prepareStatement(sql);
ps.execute(sql);
closeConnection();
}
public void changUser(User user) throws SQLException, ClassNotFoundException{
Connection connection=getConnection();
String sql="update user set password='"+user.getPassword()+"' where name='"+user.getName()+"' ";
ps=connection.prepareStatement(sql);
ps.execute(sql);
closeConnection();
}
}
3、業務邏輯層
package com.zoufang.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;
public class Change extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
resp.setContentType("text/html;charset=uft-8");
HttpSession hs=req.getSession();
String name=(String) hs.getAttribute("1");
System.out.println("當前登陸用戶名"+name);
String password=(String) hs.getAttribute("2");
String password1=req.getParameter("password1");//新密碼
String password2=req.getParameter("password2");//重新輸入一次密碼
if(password.equals(password1)){
String msg1="新輸入的密碼與舊密碼一樣,請重新輸入";
req.setAttribute("msg1", msg1);
req.getRequestDispatcher("change.jsp").forward(req,resp);
}else if(!password2.equals(password1)){
String msg2="密碼不一致!請重新輸入!";
req.setAttribute("msg2", msg2);
req.getRequestDispatcher("change.jsp").forward(req,resp);
}else if(password2.equals(password1)){
System.out.println(",,,,,,,,,,,,,,,,,,,");
UserDao userDao=new UserDao();
User user=new User();
user.setName(name);
user.setPassword(password1);
try {
userDao.changUser(user);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
String msg="密碼修改成功,請重新登陸!";
req.setAttribute("msg", msg);
req.getRequestDispatcher("login.jsp").forward(req,resp);
}
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
doGet(req, resp);
}
}
package com.zoufang.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;
public class Delete extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
resp.setContentType("text/html;charset=uft-8");
HttpSession hs=req.getSession();
String name=(String) hs.getAttribute("1");
UserDao userDao=new UserDao();
try {
userDao.deleteUser(name);
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String msg="用戶刪除成功!";
req.setAttribute("msg", msg);
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
doGet(req, resp);
}
}
package com.zoufang.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;
public class Login extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
resp.setContentType("text/html;charset=uft-8");
String name=req.getParameter("name");
String pwd=req.getParameter("password");
HttpSession hs=req.getSession();
hs.setAttribute("1",name);
hs.setAttribute("2", pwd);
UserDao userDao =new UserDao();
User user = null;
try {
user = userDao.findByName(name);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(name!=null&&pwd!=null&&name.equals(user.getName())&&pwd.equals(user.getPassword())){
resp.sendRedirect("success.jsp");
}else{
String msg="你所輸入的用戶名不存在或者密碼不正確,請重新輸入!";
req.setAttribute("msg", msg);
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException{
doGet(req, resp);
}
}
package com.zoufang.servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.zoufang.bean.User;
import com.zoufang.dao.UserDao;
public class Register extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
resp.setContentType("text/html;charset=uft-8");
String name=req.getParameter("name");
String pwd=req.getParameter("password");
UserDao uDao=new UserDao();
User user = null;
try {
user = uDao.findByName(name);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(user.getName());
System.out.println("判斷user是否存在");
if(name.equals(user.getName())){
String msg=name+"該用戶名已經使用!請重新註冊!";
req.setAttribute("msg", msg);
req.getRequestDispatcher("register.jsp").forward(req, resp);
}else{
System.out.println("檢驗數據庫沒有該用戶,存入用戶信息!");
User user1=new User();
user1.setName(name);
user1.setPassword(pwd);
try {
uDao.saveUser(user1);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String msg=name+"註冊成功,請重新登陸!";
req.setAttribute("msg", msg);
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException, ServletException{
doGet(req, resp);
}
}
4、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=UTF-8">
<title>修改密碼</title>
</head>
<body>
<form action="change" method="get">
<center>
<table>
<tr>
<td><input type="text" value="請輸入新的密碼" name="password1"/><a >${msg1}</a></td>
</tr>
<tr>
<td><input type="text" value="請重新輸入一次密碼" name="password2"/><a >${msg2}</a></td>
</tr>
<tr>
<td><input type="submit" value="提交"/></td>
</tr>
</table>
</center>
</form>
</body>
</html>
<%@ 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=UTF-8">
<title>註冊頁面</title>
</head>
<body>
<center>
<form action="delete" method="get">
確定要刪除此用戶!</br>
<input type="submit" value="確定">
</form>
</center>
</body>
</html>
<%@ 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=UTF-8">
<title>登陸界面</title>
</head>
<body>
<center>
<a >${msg}</a>
<form action="login" method="get">
<table border="1" cellspacing="0" >
<tr>
<td align="center" colspan="2">用戶登錄</td>
</tr>
<tr>
<td>用戶名:</td>
<td><input type="text" name="name" ></td>
</tr>
<tr>
<td>密 碼:</td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="提交">
<input type="button" οnclick="window.location.href='register.jsp'" value="註冊"/>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
<%@ 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=UTF-8">
<title>註冊頁面</title>
</head>
<body>
<center>
<a>歡迎註冊!</a>
<a>${msg}</a>
<form action="register" method="get">
<table border="1" cellspacing="0">
<tr>
<td align="center" colspan="2">用戶登錄</td>
</tr>
<tr>
<td>用戶名:</td>
<td><input type="text" name="name" ></td>
</tr>
<tr>
<td>密 碼:</td>
<td><input type="text" name="password"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<%@ 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=UTF-8">
<title>登錄成功</title>
</head>
<body>
<center>
<table border="1" cellspacing="1" style="width:200px;height:100px">
<tr>
<td align="center" colspan="2">用戶登錄成功</td>
</tr>
<tr>
<td align="center">
<input type="button" οnclick="window.location.href='change.jsp'" value="修改"/>
<input type="button" οnclick="window.location.href='delete.jsp'" value="註銷"/>
</td>
</tr>
</table>
</center>
</body>
</html>
</body>
</html>
5、web中的配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>LoginDemo</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>com.zoufang.servlet.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Register</servlet-name>
<servlet-class>com.zoufang.servlet.Register</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Delete</servlet-name>
<servlet-class>com.zoufang.servlet.Delete</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Delete</servlet-name>
<url-pattern>/delete</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Change</servlet-name>
<servlet-class>com.zoufang.servlet.Change</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Change</servlet-name>
<url-pattern>/change</url-pattern>
</servlet-mapping>
</web-app>
6、需要加入一個mysql驅動包
mysql-connector-java-5.1.7-bin.jar
經驗:開始沒有加這個包,數據庫連接不上