发表于: 2020-06-14 22:15:11

1 1787


今天完成的事情:任务四深度思考 

1.JSP是什么?JSP中可否直接连接数据库?为什么现在不推荐使用%%来写JSP的代码,而是使用C标签?  

(1)JSP(Java Server Pages)是一种动态网页开发技术。使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。

(2)JSP中可以直接连接到数据库,但是不推荐这么做,因为别人在源文件中看到自己的数据来源,不安全

(3)<%%> 中写jsp代码非常不安全,而且页面负责的是表现层,在表现层中写代码又增加了程序的耦合程度。

2.Html有哪些常用的标签,CSS有几种引用方式,JS应该在顶部还是应该在底部加载?  

(1)deta, link,title,等等

 标签详解

https://blog.csdn.net/wang_liuyong/article/details/81113511

(2)CSS有三种引用方式:内部样式表、外部样式表、内联样式表

(3)JS应该在底部加载,原因:

①浏览器是自上而下地加载的

②对于前端优化来讲,先请求加载CSS资源和文本有利于用户体验

③js执行失败或者延时,将导致页面渲染阻塞

3.SEO是什么,后端在用JSP的方式输出页面时,可以做的SEO优化有哪些?  

搜索引擎优化 SEO(Search Engine Optimization),,SEO是指从自然搜索结果获得网站流量的技术和过程。是一种透过了解搜索引擎的运作规则来调整网站,以及提高目的网站在有关搜索引擎内排名的方式。

后端可以做的SEO优化:URL层级控制在3层以内,Tilet标题内容不超过80个字符,描述页面关键词内容不超过200个字符,主键页面关键词内容不超过100个字符

https://blog.csdn.net/weixin_44650537/article/details/106017137

4.Tiles现在的版本是多少?Template,Attribute,Definition,ViewPreparer分别是什么?

Tiles现在版本 3.0.8  

Template:网页布局文件

Attribute:属性

Definition:定义一个页面

ViewPreparer:视图准备者,视图渲染前的预处理

5.Tiles有什么用处,为什么要用Tiles,如果不使用Tiles,可以实现公共部分的复用吗?  

之前日报有提到过Tiles

http://www.jnshu.com/daily/112672?total=40&page=4&uid=39787&sort=0&orderBy=3

6.套页面的前后端协作方式中,怎么传递参数给前端JS?怎么控制页面之间的跳转? 

前端EL表达式传参,后端用ModelAndView,在控制层中可以返回到指定页面,然后在html页面中也可以使用代码惊醒跳转

7.Velocity,Freemark是什么,和JSP的区别在哪里?推荐使用哪种模板语言?  

(1)Velocity是一个基于Java的模版引擎。它允许web页面设计者引用Java代码中定义的方法。web设计者能够和Java程序员并行的工作来开发MVC模式的web站点,这意味着web页面设计者能够只关注创建设计良好的站点,而程序员能够只关注编写顶尖的代码。Velocity将Java代码从web页面中分离出来,使得web站点在长期的运行中具有更好的可维护性。

(2)FreeMarker是一个用Java语言编写的模板引擎。它基于模板来生成文本输出。Freemarker与web容器无关,即在web运行时,它并不知道servlet或者HTTP,它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java等。目前在企业中,主要用freemarker做静态页面或是页面展示。

(3)三者都是表现层的主要技术

区别

jsp

优点:

①功能强大,可以写java代码

②支持jsp标签(jsp tag)

③支持表达式语言(el)

④官方标准,用户群广,丰富的第三方jsp标签库

⑤性能良好。jsp编译成class文件执行,有很好的性能表现

缺点:

jsp没有明显缺点,非要挑点骨头那就是,由于可以编写java代码,如使用不当容易破坏mvc结构。

velocity是较早出现的用于代替jsp的模板语言

优点:

①不能编写java代码,可以实现严格的mvc分离

②性能良好,据说比jsp性能还要好些

③使用表达式语言,据说jsp的表达式语言就是学velocity的

缺点:

①不是官方标准

用户群体和第三方标签库没有jsp多。

③对jsp标签支持不够好

freemarker

优点:

①不能编写java代码,可以实现严格的mvc分离

性能非常不错

③对jsp标签支持良好

④内置大量常用功能,使用非常方便

⑤宏定义(类似jsp标签)非常方便

⑥使用表达式语言

缺点:

①不是官方标准

用户群体和第三方标签库没有jsp多

选择freemarker的原因:

①性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。

宏定义比jsp tag方便

③内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便

④支持jsp标签

⑤可以实现严格的mvc分离


8.EL表达式是什么?常用的EL表达式有哪些?  

EL表达式:expression language,即表达语言,它是为了便于存取数据而定义的一种语言,JSP2.0之后才成为一种标准。形式:以“${”开头,以“}”结尾

常用表达式

(1)遍历:

<c:forEach items="${resumePager.pageInfo.listPages}" var="i">

    <c:choose>

        <c:when test="${resumePager.pageInfo.page == i}">

            <li class="page-num current"><a href="#topAnchor"

                                            οnclick="loadPageFrm(${i});">${i}</a>

            </li>

        </c:when>

        <c:otherwise>

            <li class="page-num"><a href="#topAnchor"

                                    οnclick="loadPageFrm(${i});">${i}</a>

            </li>

        </c:otherwise>

    </c:choose>

</c:forEach>

 

(2)选择

<c:choose>

        <c:when test="${resumePager.pageInfo.page == i}">

            <li class="page-num current"><a href="#topAnchor"

                                            οnclick="loadPageFrm(${i});">${i}</a>

            </li>

        </c:when>

        <c:otherwise>

            <li class="page-num"><a href="#topAnchor"

                                    οnclick="loadPageFrm(${i});">${i}</a>

            </li>

        </c:otherwise>

    </c:choose>

 

(3)判断

<c:if test="${not empty items.resumeName}">

    <dt class="w100"><input type="checkbox" class="item-check" name=""/><a

            href="${pageContext.request.contextPath}/Resume/resumeDetail?id=${items.id}" target="_blank">${items.resumeName}</a></dt>

</c:if>

<c:if test="${not empty items.resumeName}">

    <dt class="w100"><input type="checkbox" class="item-check" name=""/>

<a          href="${pageContext.request.contextPath}/Resume/resumeDetail?id=${items.id}" target="_blank">${items.resumeName}</a></dt>

</c:if>

<c:if test="${ empty items.resumeName}">

    <dt class="w100"><input type="checkbox" class="item-check" name=""/><a

            href="${pageContext.request.contextPath}/Resume/resumeDetail?id=${items.id}" target="_blank"> </a></dt>

</c:if>

 

 

 

(4)判断是否为空

${ empty items.resumeName}  为空

${not empty items.resumeName} 不为空

 

(5)三目运算

${items.gender==1?"男":"女"}



9.C标签又是什么?怎么写一个自定义的标签?自定义的标签通常有什么用处?

JSP标准标签库(JSTL),是一个JSP标签集合,它封装了JSP应用的通用核心功能。C标签是其中一种

创建自定义标签步骤;

    (1) 创建标签的处理类

    (2) 创建标签库描述文件,该文件是采用XML文件格式;

    (3)  在需要使用该标签的JSP页面中引入;

https://blog.csdn.net/before_morning/article/details/44515397

10.套页面和前后端分离的方式有什么区别,应该在哪种情况下选用哪种解决方式?

套页面的话需要后端开发人员去写前端页面

前后端分离,术业有专攻。后端只负责数据的传输,前端负责数据的填充,渲染

明天的计划:Tag标签,任务四任务总结,预习任务五




返回列表 返回列表
评论

    分享到