登录页面核心代码

<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电子商务 购物车实现之二 登录和分页篇的更多相关文章

  1. jsp电子商务购物车之四 数据库存储篇

    为了方便用户下次登录,仍然可以看到自己的购物车内容,所以,需要在数据库存储相应的购物车项目,本处增加购物车项表;uid和bid是复合主键. package com.cart.entity; //购物车 ...

  2. jsp电子商务购物车之五 数据库存储篇2

    业务逻辑图,简单版要写各个Servlet //ChangeCartCountServlet 使用ajax实现数量,增加或减少; package com.cart.web; import java.io ...

  3. jsp电子商务 购物车实现之三 购物车

    CartServlet参考代码 : public void doPost(HttpServletRequest req, HttpServletResponse resp) throws Servle ...

  4. jsp电子商务 购物车实现之一 设计篇

    购物车的功能实现. 查询的资料,找到三种方法: 1.用cookie实现购物车: 2.用session实现购物车: 3.用cookie和数据库(购物车信息持久化)实现购物车: ============= ...

  5. 学习jsp篇:jsp简单实例之二登录

    编程环境:IDEA,Tomcat,JavaEE 一.实例二登录 1.在自己建的工程下的web目录下建一个文件夹为login,在login中编写登录代码(其实就是和实例一同一个项目) 2.先建登录页面j ...

  6. Java正则速成秘籍(二)之心法篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  7. 【three.js详解之二】渲染器篇

    [three.js详解之二]渲染器篇   本篇文章将详细讲解three.js中渲染器(renderer)的设置方法. three.js文档中渲染器的分支如下: Renderers CanvasRend ...

  8. 界面编程模仿篇(QQ登录界面逼真篇)

    写了好多天的爬虫,偷空前前后后用了两天的时间(排除吃饭睡觉)写完了这个QQ登录界面,看起来还凑和着吧,如果是的大神的,莫见笑,纯属业余作品,废话先不多说,截图如下,其中第二幅图片中的红色方框部份有待完 ...

  9. Spring Boot 揭秘与实战(二) 数据缓存篇 - Redis Cache

    文章目录 1. Redis Cache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 Redis Cache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存 ...

随机推荐

  1. typecho博客组插件:openSug.js百度搜索框下拉提示免费代码

      Typecho候选搜索增强插件:安装openSug插件即可获得带有“搜索框提示”功能的搜索框,让Typecho搜索更便捷! 支持百度.谷歌.雅虎.Yandex.360好搜.UC神马.酷狗.优酷.淘 ...

  2. 廖老师的Python教程——Python简介

    一直想了解下Python,今儿在外面办事排队的时候,打开了廖老师的官网,找到了Python教程.虽然只是一篇关于Python的简介,但是通过将Python的特性与C进行对比,很生动地归纳了Python ...

  3. 第1章 MATLAB概述

    MATLAB系统由~开发环境.~语言.~数学函数库.~图形处理系统.~应用程序接口(API)5大部分组成. 界面 命令行中的语句格式 命令行的语句格式:>>变量=表达式(没有>> ...

  4. haproxy + keepalived 实现高可用负载均衡集群

    1. 首先准备两台tomcat机器,作为集群的单点server. 第一台: 1)tomcat,需要Java的支持,所以同样要安装Java环境. 安装非常简单. tar xf  jdk-7u65-lin ...

  5. linux-课题练习1

    1.创建组testgroup: 2.创建用户a2012,先采用默认设置创建,然后使该用户加入testgroup组. 3.创建用户a2013,其用户主目录为/tmp/a2013,其主组为testgrou ...

  6. Create Fiori List App Report with ABAP CDS view – PART 1

    From Create Fiori List App Report with ABAP CDS view – PART 1 In this blog, I am going to show How C ...

  7. 图表制作工具之ECharts

    简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10 ...

  8. 网站的robots.txt文件

    什么是robots.txt? robots.txt是一个纯文本文件,是爬虫抓取网站的时候要查看的第一个文件,一般位于网站的根目录下.robots.txt文件定义了爬虫在爬取该网站时存在的限制,哪些部分 ...

  9. android开源项目之OTTO事件总线(一)

    Otto是由Square发布的一个着重于Android支持的基于Guava的强大的事件总线,在对应用程序不同部分进行解耦之后,仍然允许它们进行有效的沟通. 开源项目地址:https://github. ...

  10. 『JavaScript』new关键字

    原文 new关键字做了什么 在JavaScript中,使用new关键字后,意味着做了如下四件事情: 创建一个新的对象,这个对象的类型是object: 设置这个新的对象的内部.可访问性和[[protot ...