UserServlet.java

package com.aff.bookstore.servlet;

import java.io.IOException;
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 com.aff.bookstore.domain.User;
import com.aff.bookstore.service.UserService; @WebServlet("/userServlet")
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L; private UserService userService = new UserService(); protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取username 请求参数的值
String username = request.getParameter("username");
// 调用UserService 的 getUser(username) 获取 User对象, 要求 trade 是被装配好的 , 而且
// 每一个trade 对象的items
User user = userService.getUserWithTrades(username); // 把User 对象方法放reuest 中
if (user == null) {
response.sendRedirect(request.getServletPath()+"errror-1.jsp");
return;
}
request.setAttribute("user", user); // 转发页面到/WEB-INF/pages/trades.jsp
request.getRequestDispatcher("/WEB-INF/pages/trades.jsp").forward(request, response);; } }

users.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/commons/common.jsp" %>
<!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> <center>
<br><br> <form action="userServlet" method="post">
username: <input type="text" name="username"/>
<input type="submit" value="Submit">
</form> </center>
</body>
</html>

trades.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/commons/common.jsp" %>
<!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>
<center>
<br><br>
<h3>User: ${user.username}</h3>
<br><br> <table>
<c:forEach items="${user.trades }" var="trade">
<tr>
<td>
<table border="1" cellpadding="10" cellspacing="0">
<tr>
<td colspan="3">TradeTime:${trade.tradeTime }</td> </tr>
<c:forEach items="${trade.items }" var="item">
<tr>
<td>${item.book.title }</td>
<td>${item.book.price }</td>
<td>${item.quantity }</td>
</tr>
</c:forEach> </table>
<br>
</td>
</tr> </c:forEach> </table>
</center> </body>
</html>

TradeDAOImpl.java
package com.aff.bookstore.dao.impl;

import java.util.LinkedHashSet;
import java.util.Set; import com.aff.bookstore.dao.TradeDAO;
import com.aff.bookstore.domain.Trade; public class TradeDAOImpl extends BaseDAO<Trade> implements TradeDAO { @Override
public void insert(Trade trade) {
String sql = "insert into trade(userid,tradetime) values(?,?)";
long tradeId = insert(sql, trade.getUserId(),trade.getTradeTime());
trade.setTradeId((int)tradeId); } @Override
public Set<Trade> getTradesWithUserId(Integer userId) {
String sql = "select tradeId,userId, tradeTime from trade where userId = ? order by tradeTime desc";
return new LinkedHashSet<>
(queryForList(sql, userId));
}

}

 效果如下

解决相对路径问题:

common.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<base href="${pageContext.request.scheme }://${pageContext.request.serverName }:${pageContext.request.serverPort }${pageContext.request.contextPath}/">

在需要的jsp中添加<%@ include file="/commons/common.jsp" %>

如下:empty.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="/commons/common.jsp" %> <!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> <h4>您的购物车为空</h4> <a href="index.jsp">继续购物</a> </body>
</html>

整个目录

最新文章

  1. android控件 ToggleButton的应用
  2. [python]decimal常用操作和需要注意的地方
  3. js制作倒计时效果
  4. css3实现小米商城鼠标移动图片上浮阴影效果
  5. 数字转化成字符串C语言
  6. 在安全层面,企业如何获得更好的投资回报率 ROI?
  7. Servlet常用类
  8. UITableView显示不全
  9. html5 视频
  10. 对于windows窗口的标题菜单栏的操作——删除/禁用 最小最大话和关闭
  11. zookeeper入门与实践
  12. trie从入门到入殓
  13. 前端之CSS介绍--选择器
  14. Netty的核心组件
  15. Java基础学习-类型转换之隐式转换
  16. 转Centos7.0进入单用户模式修改root密码
  17. SpringMVC+Swagger详细整合
  18. 51单片机之IIC通信原理及软件仿真
  19. Chapter 3 Phenomenon——12
  20. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

热门文章

  1. CF1316C Primitive Primes
  2. Jenkins 邮件收发(qq 邮箱)
  3. basicRF双向灯光控制
  4. SpringBoot系列(十四)集成邮件发送服务及邮件发送的几种方式
  5. Coursera课程笔记----P4E.Capstone----Week 2&amp;3
  6. 谈谈Spring bean的生命周期(一)
  7. python语法学习第五天--lambda表达式、filter()、map()
  8. [hdu4622 Reincarnation]后缀数组
  9. [zoj3596]DP(BFS)
  10. ubuntu下图形程序自启动的几种方法