发表于: 2020-06-14 22:15:11
1 1790
今天完成的事情:任务四深度思考
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标签,任务四任务总结,预习任务五
评论