博主在學習Java Web是,接觸到了幾個較爲適合學習的項目,其中一個是網上書店,採用MVC開發模式,沒有開發後臺,使用的是較爲簡單的Servlet+jsp,適合新手學習,在這裏給大家分享一下:
主要代碼:註冊代碼
package net.vicp.zyl_me.control;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.vicp.zyl_me.model.UserBeanHandler;
public class RegisterServlet extends HttpServlet {
/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
String username = request.getParameter("username");
String password = request.getParameter("password");
String agree_ = request.getParameter("agree");
boolean agree = false;
if ("true".equals(agree_)) {
agree = true;
}
UserBeanHandler userBeanHandler = new UserBeanHandler();
if (!agree)
{
request.getRequestDispatcher("register.jsp?error=noagree").forward(request, response);
return ;
}
if (userBeanHandler.isUserNameExist(username)) {
request.getRequestDispatcher("register.jsp?error=usernameexist").forward(request, response);
} else {
if (userBeanHandler.register(username, password)) {
request.getRequestDispatcher("myaccount.jsp?success=userregister&username="+username).forward(request, response);
} else {
request.getRequestDispatcher("register.jsp?error=registererror").forward(request, response);
}
}
}
/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
書籍展示界面:
<%@page import="net.vicp.zyl_me.model.GoodsBean"%>
<%@page import="net.vicp.zyl_me.model.GoodsBeanHandler"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<%
GoodsBeanHandler goodsBeanHandler = new GoodsBeanHandler();
String __page = (String) request.getAttribute("page");
int _page = 1;
final int _pageSize = 9;
int _pageRow = goodsBeanHandler.getGoodsBeanCount();
int _pageCount = _pageRow % _pageSize == 0 ? _pageRow / _pageSize : _pageRow / _pageSize + 1;
if (__page != null) {
_page = Integer.parseInt(__page);
}
ArrayList<GoodsBean> arr = goodsBeanHandler.getGoodsBeanByPage(_page, _pageSize);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="css/header.css">
<link rel="stylesheet" href="css/content.css">
<link rel="stylesheet" href="css/footer.css">
<link rel="stylesheet" href="css/books.css">
</head>
<body>
<jsp:include page="head.jsp"></jsp:include>
<div id="content">
<div id="content-left">
<div id="books">
<div class="title">
<a href="index.jsp">主頁</a>>> 所有書籍
</div>
<div class="gray">
<img src="images/bullet1.gif">全部書籍
</div>
<%
for (int i = 0; i < arr.size(); i++) {
GoodsBean goodsBean = arr.get(i);
%>
<div class="book">
<div class="title"><%=goodsBean.getGoodsname()%></div>
<div class="book-box">
<a href=<%="ShowDetailServlet?id="+goodsBean.getGoodsid()%>> <img
src=<%="images/banner/" + goodsBean.getPhoto()%>>
</a>
</div>
</div>
<%
}
%>
<div class="pagination">
<%
final int _pageContraints = 6;
if (_page == 1)
out.println("<span class='disabled noborder'><<</span>");
else
out.println("<a class='noborder' href='ShowGoodsServlet?page=" + (_page - 1) + "'><span><<</span></a>");
if (_pageCount <= _pageContraints)
for (int i = 1; i <= _pageCount; i++) {
if (_page == i)
out.println("<span class='current'>" + i + "</span>");
else
out.println("<a href='ShowGoodsServlet?page=" + i + "'>" + i + "</a>");
}
else {
if(_page >= 3 && _pageCount - _page > 4)
{
for (int i = _page - 1 ; i <= _page + 1; i++) {
if (_page == i)
out.println("<span class='current'>" + i + "</span>");
else
out.println("<a href='ShowGoodsServlet?page=" + i + "'>" + i + "</a>");
}
}else
{
for (int i = 1 ; i <= 3; i++) {
if (_page == i)
out.println("<span class='current'>" + i + "</span>");
else
out.println("<a href='ShowGoodsServlet?page=" + i + "'>" + i + "</a>");
}
}
if(_pageCount - _page <= 4 && _page >= 3)
{
out.println("...");
}
if(_pageCount - _page <= 4)
{
for (int i = _pageCount - 4; i <= _pageCount; i++) {
if (_page == i)
out.println("<span class='current'>" + i + "</span>");
else
out.println("<a href='ShowGoodsServlet?page=" + i + "'>" + i + "</a>");
}
}
else
{
out.println("...");
for (int i = _pageCount - 2; i <= _pageCount; i++) {
if (_page == i)
out.println("<span class='current'>" + i + "</span>");
else
out.println("<a href='ShowGoodsServlet?page=" + i + "'>" + i + "</a>");
}
}
}
if (_page == _pageCount)
out.println("<span class='disabled noborder'>>></span>");
else
out.println("<a class='noborder' href='ShowGoodsServlet?page=" + (_page + 1) + "'><span>>></span></a>");
%>
<!-- <span class='current'>1</span> <a href="ShowGoodsServlet?page=3">3</a>…
<a href="#?page=199">10</a> <a href="#?page=200">11</a> <a
href="#?page=2"></a> -->
</div>
</div>
</div>
<jsp:include page="content-right.jsp"></jsp:include>
</div>
<jsp:include page="footer.jsp"></jsp:include>
</body>
</html>
購物車界面
購物車通過seesion的方式保存書籍
package net.vicp.zyl_me.model;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
public class CartHandler {
Connection connection;
Statement statement;
ResultSet resultset;
HashMap<String, String> hashMap = new HashMap<String, String>();
public void addNewGoods(String id, String qty) {
if(!hashMap.containsKey(id))
hashMap.put(id, qty);
}
public void clear() {
hashMap.clear();
}
public void updateGoodsById(String id, String qty) {
hashMap.put(id, qty);
}
public void AddGoods1QuantityById(String id) {
hashMap.put(id, ""+(Integer.parseInt(hashMap.get(id))+1));
}
public void SubGoods1QuantityById(String id) {
hashMap.put(id, ""+(Integer.parseInt(hashMap.get(id))-1));
if("0".equals(hashMap.get(id)))
{
hashMap.remove(id);
}
}
public int getGoodsCount()
{
return hashMap.size();
}
public int getTotalGoodsPrice()
{
int sum = 0;
ArrayList<GoodsBean> goods = getGoods();
Iterator<String> it = hashMap.keySet().iterator();
for(int i = 0;i <goods.size();i++)
{
sum += Integer.parseInt(getGoodsCountById(goods.get(i).getGoodsid()+"")) * goods.get(i).getGoodsprice();//���HashMap.get(goods.get(i).getGoodsid()) = null, HashMap.get(goods.get(i).getGoodsid() + "") = 1
}
return sum;
}
public void removeGoodsById(String id)
{
hashMap.remove(id);
}
public String getGoodsCountById(String id)
{
return hashMap.get(id);
}
public ArrayList<GoodsBean> getGoods() {
ArrayList<GoodsBean> arr = new ArrayList<GoodsBean>();
if(hashMap.isEmpty())
{
return arr;
}
try {
connection = new DBConnection().getConnection();
statement = connection.createStatement();
String sql = "select * from goods where goodsid in (";
Iterator iterator = hashMap.keySet().iterator();
while(iterator.hasNext())
{
sql += iterator.next();
if(iterator.hasNext())
sql += ",";
else
sql += ")";
}
resultset = statement.executeQuery(sql);
while (resultset.next())
arr.add(new GoodsBean(resultset.getLong(1), resultset.getString(2), resultset.getString(3), resultset.getString(4), resultset.getFloat(5), resultset.getString(6), resultset.getString(7)));
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
if (connection != null) {
connection.close();
}
if (statement != null) {
statement.close();
}
if (resultset != null) {
resultset.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return arr;
}
}
以上是該程序的部分代碼,有需要的可以聯繫我:2186527424
碼字不易,給個讚唄