记账本开发记录——第十七天(2020.2.4)

今日学习了jsp el表达式和jstl。其实这些对于我来说都并不陌生了,在上学期的学习中已经使用过了,这里只是对其进行了一个更加系统的了解。

首先,jsp,指的是JavaServer Pages,其实就是嵌入了java代码的html界面。通过jsp我们可以让界面动态显示。使用jsp有三种方式:

1)<%java代码%> ----- 内部的java代码翻译到service方法的内部

2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print()

3)<%!java代码%> ---- 会被翻译成servlet的成员的内容

jsp的运行过程,其实就是将jsp编译成servlet的过程。jsp的本质其实就是一个servlet。因为已经有过经验,这里不再做demo了

jsp中,有九个隐式对象,其中最重要的是out对象和pageContext对象,前者可以用来在jsp界面直接输出数据,后者可以用来读取绝对路径。同时后者可以读取其他八大隐式对象。

jsp中,可以使用标签来包含其他的界面,如一个网站的头部和尾部都是同一段代码,那么就可以将头部和尾部做成jsp,在网站中直接读取他。

el表达式,有四种,其中最常用的为${},即依次从pageContext域,request域,session域,application域获取属性,找到后不再往后进行。

el表达式中,有一个极为常用的表达:${pageContext.request.contextPath},用来取得绝对路径,在以后的开发中会很常用到。

jstl (JSP Standard Tag Library)即jsp标准标签库,常用的即c标签。常用的有:

1)<c:if test=””>标签  2)<c:forEach>标签

最后,复习了MVC模式,以及三层架构。三层架构即web层,service层,dao层。

通过以上学习的内容,实现了一个显示所有商品的demo,项目结构如下:

 

关于dao层,service层和servlet层的代码就不贴了,比较简单,也都学习过了。

下面贴一下前端jsp这部分的代码:

<c:forEach items="${productList }" var="product">
            <div class="col-md-2" style="height:250px">
                <a href="product_info.htm"> 
                    <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">商城价:&yen;${product.shop_price }</font>
                </p>
            </div>
        </c:forEach>
原文地址:https://www.cnblogs.com/wushenjiang/p/12260890.html