JAVA Web基础2-JSP九大内置对象

在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象.
一.九大内置对象
1、内置对象/作用域:
            1, application ------全局作用域
            2, session ------会话作用域
            3, request ------请求作用域
            4, pageContext ------页面作用域//context:环境,上下文
    内置对象:
            5, response ------响应对象
            6, out ------输出流对象,主要的方法:out.println(a);效果等同于<%=a %>
            7, page ------当前页面对象的实例
            8, exception ------异常对象
            9, config------配置对象,主要分为 ServletConfig/FilterConfig
2、优先级(按照生命周期的长短):
application > session > request > pageContext
3.页面中的form表单提交方式:
    post:提交内容不可见, 没有长度限制
    get:有长度限制, 提交内容在地址栏可见
二.解析九大内置对象
1.request对象
request对象是javax.servlet.httpServletRequest类的实例,该对象代表了客户端的请求信息,主要用于接受通过http协议传送到服务器的数据,(包括头信息、系统信息。请求方式及请求参数等),该对象的生命周期为一次请求。
常用方法:request.getParameter(String name)---获取请求参数name的值,返回类型为String型;
        request.getParameterValues(String name)---获取请求参数为name的数组,返回类型为String[ ]型,类似于复选框;
        request.setAttribute(String,Object)---设置请求作用域中的属性;
        request.getAttribute(String)---获取请求作用域中的属性,返回类型为Object型;
        request.getContextPath()---获取上下文路径;例:/项目名
        request.getRealPath("")---获取传入这个路径的物理路径,即从磁盘开始;
        request.getRemoteAddr()---获取发送此请求的客户端IP地址;例:0:0:0:0:0:0:0:1
        
        request.getServerName()---获取请求服务器的主机名;例:localhost
        request.getServerPort()---获取服务器的端口号;例:8081
        request.getProtocol()---获取请求用的协议类型和版本号;例:HTTP/1.1
        request.getContentLength()---获取请求体的长度,以字节为单位;例:-1
        request.getContentType()---获取请求体的MIME类型;

解决request中出现中文乱码的问题
post方式:通过使用request.setCharacterEncoding("utf-8")来设置(多采用这一种方式)
get方式:通过修改Tomcat服务器中的server.xml配置文件来设置:
    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8" />
2.response对象
是httpServletResponse类的实例,指对客户端的相应,其作用域只在JSP页面有效
常用方法:response.setCharactorEncording("utf-8")---设置相应页面的字符编码;
        response.setContentType("text/html;charset:utf-8")---设置MIME类型请求头;
        response.getWriter().append(String)---向页面输出一段字符串;
3.out对象
可由pageContext.getOut()获得,用于输出信息
out.print 与 response.getWriter()的区别:
response.getWriter():是PrintWriter类(继承自writer类),可直接输出结果,优先于out对象,不会抛出异常;
out对象:是JspWriter类(抽象类),需要先将内容存到缓存区里,当缓存区满了或达到一定条件后才会调用输出方法将内容输出,可采用out.flush()方法刷新缓存区将内容提前输出,会抛出异常;
4.application全局作用域
是servletContext类的实例,其作用周期从服务器的开始到结束,类似于系统的全局变量;
常用方法:setAttribute(String, Object)---设置某个属性和属性值
        getAttribute(String)---获得某个属性的值
        getAttributeNames()---获取application对象中所有的属性名
5.session对象
是httpSession类的实例,当用户第一次访问某个jsp或者servlet的时候, 服务器就会为当前的访问创建一个session, 用于跟踪用户的操作状态,并生成一个sessionId, 每次客户端向服务器发送请求的时候, 都会将这个sessionId带过去进行验证。
生命周期:如果用户不在页面进行各种活动,如链接、增删改查等,或浏览器关闭。session在系统默认30分钟后会自动失效,此时再次访问的时候会创建一个新的session,但是原来的session还会存在, 只不过没有任何请求再带着那个旧的sessionId让服务器去验证了。
常用方法:long  getCreationTime()---返回session对象创建的时间
        String  getId()---返回一个sessionid, 是唯一的
        void  setAttribute()---设置一个属性和一个属性值
        Object  getAttribute()---获取某个属性的属性值
        String[] getValueNames()---以数组的形式获取session对象中所有可用属性的属性名
        setMaxInactiveInterval(int)---设置session经过多长时间之后失效(默认30分钟)
        getMaxInactiveInterval()---获取session的失效时间(单位是秒)
3种销毁session的方法:
                1. 调用session.invalidate()方法;//invalidate:使失效
                2, session自己过期了;
                设置session过期时间也可以在web.xml中设置
                    <session-config>
                        <session-timeout>
                            10<!-- 单位是分钟  -->
                        </session-timeout>
                    </session-config>
                3, 服务器重新启动;
6.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
服务器开启后会先加载WEB-INF(这里面的文件无法直接访问,比较安全)里的web.xml文件
例:这个参数会被保存在application作用域中
<context-param>
    <param-name>admin</param-name>
    <param-value>1234</param-value>
</context-param>
7.pageContext对象
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
8.page对象
page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
9.exception对象
exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

原文地址:https://www.cnblogs.com/wyc1991/p/9165171.html

时间: 2024-10-20 17:03:52

JAVA Web基础2-JSP九大内置对象的相关文章

Java Web学习(11):JSP九大内置对象(一)

在学习九大内置对象之前先来看看Web应用程序的请求响应模式. Web应用程序请求响应模式 Web应用程序的请求响应模式图示: 1)用户发送请求(request) 2)服务器给用户响应(response) 生活案例: JSP九大内置对象一览 JSP内置对象是Web容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明,也就是不使用 new关键字就可以使用的内置对象.JSP内置对象也被称为预定义变量. 九大内置对象为: 九个内置对象的简介见下表: out对象 out对象是javax.

Java Web学习(13):JSP九大内置对象(三)

application对象 什么是application? 服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application 对象都是同一个,直到服务器关闭.但是与session不同的是,所有客户的application对象都是同一个,即所有客户 共享这个内置的application对象. appliaction对象 application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.Se

JSP九大内置对象和四种属性范围解读

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文首先主要解说了JSP中四种属性范围的概念.用法与实例. 然后在这个基础之上又引入了九大内置对象,并对这几大内置对象一个一个的进行分析的解读.内容非常具体,例子都附有代码和执行的结果截图. 本文project下载 一.四种属性范围 1.1.在JSP中提供了四种属性保存范围 page:在一个页面内保存属性.跳转之后无效request:在一次服务请求范围内.server跳转后依旧有效se

黑马程序员【JSP九大内置对象和四个作用域】转载

http://www.cnblogs.com/fanfu1/p/4530980.html JSP九大内置对象和四个作用域 ------- android培训.java培训.期待与您交流! ---------- 在学习JSP的时候,首先就要先了解JSP的内置对象,什么是内置对象呢?内置对象也叫隐含对象,就是不需要预先声明就可以在脚本代码和表达式中随意使用.而这样的内置对象在JSP中一共有九个以及四个作用域,在下面的文章中我们会一一讲解. 现在我们先来说一下四个作用域,以便描述各大对象都分属于什么作

jsp九大内置对象及四个作用域【转】

1.Request对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息. 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理.首先,将获取的 字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象 即可.如下: String textContent=request.getParameter("boy") byte b[]=textContent.get

JSP九大内置对象的作用和用法总结(转发)

jsp九大内置对象: 内置对象/作用域(每一种作用域的生命周期是不一样的): 1, application 全局作用域 2, session 会话作用域 3, request 请求作用域 4, pageContext 页面作用域 内置对象 5, response 响应对象 6, out 输出流对象 7, page 当前页面对象的实例 8, exception 异常 9, config ServletConfig/FilterConfig对象 优先级(按照生命周期的长短): application

JSP九大内置对象的作用和用法总结【转】

JSP九大内置对象的作用和用法总结? JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1.request对象javax.servlet.http.HttpServletRequest request对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据.(包括头信息.系统信息.请求方式以及请求参数等).request对 象的作用域

五------Jsp九大内置对象。

Jsp九大内置对象,当中最基本的是前五个对象. 5-1 out对象 out对象是JSPWriter类的实例.是向client输出内容经常使用的对象. out对象经常使用的方法例如以下: 1.out.println():向client打印字符串 2,out.clear():清除缓冲区的内容,假设在flush之后调用会抛出异常 3,out.clearBuffer():清除缓冲区的内容,假设在flush之后调用不会抛出异常 4,out.flush():将缓冲区内容输出到client 5,int get

JSP九大内置对象及其作用+四大域对象

JSP九大内置对象及其作用+四大域对象 一,什么是内置对象? 在jsp开发中会频繁使用到一些对象,如ServletContext HttpSession PageContext等.如果每次我们在jsp页面中需要使用这些对象都要自己亲自动手创建就会特别的繁琐.SUN公司因此在设计jsp时,在jsp页面加载完毕之后自动帮开发者创建好了这些对象,开发者只需要使用相应的对象调用相应的方法即可.这些系统创建好的对象就叫做内置对象. 在servlet程序中,如果开发者希望使用session对象,必须通过re

JSP页面元素,及JSP九大内置对象之二out和request

一.JSP页面元素1.脚本Scriptlet <1>  <%          用于定义局部变量,书写常规的java代码      %> <2><%!          用于定义全局变量,定义方法    %> <3><%=输出表达式%>    要想回车:加<br/>: 在标签里写HTML代码  ,可以有效果 2.指令如  page指令  <%@ page ....%>  page指定的属性:  language