JSP快速入门阶段项目训练-图书管理信息系统

做这个项目的准备:
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就会进行修改功能的逻辑处理!





  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弗兰随风小欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值