jsp电子商务 购物车实现之二 登录和分页篇
登录页面核心代码
<div id="login"> <h2>用户登陆</h2> <form method="post" action="LoginServlet" onsubmit="return check()"> <dl> <dt>用户名:</dt> <dd><input class="input-text" type="text" id="username" name="username" onblur="isUsernameNull()"/><span id="usernull"></span></dd> <dt>密 码:</dt> <dd><input class="input-text" type="password" id="password" name="password" onblur="isPasswordNull()"/><span id="pwdnull"></span></dd> <dt> </dt> <dd class="button"><input class="input-btn" type="submit" name="submit" value="" /> <input class="input-reg" type="button" name="register" value="" onclick="window.location='register.jsp';" /></dd> </dl> </form> </div>
LoginServlet的参考代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserinfoDao ud = new UserinfoDaoImpl();
Userinfo userinfo = ud.findByNameAndPwd(username, password);
//如果登陆成功,则去bookListServlet
if(userinfo!=null){
request.getSession().setAttribute("userinfo", userinfo);
response.sendRedirect("BooklistServlet");
}
else{
response.sendRedirect("login.jsp");
}
}
BooklistServlet的参考代码:
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String page = req.getParameter("page");
if(page==null){
page="1";//第一次传过来就是默认首页
}
int pageindex = Integer.parseInt(page);//否则,可能是第2页等
BookDao bd = new BookDaoImpl();
List<Book> books = bd.findBookByPage(pageindex, 3);//3:每页多少数据
int count = bd.count();
PageControler pc = new PageControler();
int total = pc.getTotalPages(count, 3);//总页数
//通过request设置属性,+forward转向;
req.setAttribute("pageindex", pageindex);
// HttpSession session=req.getSession();
// session.setAttribute("books",books); 也可以,可以直接跳转;
req.setAttribute("books",books);
req.setAttribute("total",total);
req.getRequestDispatcher("index.jsp").forward(req,resp);
}
购物车页面显示代码段参考:
<div id="content" class="wrap">
<div class="list bookList">
<form method="post" name="shoping" action="CartServlet" onsubmit="return checkCart();">
<table>
<tr>
<th class="checker">@</th>
<th>书名</th>
<th class="info">简介</th>
<th class="price">价格</th>
<th class="store">库存</th>
<th class="view">图片预览</th>
</tr>
<c:forEach items="${books}" var="book"><!--book.id的值可以存放value -->
<tr>
<td><input type="checkbox" name="bookId" value="${book.id}" /></td>
<td class="title">${book.bookname}</td>
<td class="info">${book.info}</td>
<td>¥${book.price}</td>
<td>${book.stock}</td>
<td class="thumb"><img src="images/book/${book.image}" /></td>
</tr>
</c:forEach>
</table>
<div class="page-spliter">
<a href="BooklistServlet?page=1">首页</a>
<c:if test="${pageindex>1}">
<a href="BooklistServlet?page=${pageindex-1}">上一页</a>
</c:if>
<c:if test="${pageindex<total}">
<a href="BooklistServlet?page=${pageindex+1}">下一页</a>
</c:if>
<a href="BooklistServlet?page=${total}">尾页</a>
</div>
<div class="button">
<input class="input-btn" type="submit"
name="submit" value="" /></div>
</form>
</div>
</div>
jsp电子商务 购物车实现之二 登录和分页篇的更多相关文章
- jsp电子商务购物车之四 数据库存储篇
为了方便用户下次登录,仍然可以看到自己的购物车内容,所以,需要在数据库存储相应的购物车项目,本处增加购物车项表;uid和bid是复合主键. package com.cart.entity; //购物车 ...
- jsp电子商务购物车之五 数据库存储篇2
业务逻辑图,简单版要写各个Servlet //ChangeCartCountServlet 使用ajax实现数量,增加或减少; package com.cart.web; import java.io ...
- jsp电子商务 购物车实现之三 购物车
CartServlet参考代码 : public void doPost(HttpServletRequest req, HttpServletResponse resp) throws Servle ...
- jsp电子商务 购物车实现之一 设计篇
购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: 2.用session实现购物车: 3.用cookie和数据库(购物车信息持久化)实现购物车: ============= ...
- 学习jsp篇:jsp简单实例之二登录
编程环境:IDEA,Tomcat,JavaEE 一.实例二登录 1.在自己建的工程下的web目录下建一个文件夹为login,在login中编写登录代码(其实就是和实例一同一个项目) 2.先建登录页面j ...
- Java正则速成秘籍(二)之心法篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
- 【three.js详解之二】渲染器篇
[three.js详解之二]渲染器篇 本篇文章将详细讲解three.js中渲染器(renderer)的设置方法. three.js文档中渲染器的分支如下: Renderers CanvasRend ...
- 界面编程模仿篇(QQ登录界面逼真篇)
写了好多天的爬虫,偷空前前后后用了两天的时间(排除吃饭睡觉)写完了这个QQ登录界面,看起来还凑和着吧,如果是的大神的,莫见笑,纯属业余作品,废话先不多说,截图如下,其中第二幅图片中的红色方框部份有待完 ...
- Spring Boot 揭秘与实战(二) 数据缓存篇 - Redis Cache
文章目录 1. Redis Cache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 Redis Cache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存 ...
随机推荐
- wamp环境下安装imagick扩展
先上图,如下是安装成功后的phpinfo()界面: 安装步骤: 1.先确定安装版本,比如我的的php : php7.0.12 x86 ts 那么就需要三方版本 要一致:imagick软件本身( 如x ...
- python 连接MSSQL
# -*- coding: utf-8 -*- import pymssql conn=pymssql.connect(host=".",user="sa",p ...
- tomcat+nginx+keepalived的配置
tomcat+nginx+keepalived的配置 1.在官网上下载Tomcat 2.将压缩包解压,并且移动到/opt/data/的目录下. .tar.gz /opt/data/ 3.进入到Tomc ...
- 码云配置webhooks自动触发拉取代码
webhooks的使用 码云和github的钩子叫webhooks 每次您 push 代码后,都会给远程 HTTP URL 发送一个 POST 请求 码云项目管理页面的webhooks设置: http ...
- ruby Logger日志
1.logger创建 # 输出到标准输出 logger = Logger.new(STDERR) logger = Logger.new(STDOUT) # 输出到指定文件 logger = Logg ...
- struts2架构网站漏洞修复详情与利用漏洞修复方案
struts2从开发出来到现在,很多互联网企业,公司,平台都在使用apache struts2系统来开发网站,以及应用系统,这几年来因为使用较多,被攻击者挖掘出来的struts2漏洞也越来越,从最一开 ...
- 一些matlab教程资源收藏,使用matlab编程的人还是挺多的
Matlab教程专题资源免费下载整理合集收藏 <MATLAB从入门到精通>高清文字版[PDF] 103.9MB 简体中文 <矩阵实验室>(Mathworks.Matlab.R2 ...
- 博弈dp 以I Love this Game! POJ - 1678 为例
写在前面的话 知识基础:一些基础的博弈论的方法,动态规划的一些知识 前言:博弈论就是一些关于策略或者游戏之间的最优解,动态规划就是对于一些状态之间转移的一些递推式(or 递归),dp分为很多很多种,比 ...
- (数据科学学习手札35)tensorflow初体验
一.简介 TensorFlow时谷歌于2015年11月宣布在Github上开源的第二代分布式机器学习系统,目前仍处于快速开发迭代中,有大量的新功能新特性在陆续研发中: TensorFlow既是一个实现 ...
- 20145202 2016-2017-2 《Java程序设计》第一周学习总结
20145202 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 java是SUN公司推出的面相网络的编程语言. 特点:完全面向对象,与平台无关,跨平台性(例 ...