发表于: 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框架
评论