完成商品列表的展示----Java EE三層架構(gòu)(web+service+dao)

三層架構(gòu)主要體現(xiàn)三目錄結(jié)構(gòu):

image.png

ProductListServlet.java文件代碼:

package com.zys.web;

import java.io.IOException;
import java.sql.SQLException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.zys.domain.Product;
import com.zys.service.ProductService;
import com.zys.utils.DataSourceUtils;

public class ProductListServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        //傳遞請(qǐng)求到service層
        ProductService service = new ProductService();
        List<Product> productList = null;
        try {
            productList = service.findAllProduct();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        //全部的商品的數(shù)據(jù)準(zhǔn)備好了 轉(zhuǎn)發(fā)給jsp進(jìn)行數(shù)據(jù)的展示
        request.setAttribute("productList", productList);
        request.getRequestDispatcher("/product_list.jsp").forward(request, response);
        
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request, response);
    }
}

ProductService.java文件代碼:

package com.zys.service;

import java.sql.SQLException;
import java.util.List;

import com.zys.dao.ProductDao;
import com.zys.domain.Product;

public class ProductService {

    public List<Product> findAllProduct() throws SQLException {
        // 沒有復(fù)雜業(yè)務(wù)
        //傳遞請(qǐng)求到dao層
        ProductDao dao = new ProductDao();
        List<Product> productList = dao.findAllProduct();
        return productList;
    }

}

ProductDao.java文件代碼:

package com.zys.dao;

import java.sql.SQLException;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.zys.domain.Product;
import com.zys.utils.DataSourceUtils;

public class ProductDao {

    public List<Product> findAllProduct() throws SQLException {
        // 操作數(shù)據(jù)庫
        QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
        String sql = "select * from product";
        List<Product> productList = runner.query(sql, new BeanListHandler<Product>(Product.class));
        return productList;
    }
    
}

JSP頁面展示:以EL表達(dá)式與JSTL配合使用

    <c:forEach items="${productList }" var="product">
        <div class="col-md-2" style="height:250px">
            <a href="productInfo?id=${product.pid }"> 
                <img src="${pageContext.request.contextPath }/${product.pimage }" width="170" height="170" style="display: inline-block;">
            </a>
            <p>
                <a href="product_info.html" style='color: green'>${product.pname }</a>
            </p>
            <p>
                <font color="#FF0000">商城價(jià):&yen;${product.shop_price }</font>
            </p>
        </div>
    </c:forEach>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末精钮,一起剝皮案震驚了整個(gè)濱河市检诗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖糟秘,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異育叁,居然都是意外死亡诱贿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門罐栈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黍衙,“玉大人,你說我怎么就攤上這事悠瞬∶峭悖” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵浅妆,是天一觀的道長望迎。 經(jīng)常有香客問我,道長凌外,這世上最難降的妖魔是什么辩尊? 我笑而不...
    開封第一講書人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮康辑,結(jié)果婚禮上摄欲,老公的妹妹穿的比我還像新娘。我一直安慰自己疮薇,他們只是感情好胸墙,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著按咒,像睡著了一般迟隅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,713評(píng)論 1 312
  • 那天智袭,我揣著相機(jī)與錄音奔缠,去河邊找鬼。 笑死吼野,一個(gè)胖子當(dāng)著我的面吹牛校哎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瞳步,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼闷哆,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了谚攒?” 一聲冷哼從身側(cè)響起阳准,我...
    開封第一講書人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馏臭,沒想到半個(gè)月后野蝇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡括儒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年绕沈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帮寻。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乍狐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出固逗,到底是詐尸還是另有隱情浅蚪,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布烫罩,位于F島的核電站惜傲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏贝攒。R本人自食惡果不足惜盗誊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望隘弊。 院中可真熱鬧哈踱,春花似錦、人聲如沸梨熙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咽扇。三九已至邪财,卻和暖如春舅列,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卧蜓。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留把敞,地道東北人弥奸。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像奋早,于是被迫代替她去往敵國和親盛霎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 對(duì)于某些人來說耽装,關(guān)乎于自我的利益就這么褪去愤炸,而對(duì)于別人來講,都只是一個(gè)過渡而已掉奄,有的人如是规个,有的這樣牽扯流離,有的...
    子之霧閱讀 202評(píng)論 0 0
  • 交底秘笈 業(yè)主姓建,設(shè)計(jì)師和項(xiàng)目經(jīng)理在開工前確認(rèn)房子的基本情況诞仓,對(duì)接下來的施工都做到心中有數(shù) 房屋情況檢查 確認(rèn)保留設(shè)...
    三點(diǎn)四行間閱讀 313評(píng)論 0 0
  • 體脂27.8%!歷史最低了速兔! 早餐做了南瓜泥墅拭,抹全麥吐司,加3個(gè)雞蛋白涣狗。到公司以后買了一杯低脂奶馥芮白谍婉。中午和姑娘...
    FabulousYou閱讀 229評(píng)論 0 1