发表于: 2018-10-14 20:07:06

1 456


今天完成的任务:

一、tiles的简单使用

可以方便页面的重复调用:

Tiles:一种经典的页面布局

header:标题

menu:菜单

footer:版权信息

body:中间的内容是不同的

tile可以有一个框架,这样所有套用它框架的页面都是一种模式,并且除body之外,其他模块都是一样的


tiles的小列子:  需要tiles-extras的jar包

1、配置layout.xml的布局配置文件

里面配置的是网站的布局

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE tiles-definitions PUBLIC

  "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"

  "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

<tiles-definitions>

<!-- 主布局 -->

<definition name="layout" template="/mainLayout.jsp">

</definition>

<!-- 主布局 -->

<!-- 项目 -->

 <definition name="myView" extends="layout">    子页面继承于主页面

<put-attribute name="a" value="/a.jsp" />

 <put-attribute name="b" value="/b.jsp" />

</definition>

<!--项目-->

</t


2、配置主页面和两个子页面,子页面直接输出一句话就好

在主页面中加入两个子页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>

<%@ taglib uri="http://tiles.apache.org/tags-tiles-extras" prefix="tilesx" %>

<div>

  <tiles:insertAttribute name="a" />

  <tiles:insertAttribute name="b" />

</div



3、在spring-servlet.xml中配置layout.xml的视图定位

    <bean id="tilesViewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" >

    </bean>

    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">

        <property name="definitions">

            <list>

                <value>layout.xml</value>

            </list>

        </property>

</bean>

    

4、运行服务器,发现页面事由a、b页面的组合

@RequestMapping("/test")

public String testView() { 

 return "myView"; //这里的myView为layout.xml中配置的视图名称

}



二、listener和filter的复习

Listener:监听器

监听某一事件的状态改变(时时监听)

监听器主要是作用于三大作用域的:

application(全局)  session(会话)  request(请求)

分别对应servletcontextlistener    httpsessionlistener     

监听器的原理:接口回调

新建A类对象,新建接口,写好被监听的传入接口对象的方法,满足监听条件时接口对象运行自身方法(监听方法),

新建B类来实现接口,重写方法。

在应用测试类中新建A类对象,调用被监听方法(传入new B()实例),利用多态实现B中方法对A中方法的监听。

8个监听接口,分为3大类

1、作用域的创建、销毁

request:请求发送 和响应

session:会话开启和结束(时间到了,服务器关闭等)  是内置对象服务器启动就加载

servletcontext:服务器的开启关闭  

用的地方很少:用来统计session数量(用户数量)  完成自己想要的初始化工作

2、各个作用域中的加入、删除、和修改值。

servletrequestattributelistener

servletcontextarrributelistener

session    httpsessionattributelistener

很少用

3、特殊监听(不需要配置web.xml)针对session域的

监听值的绑定和解绑:

httpsessionbindinglistener

对象绑定进来了session.setArrrubute("bean",bean);

解绑:session.removeArrtibute.

监听session值的钝化和活化

钝化:序列化,将内存中的值放到硬盘(一定时间之内没有使用的),来减少内存,提高性能

活化:反序列化,将硬盘中的值放到内存中

在javabean中使用 需要同时实现serializable接口和httpsessionactivationlistener接口

过滤器filter:每个项目都要使用

在服务器打开时就初始化,位置在客户端和服务器中间,对于请求和响应进行拦截,可以同时配置多个过滤器

web.xml中配置类似servlet

主要作用:

对敏感词汇过滤

统一是指编码

自动登录(下面有案例代码)

url-pattern 标签中的写法:

1、全路径:/

2、/loginservlet

3、/demo01/*

4、/*.jsp

<dispatcher></dispatcher>标签

request:请求就拦截

forward:转发就拦截

include:包含页面的时候拦截

error:错误时拦截,一般转到错误页面

自动登录案例:

需求:第一次登录如果选择自动登录单选按钮,在重新打开浏览器时可以跳过登录界面(),会话未结束时

登录也是现实登录界面。

步骤:

1、实现登录功能

1.1环境配置,数据库写好,框架搭好,写好查询语句

1.2环境配置,写好登录界面的表单提交页面和登录成功页面,写好对应的servlet类,

1.3写好过滤器,创建实体类来映射表单提交的值

2、实现自动登录:

2.1filter获取提交表单,判断session中是否有改对象,如果有,取出session中的值,直接放行(进入到欢迎页面),没有往下

2.2判断cookie中是否有表单提交的实体对象,没有(就是第一次登录)的话,放行到登录界面,进行登录操作,判断是否勾选自动登录,如勾选就在在cookie中添加改对象,设定cookie的path,maxtime

同时在session中加入对象,之后放行到欢迎界面,如果cookie中有该实体对象,往下

2.3找到cookie中的对象,赋值给映射对象,进行重新登录,并且把放到session中,放行到欢迎页面

欢迎页面中对session进行判断,有对象值就显示欢迎回来。


明天的任务:

任务4



困难:东西杂多乱   解决:慢慢学慢慢理


收获:tiles框架











返回列表 返回列表
评论

    分享到