jsp三大指令
1.page
2.include
3.taglib
先说一下jsp指令的格式
<%@指令名 attr1="" attr2="" %>
一般都会把jsp指令放在jsp文件的最上方
但是不是必须的
随便写一个
<%@abc name="Alice" age="10" %>
说一下page指令
page指令是最常用的指令
也是属性最多的指令
page指令中没有必须的属性,都是可选属性
如果没有任何属性,也是可以的
就像这样
<%@page %> 这样就是没有属性的page指令
还有就是
在jsp页面中,任何指令都可以重复出现
比如page指令就可以重复出现
比如这样
<%@page language="java" %>
<%@page pageEncoding="utf-8" %>
说一下page的重点属性
1.pageEncoding
pageEncoding是指定当前jsp页面的编码
服务器需要知道当前jsp使用的编码,不然服务器无法正确
把jsp编译成java文件,所以这个编码只要和真实的页面编码
一致就可以了.
2.contentType
contentType属性就和response.setContentType()
方法的作用是一样的,有2个作用,1个是设置响应字符流的
编码,1个是设置content-type响应头
JSP九个内置对象
1.out
jsp输出流,向客户端响应
2.config
jsp对象的ServletConfig对象
3.page
当前jsp对象
4.pageContext
提供对jsp页面命名空间的访问
5.exception
Throwable
6.request
HttpServletRequest
7.response
HttpServletResponse
8.application
ServletContext
9.session
HttpSession
常用的有:
out,request,response,application,session
我们说的
servlet中有三大域
1.request
2.session
3.application-ServletContext
jsp中有四大域
除了上面三个
还有一个
pageContext
我们来说一下这4个域对象
1.ServletContext
整个应用程序
2.session
整个会话(一个会话只有一个用户)
3.request
一个请求链
4.pageContext
一个jsp页面
这个域是在当前jsp页面和当前jsp页面中使用
的标签之间来共享数据
pageContext还可以代理其他的域
来看一下pageContext的设置属性方法
public abstract void setAttribute(String var1, Object var2);
public abstract void setAttribute(String var1, Object var2, int var3);
public abstract Object getAttribute(String var1);
public abstract Object getAttribute(String var1, int var2);
我们发现除了普通的set和get
还有指定int参数的get方法和set方法
这里的int参数其实指的就是域
我们看一下PageContext里面
是有常量代表其他三个域的,分别是
APPLICATION_SCOPE
REQUEST_SCOPE
SESSION_SCOPE
所以pageContext.get("name",SESSION_SCOPE)
这样就可以代理session域
来操作session域中的属性
另外
pageContext还可以取得其他的
内置对象
1.pageContext.getException();
2.pageContext.getSession();
3.getOut();
4.getPage();
5.getServletConfig();
6.getResponse();
7.getRequest();
8.getServletContext();
所有的内置对象,都有相对应的方法可以获取
然后说一下include指令
include是指 静态包含
和requestDispatcher的include()方法的功能是相似的
区别在于静态包含和请求包含的时间点是不一样的
<%@include %>
这个include指令,
是在jsp编译成java文件的时候完成的
但是请求包含的include()是一个方法
包含和被包含是两个servlet
也就是两个.class文件
他们是在响应的内容
在运行的时候合并了