——、需要导入jar包
如下五个jar包
下载:http://mvnrepository.com
一、实现添加
<%--
Created by IntelliJ IDEA.
User: love
Date: 2020/3/6
Time: 8:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="css/style.css">
<script src="js/form.js"></script>
</head>
<body>
<div class="form" style="position:relative">
<a href="/untitled/studentServlet?anhao=find">查询用户</a>
<!--注册表单-->
<div class="form_register" style="position:absolute">
<form action="/untitled/studentServlet?anhao=reg" method="post">
<h1>注册表单</h1>
<div class="form_item">
<label for="username">用户名:</label>
<input type="text" name="username" placeholder="请输入用户名" required />
</div>
<div class="form_item">
<label for="password">密码:</label>
<input type="password" name="password" placeholder="请输入密码名" required/>
</div>
<div class="form_item">
<label for="email">电子邮箱:</label>
<input type="email" name="email" id="email" placeholder="请输入电子邮件" required>
</div>
<div class="form_item">
<label for="tel">电话:</label>
<input type="tel" name="tel" id="tel" placeholder="请输入手机号码" required>
</div>
<div class="form_item">
<input type="submit" value="注册">
</div>
</form>
<div class="info">已有账号?点击<span class="switch login_Btn">登录</span></div>
</div>
</div>
</body>
</html>
二、实现查看 修改
<%--
Created by IntelliJ IDEA.
User: love
Date: 2020/3/15
Time: 16:40
To change this template use File | Settings | File Templates.
--%>
<%--
Created by IntelliJ IDEA.
User: love
Date: 2020/3/6
Time: 8:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<link rel="stylesheet" href="css/style.css">
<script src="js/form.js"></script>
</head>
<body>
<div class="form" style="position:relative">
<a href="/untitled/studentServlet?anhao=edit">查询用户</a>
<!--注册表单-->
<div class="form_register" style="position:absolute">
<form action="/untitled/studentServlet?anhao=edit&id=${std.id}" method="post">
<h1>修改表单</h1>
<div class="form_item">
<label >用户名:</label>
<input type="text" name="username" value="${std.username}" />
</div>
<div class="form_item">
<label >密码:</label>
<input type="password" name="password" value="${std.password}"/>
</div>
<div class="form_item">
<label for="email">电子邮箱:</label>
<input type="email" name="email" id="email" value="${std.email}"/>
</div>
<div class="form_item">
<label for="tel">电话:</label>
<input type="tel" name="tel" id="tel" value="${std.tel}"/>
</div>
<div class="form_item">
<input type="submit" value="修改">
</div>
</form>
<div class="info">已有账号?点击<span class="switch login_Btn">登录</span></div>
</div>
</div>
</body>
</html>
三、实现删除
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%--
Created by IntelliJ IDEA.
User: love
Date: 2020/3/13
Time: 8:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<style>
table{
border-color: red;
border-radius: 5px;
margin: 20px auto;
}
.odd{
background-color: lightpink;
}
.even{
background-color: goldenrod;
}
</style>
<body>
<table border="1" cellpadding="0" cellspacing="0" width="680px">
<tr>
<th>编号</th>
<th>用户名</th>
<th>密码</th>
<th>邮箱</th>
<th>电话</th>
<th>操作</th>
</tr>
<c:forEach items="${student}" var="s" varStatus="vs">
<tr class="${vs.index%2==0?'even':'odd'}" align="center">
<td>${s.id}</td>
<td>${s.username}</td>
<td>${s.password}</td>
<td>${s.email}</td>
<td>${s.tel}</td>
<td>
<a href="/untitled/studentServlet?anhao=update&id=${s.id}">修改</a>
<a href="JavaScript:del('${s.id}')">删除</a>
</td>
</tr>
</c:forEach>
</table>
<HR/>
<c:if test="${student != null}">
当student != null ,你能看见我吗?
</c:if>
/* student 是有内容的 则代表不等于空 因此 下面的判断不合理 内容不输出!!*/
<c:if test="${student == null}">
当student == null ,你能看见我吗?
</c:if>
</body>
</html>
<script type="text/javascript">
function del(id) {
var sure = window.confirm("您确定要删除吗?");
if (sure){
window.location.href ="/untitled/studentServlet?anhao=delete&id="+id;
}
//不用写else
}
</script>
四、不成功的代码
<%--
Created by IntelliJ IDEA.
User: love
Date: 2020/3/15
Time: 16:19
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<label>取值方法</label>
<font style="color: red"> ${jiaohap}</font>
<hr/>
</body>
</html>
五、后台代码```java
package cn.javabs.day308;
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 java.io.IOException;
import java.util.List;
/**
-
@author love
*/
@WebServlet( “/studentServlet”)
public class StudentServlet extends HttpServlet {
// 1.定义全局变量
StudentSerice studentSerice = new StudentSerice();@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 2.调用doGet方法
doGet(request, response);
}@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1.解决乱码
request.setCharacterEncoding(“utf-8”);
response.setCharacterEncoding(“utf-8”);// 通过一个叫做 anhao 的参数找到相应的方法 equels 比较的是内容 | == 比较的是哈希地址值 String anhao = request.getParameter("anhao"); if ("reg".equals(anhao)) { reg(request, response); } else if ("find".equals(anhao)) { find(request, response); } else if ("update".equals(anhao)) { update(request, response); } else if ("edit".equals(anhao)) { edit(request, response); } else if ("delete".equals(anhao)) { delete(request, response); } else { System.out.println("没有找到你输入的方法,请重新输入!"); }
}
/**
- 用户登录
- @param request
- @param response
*/
private void reg(HttpServletRequest request, HttpServletResponse response) {
// 2.接受网页中传递的参数
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);
String email = request.getParameter(“email”);
String tel = request.getParameter(“tel”);
// 打印出来看一看有没有接受到参数
System.out.println(“username 的数据:”+ username+“password的数据”+password+“email的数据”+email);
// 把五个参数传递给StudenSerice类中
studentSerice.register(username,password,email,tel);
}
/**
-
查找全部
-
@param request
-
@param response
-
@throws IOException
-
@throws ServletException
*/
private void find(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {List list = studentSerice.findAll();
String slist = list.toString();response.getWriter().write(slist);
// 设置一个记号,放在list里面
request.setAttribute(“student”, list);
// 去哪个页面
request.getRequestDispatcher("/studentList.jsp").forward(request, response);
}
/**
-
修改参数
-
@param request
-
@param response
-
@throws ServletException
-
@throws IOException
*/
private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 2.接受网页中传递的参数
String sid = request.getParameter(“id”);
int id = Integer.parseInt(sid);Student student = studentSerice.findid(id);
if (student == null) {
request.setAttribute(“jiaohao”, “修改失败”);
request.getRequestDispatcher("/message.jsp").forward(request, response);
} else {
System.out.println(1111);
request.setAttribute(“std”, student);
request.getRequestDispatcher("/StudentUpdate.jsp").forward(request, response);
}
}
/**
- 修改参数
- @param request
- @param response
- @throws ServletException
- @throws IOException
*/
private void edit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println(111111);
String sid = request.getParameter(“id”);
System.out.println(sid);
int id = Integer.parseInt(sid);
System.out.println(564156);
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);
String email = request.getParameter(“email”);
String tel = request.getParameter(“tel”);
System.out.println(222);
Student student = new Student(id, username, password, email, tel);
int result = studentSerice.editStudent(student);
System.out.println(333);
if (result > 0) {
System.out.println(444);
request.setAttribute(“jiaohap”, “修改成功”);
request.getRequestDispatcher("/message.jsp").forward(request, response);
} else {
request.setAttribute(“jiaohap”, “修改失败”);
request.getRequestDispatcher("/studentUpdate.jsp").forward(request, response);
}
}/**
- 删除用户
- @param request
- @param response
- @throws ServletException
- @throws IOException
*/
private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String sid = request.getParameter(“id”);
int id = Integer.parseInt(sid);
int result = studentSerice.delete(id);
if (result > 0) {
request.setAttribute(“jiaohao”, “删除成功”);
request.getRequestDispatcher("/message.jsp").forward(request, response);
} else {
request.setAttribute(“jiaohao”, “删除失败”);
request.getRequestDispatcher("/message.jsp").forward(request, response);
}
}
}
```java
```java
package cn.javabs.day308;
import java.util.List;
public class StudentSerice {
StudentDao studentDao= new StudentDao();
/**
* 用户注册
* @param username
* @param password
* @param email
* @param tel
*/
public void register(String username, String password, String email, String tel) {
// 如果用户名称是空字符串 或者 用户是空的返回 停止运行
if (username.equals("") || username == null){
return;
}if (password.equals("") || password == null){
return;
}if(email.equals("") || email==null){
}if (tel.equals("") || tel==null){
return;
}
studentDao.addUser(username,password,email,tel);
}
/**
* 查找全部
* @return
*/
public List findAll() {
List list = studentDao.findAll();
return list;
}
/**
* 通过id查找
* @param id
* @return
*/
public Student findid(int id) {
Student student = studentDao.findId(id);
return student;
}
/**
* 修改
* @param student
* @return
*/
public int editStudent(Student student) {
int date = studentDao.editStudent(student);
return date;
}
/**
* 删除
* @param id
* @return
*/
public int delete(int id) {
int date = studentDao.delete(id);
return date;
}
}
```java
package cn.javabs.day308;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.SQLException;
import java.util.List;
public class StudentDao {
/**
* 第一部分:增删改 update 更新,更改
*/
QueryRunner qr = new QueryRunner(DbcpUtils.getDataSource());
public void addUser(String username, String password, String email, String tel) {
try {
qr.update("insert into party(username,password,email,tel) values (?,?,?,?)",username,password,email,tel);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public List findAll(){
try {
List<Student> list = qr.query("select*from party", new BeanListHandler<Student>(Student.class));
return list;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public Student findId(int id) {
try {
Student student = qr.query("select * from party where id=?",
new BeanHandler<Student>(Student.class),id);
return student;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public int editStudent(Student student) {
try {
int data = qr.update("update party set username=?,password=?,email=? ,tel=? where id=?",
student.getUsername(),
student.getPassword(),
student.getEmail(),
student.getTel(),
student.getId());
return data;
}catch (SQLException e){
throw new RuntimeException(e);
}
}
public int delete(int id) {
try {
int date = qr.update("delete from party where id=?",id);
return date;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
``
package cn.javabs.day308;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
public class DbcpUtils {
// 初始化:需要定义数据源 类
public static DataSource dataSource;
static {
// 汉语翻译: 类名.class.获取类加载器.获取资源作为流("配置文件的名称"); | propeties 是一个配置文件的类型 使用它比较方便
InputStream in = DbcpUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
// 实例化对象 Properties 类
Properties p = new Properties();
try {
// 通过 p 对象进行加载配置文件输入流
p.load(in);
// 基础数据源工厂.创建数据源
dataSource = BasicDataSourceFactory.createDataSource(p);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// 调用我的方法,并返回这个数据
public static DataSource getDataSource() {
return dataSource;
}
// 数据源连接的方法
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
}
```java
package cn.javabs.day308;
public class Student {
private int id;
private String username;
private String password;
private String email;
private String tel;
public Student() {
super();
}
public Student(int id, String username, String password, String email, String tel) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
this.tel = tel;
}
@Override
public String toString() {
return "Student{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
", email='" + email + '\'' +
", tel='" + tel + '\'' +
'}';
}
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;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
}