Dao包
Userdao
package dao;
import model.User;
import util.DBUtil;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDao {
public int add(User user) {
Connection connection = null;
PreparedStatement pstmt =null;
int count = 0;
try{
connection = DBUtil.getConnection();
//获得执行sql的Statement对象
pstmt = connection.prepareStatement("insert into user (name,password,age)values(?,?,?)");
pstmt.setString (1,user.getName());
pstmt.setString (2,user.getPassword());
pstmt.setString (3,user.getAge());
//执行sql,获得结果
count = pstmt.executeUpdate();
System.out.println("insert操作:"+count);
return count;
}catch (Exception e)
{
e.printStackTrace();
}finally {
try {
DBUtil.closeAll(null, pstmt, connection);
}
catch (SQLException e) {
e.printStackTrace();
}
}
return count;
}
public int del(User user){
Connection connection = null;
PreparedStatement pstmt = null;
int count = 0;
try{
connection = DBUtil.getConnection();
System.out.println("连接成功");
pstmt = connection.prepareStatement("delete from user where name=? and password=? and age = ?");
pstmt.setString(1,user.getName());
pstmt.setString(2,user.getPassword());
pstmt.setString(3,user.getAge());
count = pstmt.executeUpdate();
System.out.println("delete操作:"+count);
return count;
}catch (Exception e){
e.printStackTrace();
}finally {
try {
DBUtil.closeAll(null,pstmt,connection);
} catch (SQLException e) {
e.printStackTrace();
}
}
return count;
}
public User selectByName(String name){
ResultSet rs = null;
Connection connection = null;
PreparedStatement pstmt=null;
DBUtil util=new DBUtil();
User user=new User();
try{
connection=util.getConnection();
pstmt=connection.prepareStatement("select*from a where name=?");
pstmt.setString(1,name);
while(rs.next()){
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setPassword(rs.getString(3));
user.setAge(rs.getString(4));
}
}catch (Exception e){
e.printStackTrace();
}finally {
try{
util.closeAll(rs,pstmt,connection);
}catch (SQLException e){
e.printStackTrace();
}
return user;
}
}
}
Model包
User
package model;
public class User {
private int id;
private String name;
private String password;
private String age;
//alt+insert
public int getId() {
return id;
}
public void setId(int 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 String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", password='" + password + '\'' +
", age='" + age + '\'' +
'}';
}
}
Service包
UserService
package service;
import dao.UserDao;
import model.User;
import java.sql.SQLException;
public class UserService {
UserDao userDao = new UserDao();
public int add(User user) {
System.out.println("service中add方法被调用");
return userDao.add(user);
}
public int del(User user){
System.out.println("service中del方法被调用");
return userDao.del(user);
}
public User selectByName(String name){
return userDao.selectByName(name);
}
}
Servlet包
AddServlet
其中包含了insert添加,search搜索,delete删除 3种方法
package servlet;
import model.User;
import service.UserService;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import static org.omg.IOP.TaggedProfileHelper.insert;
public class AddServlet extends HttpServlet {
UserService userService = new UserService();
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, IOException {
System.out.println("执行了dopost");
String method = req.getParameter("method");
if(method.equals("save")){
insert(req,resp);
}else if (method.equals("search")){
search(req,resp);
}
}
public void insert(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, IOException{
User user = new User();
String name = req.getParameter("name");
String password = req.getParameter("password");
String age = req.getParameter("age");
user.setName(name);
user.setPassword(password);
user.setAge(age);
System.out.println(user);
int count = userService.add(user);
if(count>0)
{
resp.sendRedirect("/index.jsp");
}else{
resp.getWriter().write("<h1>failed</h1>");
}
}
public void search(HttpServletRequest req,HttpServletResponse resp) throws IOException {
String name = req.getParameter("name");
User user1 = userService.selectByName(name);
if(user1!=null){
resp.getWriter().write("用户名:"+user1.getName()+"密码:"+user1.getPassword()+"年龄:"+user1.getAge());
}
else{
resp.getWriter().write("失败!");
}
}
public void delete(HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException {
User user = new User();
String name = req.getParameter("name");
String password = req.getParameter("password");
String age = req.getParameter("age");
user.setName(name);
user.setPassword(password);
user.setAge(age);
System.out.println(user);
int count = userService.del(user);
if(count>0){
resp.sendRedirect("/index.jsp");
}else {
resp.getWriter().write("<h2>failed</h2>");
}
}
}
hellowServlet
package servlet;
import javax.servlet.*;
import java.io.IOException;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
servletResponse.getWriter().write("hello,servelt");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
loginServlet
其中包含了登陆的方法,以及用“123”“123”的账号密码进行测试实验
在输入正确错误密码后各会弹出不同的页面。
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, IOException {
String name = req.getParameter("name");
String password = req.getParameter("password");
if(name.equals("123")&&password.equals("123")){
resp.getWriter().write("success!");
}else{
resp.getWriter().write("failed!");
}
}
}
Util包
BDutil
package util;
import java.sql.*;
public class DBUtil {
public static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("连接数据库");
//创建连接
Connection connection = DriverManager.getConnection("jdbc:mysql:localhost:3306/a?useSSL=false","root","123456");
return connection;
}
public static void closeAll(ResultSet rs, Statement stmt,Connection conn) throws SQLException {
if(rs!=null) {
rs.close();
}
if(stmt!=null){
stmt.close();
}
if(conn!=null){
conn.close();;
}
}
}
web包
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>loginservlet</servlet-name>
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginservlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AddServlet</servlet-name>
<servlet-class>servlet.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
</web-app>
add.jsp
注册页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册</title>
</head>
<body>
<form action="/add?method=save" method="post">
name:<input name="name" type="text">
password:<input name="password" type="password">
age:<input name="age" type="text">
<input type="submit" value="注册">
</form>
</body>
</html>
delete.jsp
删除页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注销账户</title>
</head>
<h1>注销</h1>
<body>
<form action="/del?method=delete" method="post"> <!-- 对应AddServlet中的if语句-->
name:<input name="name" type="text">
password:<input name="password" type="password">
age:<input name="age" type="text">
<input type="submit" value="注销" >
</form>
</body>
</html>
serch.jsp
搜索页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>查找</title>
</head>
<body>
<form action="/add>method=search" method="post">
<input name="name" placeholder="请输入需要查找的名字">
<input type="submit" value="查找">
</form>
</body>
</html>
index.jsp
主页面(包含登陆功能)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>ASD</title>
</head>
<body>
<form action="/login" method="post">
name:<input name="name" type="text">
password:<input name="password" type="password">
<input type="submit" value="login">
</form>
<a href="add.jsp">跳转到注册页面</a>
<a href="search.jsp">跳转到搜索页面</a>
<a href="delete.jsp">跳转到删除页面</a>
</body>
</html>