J2EE三层框架基础.docx

上传人:b****8 文档编号:12109996 上传时间:2023-06-04 格式:DOCX 页数:19 大小:17.65KB
下载 相关 举报
J2EE三层框架基础.docx_第1页
第1页 / 共19页
J2EE三层框架基础.docx_第2页
第2页 / 共19页
J2EE三层框架基础.docx_第3页
第3页 / 共19页
J2EE三层框架基础.docx_第4页
第4页 / 共19页
J2EE三层框架基础.docx_第5页
第5页 / 共19页
J2EE三层框架基础.docx_第6页
第6页 / 共19页
J2EE三层框架基础.docx_第7页
第7页 / 共19页
J2EE三层框架基础.docx_第8页
第8页 / 共19页
J2EE三层框架基础.docx_第9页
第9页 / 共19页
J2EE三层框架基础.docx_第10页
第10页 / 共19页
J2EE三层框架基础.docx_第11页
第11页 / 共19页
J2EE三层框架基础.docx_第12页
第12页 / 共19页
J2EE三层框架基础.docx_第13页
第13页 / 共19页
J2EE三层框架基础.docx_第14页
第14页 / 共19页
J2EE三层框架基础.docx_第15页
第15页 / 共19页
J2EE三层框架基础.docx_第16页
第16页 / 共19页
J2EE三层框架基础.docx_第17页
第17页 / 共19页
J2EE三层框架基础.docx_第18页
第18页 / 共19页
J2EE三层框架基础.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

J2EE三层框架基础.docx

《J2EE三层框架基础.docx》由会员分享,可在线阅读,更多相关《J2EE三层框架基础.docx(19页珍藏版)》请在冰点文库上搜索。

J2EE三层框架基础.docx

J2EE三层框架基础

一、搞清楚做什么?

(需求分析)

二、采用三层架构和MVC

三、编码

1、搭建开发环境

把需要的jar包导入

jstl.jar

standard.jar

junit.jar(Eclipse自带)

2、建立类存放的包

com.itheima.domain

com.itheima.dao

com.itheima.dao.impl

com.itheima.service

com.itheima.service.impl

com.itheima.web.controler

com.itheima.util

com.itheima.test

为了安全起见,jsp可以放在WEB-INF中的某一目录中pagesjsps

3、

Webroot

<%@pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

MyJSP'index.jsp'startingpage

--

-->

ThisismyJSPpage.

Src

Dao

1

packagecom.itheima.dao;

importjava.util.Map;

importcom.itheima.domain.Book;

publicinterfaceBookDao{

/**

*获取所有的书

*@returnMap<书的ID,书对象>

*/

MapfindAllBooks();

/**

*根据书的ID获取书对象

*@parambookid

*@return

*/

BookfindBookById(Stringbookid);

}

2

packagecom.itheima.dao.impl;

importjava.util.Map;

importcom.itheima.dao.BookDao;

importcom.itheima.domain.Book;

importcom.itheima.util.BookDb;

publicclassBookDaoImplimplementsBookDao{

/**

*获取所有的书

*@returnMap<书的ID,书对象>

*/

publicMapfindAllBooks(){

returnBookDb.getAll();

}

/**

*根据书的ID获取书对象

*@parambookid

*@return

*/

publicBookfindBookById(Stringbookid){

returnBookDb.getBookById(bookid);

}

}

Domain

1

packagecom.itheima.domain;

publicclassBook{

privateStringid;

privateStringname;

privateStringauthor;

privatedoubleprice;//单价

privateStringdescription;

publicBook(){}

publicBook(Stringid,Stringname,Stringauthor,doubleprice,

Stringdescription){

super();

this.id=id;

this.name=name;

this.author=author;

this.price=price;

this.description=description;

}

publicStringgetId(){

returnid;

}

publicvoidsetId(Stringid){

this.id=id;

}

publicStringgetName(){

returnname;

}

publicvoidsetName(Stringname){

this.name=name;

}

publicStringgetAuthor(){

returnauthor;

}

publicvoidsetAuthor(Stringauthor){

this.author=author;

}

publicdoublegetPrice(){

returnprice;

}

publicvoidsetPrice(doubleprice){

this.price=price;

}

publicStringgetDescription(){

returndescription;

}

publicvoidsetDescription(Stringdescription){

this.description=description;

}

}

2

packagecom.itheima.domain;

importjava.util.LinkedHashMap;

importjava.util.Map;

//购物车

publicclassCart{

privateintnum;//总数量

privatedoubleprice;//总价

//mapkey=bookidvalue=cartitem

privateMapmap=newLinkedHashMap();

publicdoublegetPrice(){

price=0;

for(Map.Entryme:

map.entrySet()){

CartItemitem=me.getValue();

price+=item.getPrice();

}

returnprice;

}

publicintgetNum(){

num=0;

for(Map.Entryme:

map.entrySet()){

CartItemitem=me.getValue();

num+=item.getNum();

}

returnnum;

}

publicMapgetMap(){

returnmap;

}

publicvoidsetMap(Mapmap){

this.map=map;

}

//向购物车中放书

publicvoidaddBook(Bookbook){

//首先判断该书有没有对应的购物项

Stringbookid=book.getId();

booleanhas=map.containsKey(bookid);

//有:

购物向的数量加1

if(has){

CartItemitem=map.get(bookid);

item.setNum(item.getNum()+1);

}else{

//没有:

创建一个购物项,把书放入

CartItemitem=newCartItem();

item.setBook(book);

item.setNum

(1);

map.put(bookid,item);

}

}

publicvoiddeleteCartItem(Stringbookid){

map.remove(bookid);

}

}

3

packagecom.itheima.domain;

publicclassCartItem{

privateBookbook;

privateintnum;//买了几本同类型的书

privatedoubleprice;//同类型的书的总价

publicBookgetBook(){

returnbook;

}

publicvoidsetBook(Bookbook){

this.book=book;

}

publicintgetNum(){

returnnum;

}

publicvoidsetNum(intnum){

this.num=num;

}

//计算同类型的书的总价

publicdoublegetPrice(){

returnbook.getPrice()*num;

}

}

4

packagecom.itheima.domain;

publicclassMyConstant{

publicstaticfinalStringSHOPPING_CART="shopcart";

}

Service

packagecom.itheima.service;

importjava.util.Map;

importcom.itheima.domain.Book;

publicinterfaceBookService{

MapfindAllBooks();

BookfindBookById(Stringbookid);

}

2

packagecom.itheima.service.impl;

importjava.util.Map;

importcom.itheima.dao.BookDao;

importcom.itheima.dao.impl.BookDaoImpl;

importcom.itheima.domain.Book;

importcom.itheima.service.BookService;

publicclassBookServiceImpleimplementsBookService{

BookDaodao=newBookDaoImpl();

publicMapfindAllBooks(){

returndao.findAllBooks();

}

publicBookfindBookById(Stringbookid){

returndao.findBookById(bookid);

}

}

Test

packagecom.itheima.test;

importjava.util.ArrayList;

importjava.util.List;

importcom.itheima.domain.Book;

publicclassDemo1{

publicstaticvoidmain(String[]args){

Listlist=newArrayList();

list.add(newBook("1","a","b",1,"c"));

Bookb=list.get(0);

b.setId("2");

for(Bookbb:

list){

System.out.println(bb.getId());

}

}

}

Utils

packagecom.itheima.util;

importjava.util.LinkedHashMap;

importjava.util.Map;

importcom.itheima.domain.Book;

publicclassBookDb{

//Map<书的ID,书对象>

privatestaticMapbooks=newLinkedHashMap();

static{

books.put("ISBN-001",newBook("ISBN-001","JavaWeb开发","杨玉揆",10,"一本特别好的书"));

books.put("ISBN-002",newBook("ISBN-002","安卓入门","卢启龙",11,"一本一般好的书"));

books.put("ISBN-003",newBook("ISBN-003","JavaScript","王昭珽",38,"一本特别好的书"));

books.put("ISBN-004",newBook("ISBN-004","Spring","方立勋",30,"一本很有用的书"));

books.put("ISBN-005",newBook("ISBN-005","Strut2","王昭珽",58,"一本特别好的书"));

books.put("ISBN-006",newBook("ISBN-006","Hibernate","张孝祥",68,"一本超经典的书"));

}

publicstaticMapgetAll(){

returnbooks;

}

publicstaticBookgetBookById(Stringbookid){

returnbooks.get(bookid);

}

}

Web

1

packagecom.itheima.web.controler;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

importcom.itheima.domain.Book;

importcom.itheima.domain.Cart;

importcom.itheima.domain.MyConstant;

importcom.itheima.service.BookService;

importcom.itheima.service.impl.BookServiceImple;

publicclassBuyServletextendsHttpServlet{

privateBookServiceservice=newBookServiceImple();

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

Stringbookid=request.getParameter("bookid");

//获取购物车

HttpSessionsession=request.getSession();

Cartcart=(Cart)session.getAttribute(MyConstant.SHOPPING_CART);

Bookbook=service.findBookById(bookid);

//没有购物车,创建一个,并放入session中

if(cart==null){

cart=newCart();

cart.addBook(book);

session.setAttribute(MyConstant.SHOPPING_CART,cart);

}else{

//有,直接将内容添加到购物车

cart.addBook(book);

}

//转向购物车列表

request.getRequestDispatcher("/WEB-INF/pages/listCart.jsp").forward(request,response);

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doGet(request,response);

}

}

2

packagecom.itheima.web.controler;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.itheima.domain.Cart;

importcom.itheima.domain.CartItem;

importcom.itheima.domain.MyConstant;

//修改数量

publicclassChangeNumServletextendsHttpServlet{

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

//得到请求参数bookid和新的数量

Stringbookid=request.getParameter("bookid");

Stringnum=request.getParameter("num");//有可能是负数

intnewNum=0;

try{

newNum=Integer.parseInt(num);

if(newNum<=0)

thrownewRuntimeException();

}catch(Exceptione){

//用户输入错误的数值,提示用户

request.setAttribute("message","数量请输入数字");

request.getRequestDispatcher("/WEB-INF/pages/message.jsp").forward(request,response);

return;

}

//得到购物车。

根据bookid获取购物项

Cartcart=(Cart)request.getSession().getAttribute(MyConstant.SHOPPING_CART);

CartItemitem=cart.getMap().get(bookid);

//修改购物项中的num

item.setNum(newNum);

//转向listCart.jsp

request.getRequestDispatcher("/WEB-INF/pages/listCart.jsp").forward(request,response);

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doGet(request,response);

}

}

3

packagecom.itheima.web.controler;

importjava.io.IOException;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importcom.itheima.domain.Cart;

importcom.itheima.domain.MyConstant;

//清空购物车

publicclassClearItemServletextendsHttpServl

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2