package net.lrf.actions;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.ServletContext;
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 net.lrf.entitys.Book;
import net.lrf.services.BookService;
/**
* 显示图书信息
*/
@WebServlet("/book.action")
public class BooksInfoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public BooksInfoServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取PrintWriter对象
PrintWriter writer = response.getWriter();
// 检测用户是否已经登录,并区分登录的身份
// 登录身份不同显示的页面不同(添加图书和对图书的删除只有管理员身份登录时才会显示)
// 管理员可以对图书进行浏览、删除、添加操作,也可以加入购物车;
// 普通用户只能加入购物车
ServletContext context = getServletContext();
Object user = context.getAttribute("user");
String logIn = (String) context.getAttribute("admin");
List<Object> userLogin = (List<Object>) context.getAttribute("userLogin");
int totalNum;
if (null == user) {// 还未登录
writer.write("您还未登录,<a href='login.html'>点此重新登录</a>");
} else if (logIn == null) {
writer.write("请选择登录身份!<a href='login.html'>点此重新登录</a>");
// 当登录失败时,访问人数为List的长度-1,并在List记录中删除最近添加的记录
totalNum = userLogin.size() - 1;
userLogin.remove(totalNum);
} else {
// 只有当登录成功时,才算入到访问人数
totalNum = userLogin.size();
// 获取图书信息
BookService bookService = new BookService();
List<Book> books = bookService.getBooks("select * from Book");
// 以表格形式将图书信息返回给客户端浏览器
// 打印表格表头
writer.write("<table border='1'>");
writer.write("<tr align='center'>");
writer.write("<th width='30'>编号</th>");
writer.write("<th width='150'>图书名称</th>");
writer.write("<th width='100'>图书价格</th>");
writer.write("<th width='150'>出版社</th>");
writer.write("<th>图书介绍</th>");
if (logIn.equals("1")) {// 管理员身份登录时显示
writer.write("<th width='50'>删除</th>");
writer.write("<th width='50'>修改</th>");
}
writer.write("<th width='100'>加入购物车</th>");
writer.write("</tr>");
// 打印图书信息
for (Book book : books) {
writer.write("<tr align='center'>");
// 打印图书编号
writer.write("<td>");
writer.write(new String((book.getBookId() + "").getBytes(), "utf-8"));
writer.write("</td>");
// 打印图书名称
writer.write("<td>");
writer.write(book.getBookName());
writer.write("</td>");
// 打印图书价格
writer.write("<td>");
writer.write(book.getBookPrice() + "");
writer.write("</td>");
// 打印出版社
writer.write("<td>");
writer.write(book.getBookPublisher());
writer.write("</td>");
// 打印图书介绍
writer.write("<td align='left'>");
writer.write(book.getBookDesc());
writer.write("</td>");
if (logIn.equals("1")) {// 管理员身份登录时显示
// 删除图书
writer.write("<td align='center'>");
writer.write("<a href='deleteBook.action?bookName=" + book.getBookName() + "'>删除</a>");
writer.write("</td>");
// 修改图书
writer.write("<td align='center'>");
writer.write("<a href='updateBook.action?bookName=" + book.getBookName() + "&bookPrice="
+ book.getBookPrice() + "&bookPublisher=" + book.getBookPublisher() + "&bookDesc="
+ book.getBookDesc() + "'>修改</a>");
writer.write("</td>");
}
// 加入购物车
writer.write("<td align='center'>");
writer.write("<a href='shopping.action?bookName=" + book.getBookName() + "&bookPrice="
+ book.getBookPrice() + "'>加入购物车</a>");
writer.write("</td>");
writer.write("</tr>");
}
writer.write("</table>");
writer.write("<br/><br/>");
if (logIn.equals("1")) {// 管理员身份登录时显示
writer.write("<a href='bookServlet.action'>添加新图书</a>");
writer.write("      ");
}
writer.write("<a href='createOrder.action'>查看历史订单</a>");
writer.write("      ");
writer.write("<a href='ShowShoppingCart.action'>查看购物车</a>");
writer.write("      访问人数:" + totalNum);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
简单实现了图书购买的管理系统,其中包含用户的登录和注册功能(登录区别身份)、图书列表页的显示功能(身份不同显示的界面不同)、管理员对图书的添加修改和删除功能、添加和查看购物车功能、清空购物车功能、查看历史订单以及统计图书列表页的访问人数功能。(因为目前学习的知识有限,还没有学习到JSP,所以实现的界面较为简陋) 相关Sql文件链接:https://download.csdn.net/download/weixin_43816281/12912818
资源推荐
资源详情
资源评论
收起资源包目录
lrf_BookPrj.zip (66个子文件)
BookPrj
WebContent
META-INF
MANIFEST.MF 39B
WEB-INF
web.xml 695B
lib
mssqlserver.jar 66KB
sqljdbc4.jar 571KB
login.html 564B
loginfalse.html 209B
addfalse.html 257B
regest.html 441B
.settings
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 304B
org.eclipse.wst.common.component 473B
org.eclipse.wst.jsdt.ui.superType.container 49B
.jsdtscope 567B
org.eclipse.jdt.core.prefs 857B
src
pkg
Main.java 556B
DBConfig.properties 142B
net
lrf
filter
CharacterFilter.java 1KB
entitys
User.java 455B
Order.java 2KB
Goods.java 984B
Book.java 1KB
services
OrderService.java 3KB
UserService.java 2KB
BookService.java 4KB
actions
BooksInfoServlet.java 5KB
BookServlet.java 2KB
DeleteBookServlet.java 2KB
CreateOrderServlet.java 4KB
AddBookServlet.java 3KB
RegestUserServlet.java 2KB
UpdateBookServlet.java 3KB
ShoppingCartServlet.java 4KB
HistoricalOrderServlet.java 3KB
UpdateBookInfoServlet.java 2KB
CheckoutServlet.java 3KB
LoginServlet.java 2KB
ShoppingServlet.java 4KB
utils
DBUtil.java 3KB
listener
CountLoginContextListener.java 1KB
.project 911B
.classpath 878B
build
classes
pkg
Main.class 1KB
DBConfig.properties 142B
net
lrf
filter
CharacterFilter.class 1KB
entitys
Order.class 2KB
Goods.class 1KB
User.class 962B
Book.class 2KB
services
UserService.class 2KB
BookService.class 4KB
OrderService.class 3KB
actions
HistoricalOrderServlet.class 4KB
LoginServlet.class 2KB
ShoppingCartServlet.class 5KB
UpdateBookInfoServlet.class 2KB
CheckoutServlet.class 4KB
AddBookServlet.class 3KB
ShoppingServlet.class 4KB
RegestUserServlet.class 2KB
BooksInfoServlet.class 5KB
BookServlet.class 2KB
UpdateBookServlet.class 3KB
DeleteBookServlet.class 2KB
CreateOrderServlet.class 5KB
utils
DBUtil.class 3KB
listener
CountLoginContextListener.class 1KB
共 66 条
- 1
资源评论
- 超级大蚂蚁2020-08-03没有数据库,没有sql差评~~FF小迷糊吖~2020-12-29已上传
FF小迷糊吖~
- 粉丝: 41
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 丹佛丝 GSDML-V2.31-Danfoss-FC-20170207.zip
- HR-saas中台管理项目.zip
- Unity游戏开发入门指南.pdf
- C++期末大作业基于C++和QT的天气预报系统源码(高分项目)
- C#ASP.NET资产评估管理系统源码数据库 SQL2008源码类型 WinForm
- python实现基于Django+MySQL的天气预报系统源码(高分项目)
- 恶搞源程序,小小的整蛊一下朋友吧
- 基于 Vue 3、Vite、Ant Design Vue 4.0、TypeScript、Vben Vue Admin,最先进的技术栈,让初学者能够更快的入门并投入到团队开发中去
- Python毕业设计-豆瓣电影短评数据挖掘与情感分析项目源码(高分项目)
- Vue3 + Vite5 + TypeScript + Element-Plus 构建的后台管理前端模板,配套接口文档和后端源码,vue-element-admin 的 Vue3 版本
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功