jsp 之 内置对象(9个)
来源:互联网 发布:mac卸载海马玩模拟器 编辑:程序博客网 时间:2024/05/14 06:53
名称
类型
application
javax.servlet.ServletContext
config
javax.servlet.ServletConfig
out
javax.servlet.jsp.JspWriter
page
java.lang.Object
pageContext
javax.servlet.jsp.PageContext
request
javax.servlet.http.HttpServletRequst
response
javax.servlet.http.HttpServletResponse
session
javax.servlet.http.HttpSession
exception
java.lang.Throwable
详细解释:
1.out 常用方法:
void clear() //清除缓冲区的内容
void clearBuffer() //清除缓冲区的当前内容
void flush() //清空流
int getBufferSize() //返回缓冲区以字节数的大小,如不设缓冲区则为0
int getRemaining() //返回缓冲区还剩余多少可用
boolean isAutoFlush() //返回缓冲区满时,是自动清空还是抛出异常
void close() //关闭输出流
举列子:(out和response的区别)
因为 out.write() 和<%= %> 和 response.getWriter().write() 都能实现输出的作用
举列:
<%@ page contentType="text/html;charset=UTF-8" %><html><head> <title>Out和其他的方法</title></head><body>然后我是第二个输出<% out.write("我是第三"); response.getWriter().write("我先输出"); //只有他是最有先输出(使用了response缓冲区) // 其他依次输出(相当于使用同一个out的缓冲区)%><%="我第四"%></body></html>输出:
原理:
Tomcat先从response缓冲区获取内容 然后 再从out缓冲区获取内容(默认8kb)
也可以进行设置关闭掉out缓冲区
<%@ page contentType="text/html;charset=UTF-8" buffer="none" %>或者
<%@ page contentType="text/html;charset=UTF-8" buffer="0kb" %>
然后out缓冲区就没有了 只能全部存储到response缓冲区了
代码:
<%@ page contentType="text/html;charset=UTF-8" %><%@ page contentType="text/html;charset=UTF-8" buffer="none" %><html><head> <title>Out和其他的方法</title></head><body>然后我是第二个输出<% out.write("我是第三 "); response.getWriter().write(" 我先输出"); //只有他是最有先输出(使用了response缓冲区) // 其他依次输出(相当于使用同一个out的缓冲区)%><%="我第四"%></body></html>
运行结果:
原理图:
因为out缓冲区关闭了,或者是空间不够了,只能把数据存入response缓冲区了
2.pageContext jsp上下文对象,
常用方法:
//默认是page域下的:
setAttribute(String name,Object obj) //设置属性的属性值
getAttribute(String name) //返回给定名的属性值
removeAttribute(String name) //删除属性及其属性值
//pageContext 还可以向指定域获取数据
setAttribute(String name,Object obj,int scope) //设置某个域下的属性的属性值
getAttribute(String name,int scope)//返回某个域下的定名的属性值
removeAttribute(String name,int scope) //删除某个域下的属性及其属性值
findAttribute(String name) //以此从小到大范围搜索
分别获取page域 request域 session域 application域
//还能获取剩余的8大隐式对象
getException //方法返回exception隐式对象
getPage //方法返回page隐式对象
getRequest //方法返回request隐式对象
getResponse //方法返回response隐式对象
getServletConfig //方法返回config隐式对象
getServletContext //方法返回application隐式对象
getSession //方法返回session隐式对象
getOut //方法返回out隐式对象
举例代码:
<%@ page contentType="text/html;charset=UTF-8" %><html><head> <title>pageContext方法</title></head><body><% //PageContext.PAGE_SCOPE = 1 //PageContext.REQUEST_SCOPE = 2 //PageContext.SESSION_SCOPE = 3 //PageContext.APPLICATION_SCOPE = 4 //不写后面的域 分别使用 page域(1) request域(2) session域(3) application域(4) pageContext.setAttribute("aaa","不废话快上车1111");//这 PAGE_SCOPE 域下的 request.setAttribute("aaa","不废话快上车2222"); //这 REQUEST_SCOPE 域下的 session.setAttribute("aaa","不废话快上车3333"); //这 SESSION_SCOPE 域下的 application.setAttribute("aaa","不废话快上车4444"); //这 APPLICATION_SCOPE 域下的 //写后面的域 全用pageContext.setAttribute(string name,Object obj,int scope) pageContext.setAttribute("bbb","PAGE_SCOPE(1)",1); //默认不写 PAGE_SCOPE 域下的 pageContext.setAttribute("bbb","REQUEST_SCOPE(2)",2); pageContext.setAttribute("bbb","SESSION_SCOPE(3)",3); pageContext.setAttribute("bbb","APPLICATION_SCOPE(4)",4);%><%=pageContext.getAttribute("aaa",PageContext.PAGE_SCOPE)%><br /><%=pageContext.getAttribute("aaa",PageContext.REQUEST_SCOPE)%><br /><%=pageContext.getAttribute("aaa",PageContext.REQUEST_SCOPE)%><br /><%=pageContext.getAttribute("aaa",PageContext.APPLICATION_SCOPE)%><br /><br /><%=pageContext.getAttribute("bbb")%><br /><%=request.getAttribute("bbb")%><br /><%=session.getAttribute("bbb")%><br /><%=application.getAttribute("bbb")%><br /><br /><%--findAttribute会从最小到大范围搜索--%><%=pageContext.findAttribute("aaa")%><br /><% pageContext.removeAttribute("aaa",1);%><%=pageContext.findAttribute("aaa")%><br /><% pageContext.removeAttribute("aaa",2);%><%=pageContext.findAttribute("aaa")%><br /><% pageContext.removeAttribute("aaa",3);%><%=pageContext.findAttribute("aaa")%><br /><% pageContext.removeAttribute("aaa",4);%><%--pageContext能获取其他8个隐式对象 (一般写框架常用)--%><% pageContext.getRequest();//request pageContext.getOut();//out pageContext.getResponse();//response pageContext.getSession();//session pageContext.getPage();//page pageContext.getErrorData();//exception pageContext.getServletConfig();//config pageContext.getServletContext();//application%></body></html>
运行结果:
3.session
常用方法:
void setAttribute(Sting name, Object value) //设定指定名字的属性的值,并将它添加到session会话范围内,如果这个属性是会话范围内存在,则更改该属性的值。
Object getAttribute(String name) //在会话范围内获取指定名字的属性的值,返回值类型为object,如果该属性不存在,则返回null。
void removeAttribute(String name) //删除指定名字的session属性,若该属性不存在,则出现异常。
void invalidate() //使session失效。可以立即使当前会话失效,原来会话中存储的所有对象都不能再被访问。
int getMaxInActiveInterval()// 获取会话的最大持续时间。
int getId() //获取会话的id 可以进行一些操作进行持久化
代码:
<%@ page import="java.util.Enumeration" %><%@ page contentType="text/html;charset=UTF-8" %><html><head> <title>session方法</title></head><body><% //简单设置一个session session.setAttribute("name","不废话快上车");%><%--输出一个session--%><%=session.getAttribute("name")%><% //移除一个session session.removeAttribute("name");%><br /><% session.setAttribute("aaa","AAA"); session.setAttribute("bbb","BBB"); session.setAttribute("ccc","CCC"); //批量输出 Enumeration<String> sessions = session.getAttributeNames(); while (sessions.hasMoreElements()) { String name = sessions.nextElement(); Object obj= session.getAttribute(name); out.write(name+":"+obj.toString()+"<br />"); }%><%--session持久化--%><% String id = session.getId(); Cookie cookie=new Cookie("JSESSIONID",id); cookie.setMaxAge(60*60*1000); //一小时 response.addCookie(cookie);%><%--摧毁session--%><% //手动摧毁session session.invalidate();%></body></html>
4.request
常用方法:
object getAttribute(String name) //返回指定属性的属性值
Enumeration getAttributeNames() //返回所有可用属性名的枚举
String getCharacterEncoding() //返回字符编码方式
int getContentLength() //返回请求体的长度(以字节数)
String getContentType() //得到请求体的MIME类型
ServletInputStream getInputStream() //得到请求体中一行的二进制流
String getParameter(String name) //返回name指定参数的参数值
Enumeration getParameterNames() //返回可用参数名的枚举
String[] getParameterValues(String name) //返回包含参数name的所有值的数组如checkbox这种多选框可用此方法
String getProtocol() //返回请求用的协议类型及版本号
String getScheme() //返回请求用的计划名,如:http.https及ftp等
String getServerName() //返回接受请求的服务器主机名
int getServerPort() //返回服务器接受此请求所用的端口号
BufferedReader getReader() //返回解码过了的请求体
String getRemoteAddr() //返回发送此请求的客户端IP地址
String getRemoteHost() //返回发送此请求的客户端主机名
void setAttribute(String key,Object obj) //设置属性的属性值
String getRealPath(String path) //返回一虚拟路径的真实路径
void setCharacterEncoding(String code) //用于设置传递的字符编码,可用于解决乱码问题
具体可以查看:http://blog.csdn.net/qq_35146878/article/details/78700946
5.response
常用方法:
String getCharacterEncoding() //返回响应用的是何种字符编码
ServletOutputStream getOutputStream() //返回响应的一个二进制输出流
PrintWriter getWriter() //返回可以向客户端输出字符的一个对象
void setContentLength(int len) //设置响应头长度
void setContentType(String type) //设置响应的MIME类型
sendRedirect(java.lang.String location) //重新定向客户端的请求
具体查看:http://blog.csdn.net/qq_35146878/article/details/78681167
6.page
page就是指向的当前jsp本身
7.application
ObjectgetAttribute(Stringname) //返回给定名的属性值
void setAttribute(String name,Object obj) //设定属性的属性值
void removeAttribute(String name) //删除一属性及其属性值
String getRealPath(String path) //返回一虚拟路径的真实路径
URL getResource(String path) //返回指定资源(文件及目录)的URL路径
RequestDispatcher getRequestDispatcher(String uripath) //返回指定资源的RequestDispatche
具体查看:http://blog.csdn.net/qq_35146878/article/details/78668129
8.exception
必须要把isErrorPage设定为true。
常用方法
String getMessage() // 返回错误信息
- jsp 之 内置对象(9个)
- JSP的9个内置对象之config对象
- JSP的9个内置对象之exception对象
- JSP的9个内置对象之out对象
- JSP的9个内置对象之pageContext对象
- JSP的9个内置对象之request对象
- JSP 9个内置对象 .
- jsp 9个内置对象!
- jsp内置9个对象
- JSP内置9个对象
- JSP 9个内置对象
- jsp 9个内置对象
- JSP 内置9个对象
- jsp内置9个内置对象
- JSP的9个内置对象之response
- JSP内置对象(9个常用的内置对象)
- JSP内置对象(9个常用的内置对象)
- JSP内置对象(9个常用的内置对象)
- MySqlServer安装到连接全过程
- 每日练习|Day011
- 深度增强学习(DRL)漫谈
- 静态顺序表
- Linux:使用bitnami向阿里云一键安装LAMP
- jsp 之 内置对象(9个)
- samba案例
- BigDecimal加减乘除以及大小比较
- 三位数的 黑洞数495 HNUST OJ 1868 ( 三位数的比较 )
- Activity中finish() onDestroy() 和System.exit()的区别
- spring学习笔记(三) --- bean中的引用赋值和数组/集合赋值
- 用深度学习构造聊天机器人简介
- keras搬砖系列-模型可视化
- 写于开始