JSP内置对象详解
Posted 永恒之心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP内置对象详解相关的知识,希望对你有一定的参考价值。
jsp中内置对象:request、response、session、applecation、out、pagecontesx、config、page、exception、cookie
1、request:是javax.servlet.httpservletRequest类型的对象,该对象是用户客户端的请求信息,主要用户接受客户端通过http协议传送到服务器的数据!
(包括头部信息、系统信息、请求方式以及请求信息参数),jsp内置对象Web容器所创建的一组对象!
生命周期:jsp发出请求一个request即生命周期的开始,作用域为一次请求。
1、使用forward携带数据到另一页面,它的生命周期依然没有结束!
2、使用Redirrect那么该request的生命周期则结束!
常用方法:
1.request.setCharacterEncoding("utf-8");//设置字符集
2.String[] likes = request.getParameterValues("like"); //获取页面表单对应的多个值
3.request.getParameterValues() //获取页面的单个提交的值
4.String request.getRemoterAddr() //获取用户提交的IP地址
2、response:代表着对客户端的响应,将从服务器处理过的数据,通过转发传送到客户端。
a、重定向:response.sendRedirect(重定向)("weicome.jsp");跳转新的页面改变网址,不会携带数据!
b、转发:.RequestDispatcher(请求发送) rd =request.getRequestDispatcher(请求转发)("weicome.jsp"); rd.forward(向前)(request, response);不改变网址,会携带数据!
1、转发是在服务器发生作用,通过forward方法将提交的信息在多个页面传递。
服务器内部控制权会转移,客户端浏览器的地址不会显示转发后的地址。
2.重定向是在客户端发挥作用,通过请求新的地址实现跳转,重新请求新地址
地址栏会显示新的地址。
生命周期:对request的请求做出响应则结束
3、session:服务器与浏览器之间的一次会话,服务器创建与客户端请求相关的对象,服务器为每个客户端的用户生成一个session对象,用于保存该用户的信息,跟踪用户
的操作状态,session内部才用Map类保存数据,因此保存数据的格式Key/value!
常用方法:
1、setAttrbute(strig Key,Object value) 以key、value的形式保存对象值
2.getAttrbute(Key,value) 获取key对象值
3.getMaxInactiveInterval() 获取session非活动的时间,秒为单位!
4.getid() 获取session对象的编号
5.invalidate() 设置session对象失效
生命周期:浏览器的打开与关闭,默认为30分钟!
4、application:实现服务器内数据共享,对象可将信息保存在服务器中。
常用方法:
1、setAttrbute(strig Key,Object value) 以key、value的形式保存对象值
2.getAttrbute(Key,value) 获取key对象值
3.getRealPath() 返回相对路径的
生命周期:整个服务器的打开、关闭
5、out:在Web浏览器中输出信息,管理应用在服务器的输出缓冲区,用于向客户端输出数据!out是从httpServetRequest类而得到。
常用方法:
1、void print()输出数据,不换行。
2、void println() 输出数据,换行。
3、void newLine()输出一个换行符。
4、void flush()输出缓冲区里的内容。
5、void close() 关闭输出流。
6、void clear() 清除缓冲区里的内容。
7、void clearBuffer() 清除缓冲区里的内容。
8、int getBufferSize() 获得缓冲区的大小。
int getRemaining() 获得缓冲区里没有使用的空间大小
注意:在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
6、pageContext:该对象的作用主要是获取任何范围的参数,通过它可直接获取jsp页面的out、request、reponse、session、application等对象!
pagecontext对象的创建和初始化都是由Web容器完成,在jsp页面可直接使用!
常用方法:
pagecontext对象能够存取其他隐含对象。
1.pagecontext对象存取其他隐含对象属性的方法,此时需要指定范围的参数。
object getattribute(string name, int scope)
enumeration getattributenamesinscope(int scope)
void removeattribute(string name, int scope)
void setattribute(string name, object value, int scope)
范围参数有四个,分别代表四种范围:page_scope、request_scope、session_scope、application_scope
2.pagecontext对象取得其他隐含对象的方法
exception getexception( ) 回传目前网页的异常,不过此网页要为error page,
jspwriter getout( ) 回传目前网页的输出流,例如:out
object getpage( ) 回传目前网页的servlet 实体(instance),例如:page
servletrequest getrequest( ) 回传目前网页的请求,例如:request
servletresponse getresponse( ) 回传目前网页的响应,例如:response
servletconfig getservletconfig( ) 回传目前此网页的servletconfig 对象,例如:config
servletcontext getservletcontext( ) 回传目前此网页的执行环境(context),例如:application
httpsession getsession( ) 回传和目前网页有联系的会话(session),例如:session
3.pagecontext对象提供取得属性的方法
object getattribute(string name, int scope) 回传name 属性,范围为scope的属性对象,回传类型为object
enumeration getattributenamesinscope(int scope) 回传所有属性范围为scope 的属性名称,回传类型为enumeration
int getattributesscope(string name) 回传属性名称为name 的属性范围
void removeattribute(string name) 移除属性名称为name 的属性对象
void removeattribute(string name, int scope) 移除属性名称为name,范围为scope 的属性对象
void setattribute(string name, object value, int scope) 指定属性对象的名称为name、值为value、范围为scope
object findattribute(string name) 寻找在所有范围中属性名称为name 的属性对象
7、config :主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器
把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
1、public String getParameter(String name);
返回制定的名称name初始化参数的值,如果参数不存在则返回null。
2、public java.util.Enumeration getinitParameterNames();
得到所有初始化参数名称的枚举。xml文件过滤器的配置
3、public ServletContext getServletContext();
返回Servlet或JSP页面所属的ServletContext的一个引用。
4、public String getServletName();
返回Servlet实例或JSP页面的名称,此名称可以在Web应用部署描述文件中指定,对于一个未注册(也就是未命名)Servlet实例或JSP页面,将返回该Servlet类的类名。
8、page:代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
常用指令:
<%@ page contentType="someMimeType; charset=someCharacterSet" %>
<%@ page pageEncoding="GBK" %>
<%@ page autoFlush="true" %> <%--Default--%>
<%@ page autoFlush="false" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
9、exception:该对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具
有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并
把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。
如何使用:
1、可能出错的页面:在有可能产生异常或错误的JSP页面中,使用page指令设置errorPage属性,属性值为能够进行异常处理的某个JSP页面。简单
来说,只要在当前JSP页面中产生了异常,就交给另外一个专门处理异常的JSP页面。
2、专门处理错误的页面:在专门负责处理异常的JSP页面中,使用page指令设置isErrorPage属性为true,并使用exception对象来获取出错信息。
常用方法:
1、String getMessage();返回简短的jsp页面信息
2、String toString();返回详细的jsp页面错误信息
10、cookie:保存在客户端的一系列文本信息,
作用:
1、对特定对象的追踪
2、简化用户登录
3、统计网页访问量
安全性能:
容易泄漏客户端用户的信息
语法:
以上是关于JSP内置对象详解的主要内容,如果未能解决你的问题,请参考以下文章