发表于: 2017-11-09 23:24:02

1 689


今天做的事情:


              测试步骤二中的小遗留,根据传入的时间格式把Long转换成时间格式。


              因为设计表时,并没有用到时间格式,所以在Student表中加了一个create_date字段进行测试,还有一个获取当前时间的方法。

                

                    controller

            

                   jsp

<form>
<table border="1" cellpadding="5" cellspacing="0" style="align-content: center">
<tr>
<td>sid</td>
<td>${student.sid}</td>
</tr>

<tr>
<td>sname</td>
<td>${student.sname}</td>
</tr>
<tr>
<td>create_date</td>
<td><date:date value ="${student.create_date}"/></td>
</tr>
<tr>
<td>当前时间</td>
<td><date:date value ="${date}"/></td>
</tr>
</table>

</form>

              

                 页面

                     

                   create_date字段我在数据库设置的是201711090256,使用logger打印的 获取当前时间的 date 为 1510196612237 。这样的话,很方便将long字段转换成日期格式。


                

                 将项目的路径换成服务器的,还有数据库名,所涉猎的表导出sql文件,再导入服务器中,还有改登录密码,我设置的密码和本地不一样,容易记混。

                 将项目打包放在服务器下的resin的webapps下,启动,./resin.sh start  ,不过,在每次启动web容器之前,最好先查看是否启动着,或者,可以执行关闭,这样是没有问题的。


                


                使用之前设置的子域访问,经过测试,所有页面都可以正常加载,没有问题。


                再来温习一下nginx, nginx可以做一个反向代理,可以作为一个代理服务器,用来接收客户端或者网络上传来的连接请求,然后将请求转发到内部服务器,内部处理后,再通过代理返回给客户端。这个代理服务器,通常由客户端指定,将本来要发到web服务器上的http请求,先发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种服务的方式成为反向代理服务。

               反向代理服务器通常由两种模型,它可以作为内容服务器的替身,也可以作为内容服务器集群的负载均衡器。


             1.作为内容服务器的替身 :  如果内容服务器具有需要保护的安全信息,可以在防火墙外部设置一个代理服务器作为内部服务器的替身,当内部返回错误信息,代理服务器可以截取消息并更改错误信息的url,这样又多了一道保护屏障。

               

             2:作为内容服务器的负载均衡器。:Web服务器每天都会接受大量的请求,这时候可以使用代理服务器分担压力,提高效率。当客户端发送真正服务器的请求,代理会将请求存入高速缓存,如果不至一个代理,DNX=S可以采用“循环复用法”选择其IP,随机选择请求路由,然后过经过不同的代理服务器。



              

                          昨天日报也详细讲解了。


     


                       当很多页面有重复的地方,就可以将页面分成几个部分,共有的部分,拿出来,谁要用到。就可以使用。这就是tiles的特性。


                    

<definition name="DefaultTemplate"  template="/WEB-INF/jsp/tiles10.jsp" >

<put-attribute name="title" value="" />
<put-attribute name="head" value="/WEB-INF/jsp/t10/head.jsp" />
<put-attribute name="menu" value=""/>
<put-attribute name="body" value=""/>
<put-attribute name="footer" value="/WEB-INF/jsp/t10/footer.jsp"/>
</definition>

<definition name="10" extends="DefaultTemplate">
<put-attribute name="title" value="iiii" />
<!--<put-attribute name="head" value="" />-->
<put-attribute name="menu" value="/WEB-INF/jsp/t10/menu.jsp" />
<put-attribute name="body" value=""/>
<!--<put-attribute name="footer" value="" />-->

   <!--<put-attribute name="item" expression="/${item}.jsp" />-->
</definition>

               在name为DefaultTemplate中,声明template为总的布局jsp,这里放着共有的head.jsp , fotter.jsp 。name为10 的 去继承,就可以获取头部和尾部的jsp。当有很多页面的时候,就可以使用这种方式,很方便的完成。



http://www.jnshu.com/dailyCreate///

             


3.熟练使用c标签,el表达式。

4.为什么要使用tiles框架?




3.核心标签库是JSTL中的核心库,提供支持。

     (1)<c:set> 变量值和对象属性。 <c:set value="值" var="变量名" scope="变量的作用域" target="对象名" property=" 对象属性名"></c:set>

     (2)<c:remove>:在指定作用域范围内删除变量。<c:remove var="变量名" scope="作用域"/>

     (3) 条件标签:<c:if> <c:choose> <c:when> <c:otherwise>

     (4)迭代标签:<c:forEach> <c:forTokens>  <c:forEach>:用于遍历一个对象集合。

     (5)<c:url>:用于对URL地址进行编码。

     (6)<c:catch>:用于处理JSP页面错误。

 


        el表达式的语法结构:${expression} , 提供. 和[] 两种运算符来存取数据,比如说${user},是要取出user的一条数据。是变量,会依序从Page,Request,Session,user的变量,如果中途找到,便返回,一般我都放在session中,或者返回这个user

      

属性范围在EL中的名称
         Page         PageScope
         Request         RequestScope
         Session         SessionScope
         Application     ApplicationScope

           这四个是el的隐式对象


pageContext
pageContext取得其他有关用户要求或页面的详细信息。
     ${pageContext.request.queryString}         取得请求的参数字符串
     ${pageContext.request.requestURL}         取得请求的URL,但不包括请求之参数字符串
     ${pageContext.request.contextPath}         服务的web application 的名称
     ${pageContext.request.method}           取得HTTP 的方法(GET、POST)
     ${pageContext.request.protocol}         取得使用的协议(HTTP/1.1、HTTP/1.0)
     ${pageContext.request.remoteUser}         取得用户名称
     ${pageContext.request.remoteAddr }         取得用户的IP 地址
     ${pageContext.session.new}             判断session 是否为新的
     ${pageContext.session.id}               取得session 的ID
     ${pageContext.servletContext.serverInfo}   取得主机端的服务信息

                 

              

迭代标签
语法:<c:forEach items=“collection” var=“name” varStatus=“status” begin=“int“ 
end=”int” step=“int” >
           //循环体
           </c:forEach>
     说明:1)items:是集合,用EL表达式;
       2)var:变量名,存放items
       3)varStatus: 显示循环状态的变量
①index:从0开始;
                     ②count:元素位置,从1开始;
                     ③first:如果是第一个元素则显示true;
                     ④last:如果是最后一个元素则显示true;
       4)begin:循环的初始值(整型);
       5)end: 循环结束 ;
       6)step:步长,循环间隔的数值;

                 这个是经常用到的。




4: 为什么要用tiles, tiles是一种模板机制,它能将网页的布局和内容分离。先创建模板,然后动态的插入内容进去,建立在jsp的include指令的基础上,但比它功能更强大。 采用tiles模板,大大提高了代码的可重用性和为维护性,模板包含了网页共同的布局,如果布局发生变化,只需要修改模板文件。





              晚上看了些任务5的,先接触下




遇到的问题:


                 错误的话,还能找出来,理解东西时,有点慢。




收获:


               学会使用tiles的使用,会使用tag自定义标签转换类型输出,C标签一些知识。






返回列表 返回列表
评论

    分享到