package beans;
import java.io.UnsupportedEncodingException;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.http.HttpServletRequest;
import com.mysql.jdbc.StringUtils;
public class Book {
private int id;
private String isbn;
private String name;
private String author;
private float price;
private String publishTime;
private float discount;
private int stock;
//通过表单提交的数据构建Book
public Book(HttpServletRequest request) throws UnsupportedEncodingException {
name=new String(request.getParameter("name").getBytes("iso-8859-1"), "utf-8");
author=new String(request.getParameter("author").getBytes("iso-8859-1"), "utf-8");
isbn=request.getParameter("isbn");
String price=request.getParameter("price");
if(!StringUtils.isNullOrEmpty(price)) {
this.price=Float.valueOf(price);
}
String discount=request.getParameter("discount");
if(!StringUtils.isNullOrEmpty(discount)) {
this.discount=Float.valueOf(discount);
}
String publishTime=request.getParameter("publishTime");
if(!StringUtils.isNullOrEmpty(publishTime)) {
this.publishTime=publishTime;
}
String stock=request.getParameter("stock");
if(!StringUtils.isNullOrEmpty(stock)) {
this.stock=Integer.valueOf(stock);
}
}
//通过数据库查询结果集构建
public Book(ResultSet rSet) {
try {
id=rSet.getInt("id");
isbn=rSet.getString("isbn");
name=rSet.getString("name");
author=rSet.getString("author");
price=rSet.getFloat("price");
Date date=rSet.getDate("publishTime");
publishTime=date==null?null: date.toString();
discount=rSet.getFloat("discount");
stock=rSet.getInt("stock");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
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 float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getPublishTime() {
return publishTime;
}
public void setPublishTime(String publishTime) {
this.publishTime = publishTime;
}
public float getDiscount() {
return discount;
}
public void setDiscount(float discount) {
this.discount = discount;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
public String toValues() {
return "(null,"+
'\''+isbn+"\',"+
'\''+name+"\',"+
'\''+author+"\',"+
price+','+
(publishTime==null?"null":'\''+publishTime+'\'')+','+
discount+','+
stock+")";
}
@Override
public String toString() {
return "isbn=\'" + isbn + "\', name=\'" + name + "\', author=\'" + author + "\', price=" + price
+ (publishTime==null?"": ", publishTime="+"\'"+publishTime+"\'") + ", discount=" + discount + ", stock=" + stock;
}
}
基于Servlet+JSP+JavaBean的图书管理系统 .zip
需积分: 0 70 浏览量
更新于2023-10-09
收藏 40KB ZIP 举报
《基于Servlet+JSP+JavaBean的图书管理系统详解》
图书管理系统是软件开发中的常见应用场景,它能够帮助图书馆高效管理图书信息,实现借阅、归还、查询等操作。本系统采用经典的Java Web技术栈——Servlet、JSP和JavaBean进行开发,这是一套在Web开发领域广泛应用的技术组合,具有良好的分层结构和可维护性。
一、Servlet基础
Servlet是Java编程语言中用于扩展服务器功能的接口,由Java Servlet API提供。在图书管理系统中,Servlet主要负责处理HTTP请求,与数据库交互,进行业务逻辑处理。例如,用户发起借书请求时,Servlet会接收到请求,解析参数,调用相应的业务方法,如检查图书库存、更新借阅状态等,并将结果返回给客户端。
二、JSP(JavaServer Pages)
JSP是Java Web开发中的视图层技术,它允许开发者在HTML页面中嵌入Java代码,实现动态网页的生成。在本系统中,JSP主要负责展示用户界面,接收用户输入,以及将Servlet处理后的数据转化为可读性强的格式呈现给用户。例如,JSP页面可以显示图书列表,用户可以通过搜索框输入关键词查询图书,JSP将查询结果渲染到页面上。
三、JavaBean
JavaBean是一种符合特定规范的Java类,通常用来封装数据和业务逻辑。在Servlet+JSP的架构中,JavaBean作为数据模型,用于存储和传递数据。在图书管理系统中,我们可以定义一个`Book` JavaBean来表示图书实体,包含如书名、作者、出版社等属性,以及获取和设置这些属性的方法。Servlet可以从数据库中检索到图书信息后,创建Book对象,再将这个对象传递给JSP,以便在页面上展示。
四、MVC设计模式
Servlet、JSP和JavaBean的组合实际上体现了Model-View-Controller(MVC)设计模式。Servlet作为Controller处理用户请求和控制流程,JavaBean作为Model承载数据,JSP作为View负责视图展示。这种分层架构使得代码组织清晰,易于维护和扩展。
五、数据库交互
图书管理系统必然涉及到与数据库的交互,常见的数据库如MySQL、Oracle等。在Servlet中,我们通常使用JDBC(Java Database Connectivity)API来连接和操作数据库,包括执行SQL语句、处理结果集等。例如,当用户提交借书申请时,Servlet会通过JDBC向数据库发送更新图书状态的SQL命令。
六、会话管理
为了跟踪用户的借阅记录或登录状态,系统需要使用会话管理。Servlet API提供了HttpSession接口,可用于创建和管理用户会话。当用户登录后,系统会为该用户创建一个会话,将用户信息保存在其中,后续请求可以通过检查会话来识别用户。
总结起来,基于Servlet+JSP+JavaBean的图书管理系统利用了Java Web的核心技术,实现了图书的增删查改、用户管理、借阅流程等功能。这一技术栈不仅适合初学者学习,也适用于大型企业级应用的开发,展示了Java Web的强大和灵活性。通过深入理解并实践这些技术,开发者可以更好地掌握Web开发的精髓。