java 过滤器映射_JavaWeb - EL,JSTL,过滤器,filter映射,通配符

下载时 ,文件名乱码问题:

edge:

URLEncoder.encode(fileName,“UTF-8”)

firefox:

给文件名 加:

前缀 =?UTF-8?B?

String构造方法

Base64.encode

后缀 ?=

示例:

response.addHeader(“content-Disposition”,“attachment;filename==?UTF-8?B?”+ new String( Base64.encodeBase64(fileName.getBytes(“UTF-8”)) ) +"?=" );//fileName包含了文件后缀:abc.txt

EL :为了消除jsp中的Java代码

语法:

${EL表达式}

a. EL不需要导包

b.在el中调用属性,其实是调用的getXxx()方法

${范围.对象.属性.属性的属性 }

操作符:操作:属性,不是对象

. : 使用方便

[]: 如果是常量属性,需要使用双引号/单引号 引起来;比点操作符更加强大

[]强大之处:

a.可以容纳一些 特殊符号 (. ? -)

b.[]可以容纳 变量属性 (可以动态赋值)

String x = “a”;

requestScope.a等价于{requestScope.a}等价于requestScope.a等价于{requestScope[“a”]}等价于KaTeX parse error: Expected '}', got 'EOF' at end of input: {{requestScope[x]}

c.可以处理数组

${requestScope.arr[0] }

普通对象、map中的变量

通过EL获取JSP 九大内置对象

${pageContext }

${pageContext.request }

${pageContext.sessoin }

JSTL:比EL更加强大

需要引入2个jar :jstl.jar standard.jar

引入tablib :

其中prefix=“c” :前缀

核心标签库: 通用标签库、条件标签库 迭代标签库

a.通用标签库

赋值

i:

在某个作用域之中(4个范围对象),给某个变量赋值

//等价于request.setAttribute("name", "zhangsan") ;

ii:

给普通对象赋值

在某个作用域之中(4个范围对象),给某个对象的属性复制 (此种写法,不能指定scope属性)

给map对象赋值

注意 可以给不存在的变量赋值 (但不能给不存在的对象赋值)

:显示

true:

false:

:删除属性

选择:

if(boolean)

单重选择

if else if… esle if… else /switch

在使用 test="" 一定要注意后面是否有空格

例如:

test="${10>2 }" true

test="${10>2 } " 非true

循环(迭代标签库)

for(int i=0;i<5;i++)

-${name }-

for(String str:names)

${student.sname }-${student.sno }

过滤器:

实现一个Filter接口

init()、destroy() 原理、执行时机 同Servlet

配置过滤器,类似servlet

通过doFilter()处理拦截,并且通过chain.doFilter(request, response);放行

filter映射

只拦截 访问MyServlet的请求

/MyServlet

拦截一切请求(每一次访问 都会被拦截)

/*

通配符

dispatcher请求方式:

REQUEST:拦截HTTP请求 get post

FORWARD:只拦截 通过 请求转发方式的请求

INCLUDE:只拦截拦截通过 request.getRequestDispatcher("").include() 、通过此种方式发出的请求

ERROR:只拦截发出的请求

过滤器中doFilter方法参数:ServletRequest

在Servlet中的方法参数:HttpServletRequest

过滤器链

可以配置多个过滤器,过滤器的先后顺序 是由 的位置 决定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值