JSP的内置对象及方法(5)
2指令元素:
Page指令:
include指令<%@include file=""%>,包含的这个文件一定是按照纯文本的格式去读取,读取文件的时候就有编码的问题,这时候就是pageEncoding
的设置问题了。
taglib指令
3页面乱码:pageEncoding/contentType
前者设置jsp页面读取的形式,后者设置一个响应的报头,告诉浏览器以什么编码格式去显示
如果没有设置pageEncoding而是只设置了contentType的话,那么pageEncoding要受contentType影响,反之亦然。
也就是两者只设一者的话都会按照一个编码去显示!
无论请求还是响应,递交的时候默认都是按照iso-8859-1去解码的。一定要保证读写和显示时候的编码都是一致的
4 动作元素:
<jsp:useBean>:主要作用:开放一个脚本变量并且向作用域里面存一个属性
<jsp:setProperty>
<jsp:getProperty>
<jsp:forward>
<jsp:include>
<jsp:param>
前六个比较重要!
<jsp:invoke>
<jsp:doBody>
<jsp:plugin>
<jsp:fallback>
<jsp:params>
三、过滤器和监听器
1、Filter/FilterConfig
init(FilterConfig)
doFilter(ServletRequest,ServletResponse,FilterChain)
destroy()
<filter>
<filter-name>
<filter-class>
</filter>
<filter-mapping>
<filter-name>
<url-pattern>|<servlet-name>
</filter-mapping>
url-pattern相同的过滤器处于一个过滤器链上,执行的顺序完全按照web.xml中的先后顺序进行。
2、监听器->ServletContext/HttpSession/ServletRequest
(1)生命周期
ServletContextListener:初始化(从BBS中读取全部讨论区并存储在应用程序的作用域中或是将全部封杀的IP读出来存储)和销毁
HttpSessionListener/HttpSessionActivationListener
ServletRequestListener
(2)属性的增删改
一般是AttributeListener去作的
<listener>
<listener-class>包名.类名</listener-class>
</listener>
四、四个作用域和九个内置对象
1、页面作用域对应的是pageContext,而不是page
2、内置对象:
pageContext/request/session/application
out->是JspWriter的实例,它有缓存,而PrintWriter没有缓存,在页面结束的时候一定会通过响应生成PrintWriter去写出缓存的内容!
如果缓存满了的话,要看:如果<%@page autoFlush="true"%>,则会自动刷新,如果是false,会抛出异常的!response.getWriter()
返回的是PrintWriter,不是JspWriter。
exception->isErrorPage=true的时候才有用
session:两种跟踪机制:一种是通过客户端的cookie存储,另外一种是将sessionId存在服务器端,
config->ServletConfig
page->Object->this
response:
五、EL表达式语言:
${}
1、常量、函数、变量的表达式
2、变量是存储在某一作用域中的同名的属性值
3、函数是在tld文件中声明的引用一个类的公共且静态的方法
4、11个内置对象
(1)作用域:pageScope/requestScope/sessionScope/applicationScope
(2)和页面通信:pageContext
(3)请求参数的:param/paramValues
(4)报头:header/headerValues
(5)Cookies/initParam ---<context-param>
5、点操作符和[]操作符和empty
相关新闻>>
- 发表评论
-
- 最新评论 更多>>