做这个项目的准备:
1.mysql以及Navicat for mysql(推荐使用这个图示化工具)
2.eclipse-ee版(tomcat已经配置完成等等)
3.dreamweaver cs6前端编译工具(推荐使用)
4.mysql的jar包拷贝到WebContent的lib文件夹的根目录下
5.jquery库文件(在WebContent目录下新建一个jslib文件夹(这个文件夹的
名字可以随便取的),把jquery的库文件拷贝进去即可)
6.在WebContent的根目录下新建一个data的文件夹,将内容(用逗号分隔,分
别对应于图书名称,作者,价格,出版社)拷贝进去,这个内容是放在一个
data.txt文件中的,这些内容是为了读出来,放在数据库中和jsp页面上显示
的!
下面是具体的步骤:
首选在数据库中建立一个book的数据库
然后建立表:
create table books
(
`ID` int(4) not null auto_increment,
`Name` VARCHAR(100),
`Author` VARCHAR(50),
`Price` decimal,
`Publisher` VARCHAR(100),
primary key(ID)
);
注意不是花括号,是小括号!
步骤:
1.建立一个JavaBean,名字为Book(包括id,name,author,price,publisher)
2.建立一个数据访问层DAO = Data Access Object=数据访问接口,这个DAO的
方法名字为:BookDAO
里面包括这几种方法:
构造函数DAO()链接数据库
addBook(Book book)添加图书
deleteBook(int id)
modifyBook(int id,Book newbook)即包括修改书的id,修改后的新内容
(newbook)
ArrayList<Book> getBooks(书很多,从数据库拿出书的时候放在一个
ArrayList数组中,为了显示在jsp页面上)
getBookById(int id) 通过id即可得到书的全部信息
3.做一个jsp页面,名字为bookList.jsp
循环打印每本图书,选一个好看的css样式
4.前端的处理:
a.点了选择检查框(复选框),如果点的是第一个检查框,要做什么事情?
即:如果第一个检查框(复选框)被选中后,下面的所有都要被选中,如果第
一个
没有被选中,下面的所有都不要被选中!
如果下面的单独选中,这就是另外一回事了,下面的选中是独立,也不要编写
代码!
这个代码我单独提取出来:
$("input[type='checkbox'][name='selectit']").not(
":first").prop("checked",$(this).prop("checked"));
这行代码非常之重要,需要熟练的记住并会使用!
b.这行代码是可以通过hidden获取id
var id = $(this).parent
().parent().children().eq(0)
.children
().eq(0).val()///这行代码很难,需要熟练掌握
c.然后一些常用的判断是否为空等等代码我就不列举出来了,下面会给出具体
的代码!
1.mysql以及Navicat for mysql(推荐使用这个图示化工具)
2.eclipse-ee版(tomcat已经配置完成等等)
3.dreamweaver cs6前端编译工具(推荐使用)
4.mysql的jar包拷贝到WebContent的lib文件夹的根目录下
5.jquery库文件(在WebContent目录下新建一个jslib文件夹(这个文件夹的
名字可以随便取的),把jquery的库文件拷贝进去即可)
6.在WebContent的根目录下新建一个data的文件夹,将内容(用逗号分隔,分
别对应于图书名称,作者,价格,出版社)拷贝进去,这个内容是放在一个
data.txt文件中的,这些内容是为了读出来,放在数据库中和jsp页面上显示
的!
下面是具体的步骤:
首选在数据库中建立一个book的数据库
然后建立表:
create table books
(
`ID` int(4) not null auto_increment,
`Name` VARCHAR(100),
`Author` VARCHAR(50),
`Price` decimal,
`Publisher` VARCHAR(100),
primary key(ID)
);
注意不是花括号,是小括号!
步骤:
1.建立一个JavaBean,名字为Book(包括id,name,author,price,publisher)
2.建立一个数据访问层DAO = Data Access Object=数据访问接口,这个DAO的
方法名字为:BookDAO
里面包括这几种方法:
构造函数DAO()链接数据库
addBook(Book book)添加图书
deleteBook(int id)
modifyBook(int id,Book newbook)即包括修改书的id,修改后的新内容
(newbook)
ArrayList<Book> getBooks(书很多,从数据库拿出书的时候放在一个
ArrayList数组中,为了显示在jsp页面上)
getBookById(int id) 通过id即可得到书的全部信息
3.做一个jsp页面,名字为bookList.jsp
循环打印每本图书,选一个好看的css样式
4.前端的处理:
a.点了选择检查框(复选框),如果点的是第一个检查框,要做什么事情?
即:如果第一个检查框(复选框)被选中后,下面的所有都要被选中,如果第
一个
没有被选中,下面的所有都不要被选中!
如果下面的单独选中,这就是另外一回事了,下面的选中是独立,也不要编写
代码!
这个代码我单独提取出来:
$("input[type='checkbox'][name='selectit']").not(
":first").prop("checked",$(this).prop("checked"));
这行代码非常之重要,需要熟练的记住并会使用!
b.这行代码是可以通过hidden获取id
var id = $(this).parent
().parent().children().eq(0)
.children
().eq(0).val()///这行代码很难,需要熟练掌握
c.然后一些常用的判断是否为空等等代码我就不列举出来了,下面会给出具体
的代码!
还有一些步骤我就不写了,都是类似的,下面会给出具体的代码
这个系统大致的结果如下:
有四个前端的页面,分别是:
bookList.jsp(主页面)代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="javastudy.*"
import="java.util.*"%>
<!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>
<link rel="stylesheet" type="text/css" href="file.css">
<script type="text/javascript" src="jslib/jquery-
3.1.1.min.js"></script>
<script type="text/javascript">
$(function() {
$("input[type='checkbox']
[name='selectit']:first").click(
function() {
$("input[type='checkbox']
[name='selectit']").not(
":first").prop("checked",$(this).prop("checked"));
});///这段代码的意思是:当第一个复选
框被点击的时候,不是第一个复选框的checked属性(prop("checked"))要和第
一个复选框的checked属性相同($(this).prop("checked"))
$("input[type='button'][name='modifyit']").click(
function() {
///通过hidden获取id
var id = $(this).parent
().parent().children().eq(0)
.children
().eq(0).val()///这行代码很难,需要熟练掌握
///点击修改页面的时候,页面
跳转
location.href =
"modify.jsp?id=" + id;///页面跳转的时候把id也带过去!
});
///删除功能的前端
$("#btnDelete").click(
function() {
///将被选中的图书的id收集起
来!
var ids ="";///存放要删除的
id,删除是和复选框的选中是想联系的!
var i = 0;///记录有几本书被
删除了!
$("input[type='checkbox']
[name='selectit']").each(
function
(index, element) {
if
(index > 0)///序号为0(即第一个复选框(总的复选框)不要)
{
if ($(this).prop("checked"))///如果被选中的话
{
var id = $(this).parent().parent()
.children().eq(0).children()
.eq(0).val()///这行代码很难,需要熟练掌握,获
取hidden所对应的id
ids += id;
i++;///书本的数量也要加1
if (!$(this).is(":last"))///如果不是最后删除的一本书的话
{
ids += ",";///其实把id变成了字符串
}
}
}
});
var answer = confirm("你真的
要删除选定的这" + i + "本图书吗?");
if (!answer) {
return ;
}
location.href = "DeleteIt?
ids="+ids;
});
///点击添加图书,则进入添加图书的Add.jsp页面
$("#btnAdd").click(function() {
location.href = "add.jsp"
});
});
</script>
</head>
<body>
<table class="gridtable">
<tr>
<th>序号</th>
<th>图书名称</th>
<th>作者</th>
<th>价格</th>
<th>出版社</th>
<th>修改</th>
<th><input type="checkbox" name="selectit"></th>
</tr>
<%
BookDAO dao = new BookDAO();
ArrayList<Book> list = dao.getBooks();
for (int i = 0; i < list.size(); i++) {
Book book = list.get(i);
%>
<tr>
<td><%=i + 1%>
<input type="hidden" name="id"
value="<%=book.getId()%>" /></td>
<td><%=book.getName()%></td>
<td><%=book.getAuthor()%></td>
<td><%=book.getPrice()%></td>
<td><%=book.getPublisher()%></td>
<td><input type="button" name="modifyit" value="修改" /></td>
<td><input type="checkbox" name="selectit" /></td>
</tr>
<%
}
%>
</table>
<p>
<input type="button" value="删除图书" id="btnDelete" />
<input type="button" value="添加图书" id="btnAdd" />
</p>
</body>
</html>
add.jsp(点击添加图书的按钮就会进入此页面,对应的servlet是AddIt.java)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="javastudy.*"%>
<!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">
<link rel="stylesheet" type="text/css" href="file.css">
<title>Insert title here</title>
<script type="text/javascript" src="jslib/jquery-
3.1.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#info").css("color","red");
$("input[type='submit']").click(function(){
if($.trim($("input[name='name']").val()).length==0)
{
$("input[name='name']").select();
$("input[name='name']").focus();
$("#info").html("请输入图书名称!");
return false;
}
if($.trim($("input[name='author']").val
()).length==0)
{
$("input[name='author']").select();
$("input[name='author']").focus();
$("#info").html("请输入图书作者!");
return false;
}
if($.trim($("input[name='price']").val()).length==0)
{
$("input[name='price']").select();
$("input[name='price']").focus();
$("#info").html("请输入图书价格!");
return false;
}
var str= /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-
9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
///正则表达式判断正浮点数
if(!str.test($.trim($("input[name='price']").val())))//如果不
符合的正则表达式的话
{
$("input[name='price']").select();
$("input[name='price']").focus();
$("#info").html("你输入的价格不合法,请重新
输入!");
return false;
}
if($.trim($("input[name='publisher']").val()).length==0)
{
$("input[name='publisher']").select();
$("input[name='publisher']").focus();
$("#info").html("请输入图书出版社!");
return false;
}
return true;///最后如果都能符合条件,则返回true
});
});
</script>
</head>
<body>
<form method="post" action="AddIt">
<table class="gridtable">
<tr><td colspan="2">添加图书信息</td></tr>
<tr><td>图书名称</td><td><input type="text" name="name"></td></tr>
<tr><td>作者</td><td><input type="text" name="author" ></td></tr>
<tr><td>价格</td><td><input type="text" name="price" ></td></tr>
<tr><td>出版社</td><td><input type="text"
name="publisher"></td></tr>
<tr><td colspan="2"><input type="submit" value="修改图书信息"/><div
id="info"></div></td></tr>
</table>
</form>
</body>
</html>
modify.jsp(点击修改的按钮就会进入此页面,对应的servlet是Modify.java)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="javastudy.*"%>
<!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">
<link rel="stylesheet" type="text/css" href="file.css">
<title>Insert title here</title>
<script type="text/javascript" src="jslib/jquery-
3.1.1.min.js"></script>
<script type="text/javascript">
$(function(){
$("#info").css("color","red");
$("input[type='submit']").click(function(){
if($.trim($("input[name='name']").val()).length==0)
{
$("input[name='name']").select();
$("input[name='name']").focus();
$("#info").html("请输入图书名称!");
return false;
}
if($.trim($("input[name='author']").val
()).length==0)
{
$("input[name='author']").select();
$("input[name='author']").focus();
$("#info").html("请输入图书作者!");
return false;
}
if($.trim($("input[name='price']").val()).length==0)
{
$("input[name='price']").select();
$("input[name='price']").focus();
$("#info").html("请输入图书价格!");
return false;
}
var str= /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-
9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
///正则表达式判断正浮点数
if(!str.test($.trim($("input[name='price']").val())))//如果不
符合的正则表达式的话
{
$("input[name='price']").select();
$("input[name='price']").focus();
$("#info").html("你输入的价格不合法,请重新
输入!");
return false;
}
if($.trim($("input[name='publisher']").val()).length==0)
{
$("input[name='publisher']").select();
$("input[name='publisher']").focus();
$("#info").html("请输入图书出版社!");
return false;
}
return true;///最后如果都能符合条件,则返回true
});
});
</script>
</head>
<body>
<%
int id = Integer.parseInt(request.getParameter("id"));
BookDAO dao = new BookDAO();
Book book = dao.getBookById(id);///新建一个book,用来接收要修改
图书的信息(原来的信息)
%>
<form method="post" action="Modify">
<input type="hidden" value="<%=id%>" name="id"/>
<table class="gridtable">
<tr><td colspan="2">修改图书信息</td></tr>
<tr><td>图书名称</td><td><input type="text" name="name" value="<
%=book.getName()%>"></td></tr>
<tr><td>作者</td><td><input type="text" name="author" value="<
%=book.getAuthor()%>"></td></tr>
<tr><td>价格</td><td><input type="text" name="price" value="<
%=book.getPrice()%>"></td></tr>
<tr><td>出版社</td><td><input type="text" name="publisher" value="<
%=book.getPublisher()%>"></td></tr>
<tr><td colspan="2"><input type="submit" value="修改图书信息"/><div
id="info"></div></td></tr>
</table>
</form>
</body>
</html>
init.jsp:用来把data.txt读出来放到数据库中!
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="javastudy.*"%>
<!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>Insert title here</title>
</head>
<body>
<%
DBLib lib = new DBLib();
lib.addData(application.getRealPath("")+"\\data\\data.txt");
%>
</body>
</html>
一个css样式:就是一个好看的table样式,用来使表格变的更为漂亮!
我建立的名字是:file.css,代码如下:
<!-- CSS goes in the document HEAD or added to your external
stylesheet -->
<style type="text/css">
table.gridtable {
font-family: verdana,arial,sans-serif;
font-size:14px;
color:#333333;
border-width: 1px;
border-color: #666666;
border-collapse: collapse;
}
table.gridtable th {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #dedede;
}
table.gridtable td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #ffffff;
}
</style>
网上好看的table样式有很多,不一定用我的,网上都可以搜索非常好看的
table样式!
一个javastudy包下有7个.java文件,分别是:
AddIt Book BookDAO DBLib DeleteIt EncodingFilter Modify
(注意这些名字都不是固定的,自己想取啥名名字就取啥名,但是要和前端对
应)
AddIt.java 这个serlvet是添加图书的逻辑处理:
代码如下:
package javastudy;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class AddIt
*/
@WebServlet("/AddIt")
public class AddIt extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public AddIt() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String name = request.getParameter("name");
String author = request.getParameter("author");
double price = Double.parseDouble(request.getParameter("price"));
String publisher = request.getParameter("publisher");
Book newbook = new Book();
newbook.name = name;
newbook.author = author;
newbook.price = price;
newbook.publisher = publisher;
BookDAO dao;
try {
dao = new BookDAO();
dao.addBook(newbook);
response.sendRedirect("bookList.jsp");
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
Book.java是一个javaBean,提供数据库属性的setter和getter方法
代码如下:
package javastudy;
public class Book {
int id;
String name;
String author;
double price;
String publisher;
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 getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
}
接下来使BookDAO.java,这个类链接数据库,并提供各种功能的方法,和数据库的联系非常紧密!代码如下:
package javastudy;
import java.sql.Statement;
import java.util.ArrayList;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BookDAO {
Connection conn;
PreparedStatement ps;
Statement st;
String sql;
///写一个构造函数,链接数据库
public BookDAO() throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/Book";
String user = "root";
String pwd = "621366";
conn = DriverManager.getConnection(url,user,pwd);
st = conn.createStatement();
}
///添加图书
public int addBook(Book book) throws SQLException
{
sql = "insert into books(Name,Author,Price,Publisher) values(?,?,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, book.getName());
ps.setString(2, book.getAuthor());
ps.setDouble(3, book.getPrice());
ps.setString(4, book.getPublisher());
return ps.executeUpdate();///这个ps.executeUpdate的类型是int,需要记住!
}
///删除图书(根据id来删除图书信息)
public int deleteBook(int id) throws SQLException
{ sql = "delete from books where id=?";
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
return ps.executeUpdate();
}
///修改图书(根据id来修改图书信息,将新的信息newbook的信息写进数据库中)
public int modifyBook(int id,Book newbook) throws SQLException
{
sql = "update books set name=?,author=?,price=?,publisher=? where id=?";
ps = conn.prepareStatement(sql);
ps.setString(1, newbook.getName());
ps.setString(2, newbook.getAuthor());
ps.setDouble(3, newbook.getPrice());
ps.setString(4, newbook.getPublisher());
ps.setInt(5, id);
return ps.executeUpdate();
}
///书很多,从数据库拿出书的时候放在一个ArrayList数组中,为了显示在jsp页面上,写一个方法存放书
public ArrayList<Book> getBooks() throws SQLException
{
ArrayList<Book> books = new ArrayList<Book>();
sql = "select *from books";
///书很多,用Result结果集来循环取出
ResultSet rs = st.executeQuery(sql);///这里也可以用 ps.executeQuery()
///PrepareStatement接口是Statement接口的子接口,他继承了Statement接口的所有功能。
while(rs.next())
{ ///从数据库中取书的时候,id也要取出来,而且要按数据库中表的顺序来获取,然后写到循环写到book中
///最后add到books数组中去,写入或者取出数据库中的数据序号都是从1开始的!
Book book = new Book();
book.setId(rs.getInt(1));
book.setName(rs.getString(2));
book.setAuthor(rs.getString(3));
book.setPrice(rs.getDouble(4));
book.setPublisher(rs.getString(5));
books.add(book);///将书放在books数组中!
}
return books; ///返回这个数组
}
/// getBookById(int id) 通过id即可得到书的全部信息
public Book getBookById(int id) throws SQLException
{
sql = "select *from books where id=?";
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
rs.next();///这里不用while循环是因为一个id只能对应于一个用户的全部信息
Book book = new Book();
book.setId(rs.getInt(1));
book.setName(rs.getString(2));
book.setAuthor(rs.getString(3));
book.setPrice(rs.getDouble(4));
book.setPublisher(rs.getString(5));
conn.close();
return book;
}
}
DBLib.java类:链接数据库,把提供把data.txt文本的内容写到数据库的方法
和init.jsp紧密联系!
代码如下:
package javastudy;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class DBLib {
Connection conn;
PreparedStatement ps;
Statement st;
String sql;
///写一个构造函数,链接数据库
public DBLib() throws ClassNotFoundException, SQLException
{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://127.0.0.1:3306/Book";
String user = "root";
String pwd = "621366";
conn = DriverManager.getConnection(url,user,pwd);
st = conn.createStatement();
conn.close();
}
public void addData(String filename) throws SQLException, IOException
{
sql = "use Book";
st.executeUpdate(sql);
FileReader fr = new FileReader(filename);
BufferedReader br = new BufferedReader(fr);
String line;
sql = "insert into books(Name,Author,Price,Publisher) values(?,?,?,?)";
ps = conn.prepareStatement(sql);
while((line=br.readLine())!=null)
{
String [] values = line.split(",");
ps.setString(1, values[0]);
ps.setString(2, values[1]);
ps.setDouble(3, Double.parseDouble(values[2]));
ps.setString(4, values[3]);
ps.executeUpdate();
}
br.close();
conn.close();
}
}
Delete.java:这是一个servlet,点击删除图书按钮就会直接进入这个servlet,用来对删除图书功能的逻辑处理!
代码如下:
package javastudy;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class DeleteIt
*/
@WebServlet("/DeleteIt")
public class DeleteIt extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public DeleteIt() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String ids = request.getParameter("ids");///从bookList.jsp中传过来的
PrintWriter out = response.getWriter();
out.print(ids);
String [] id = ids.split(",");///通过','来将字符串ids分隔开来
for(int i=0;i<id.length;i++)
{
try {
BookDAO dao = new BookDAO();
dao.deleteBook(Integer.parseInt(id[i]));
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
response.sendRedirect("bookList.jsp");///修改完成后就跳转到bookList.jsp页面上去
//response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
EncodingFilter.java类:这是一个过滤器,功能就是处理乱码:
代码如下:(需要学会Filtet的知识)
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
// pass the request along the filter chain
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}
Modify.java:这个servlet是处理修改按钮的功能,点击修改按钮,这个servlet就会进行修改功能的逻辑处理!