内置对象:

Request, Response, Out, Session, Application, Cookie, Config, Page, Exception

1、Request对象

    该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装信息,即:使用该对象可以获取用户提交的信息。

    当Request对象获取客户提交的汉子字符时,会出现乱码问题,必须精心特殊处理。首先,将获取的字符串用ISO-8859-1进行编码,并将编码存发到一个字节数组中,然后再用这个数组转化为字符对象即可。如下:

    String textContent = request.getParameter("boy");

    byte[] b = textContent.getBytes("ISO-8859-1");

    textContent = new String(b);

Request常用的方法:

    1.1 getParameter(String strTextName) 获取表单提交的信息。

        String name = request.getParameter("name");

    1.2 getProtocal() 获取客户使用的协议

        String strProtocal =  request.getProtocal();

    1.3 getServletPath() 获取客户提交信息的页面

        String strServletPath = request.getServletPath();

    1.4 getMethod() 获取客户提交信息的方式。  get| post

        String strMethod = request.getMethod;

    1.5 getHeader() 获取HTTP头文件中的 accept、 accept-encoding 和 Host 的信息。

        String strHeader = request.getHeader();

    1.6 getRemoteAddr() 获取客户的IP地址。

        String strIP = request.getRermoteAddr();

    1.7 getRemoteHost() 获取客户机的名称。
        String clientName = request.getRemoteHost();

    1.8 getServerName() 获取服务器的名称。

        String serverName = request.getServerName();

    1.9 getServerPort() 获取服务器的端口号。

        int serverPort = request.getServerPort();

    1.10 getParameterNames() 获取客户端提交的所有参数的名称。

        Enumeration enum = request.getParameterNames();

        while(enume.hasMoreElements()){

        String name = (String)enum.nextElement();

        out.println(name);        

        }

2、Response 对象

    对客户的请求作出动态的响应, 向客户端发送数据。

    2.1 动态响应 contentType 属性。

    当一个用户访问一个 JSP 页面时,如果该页面使用 page 指令设置页面的 contentType 属性时 text/html, 那么 JSP 引擎将按这个属性值作出反应。如果用动态改变这个属性值来响应客户,那就需要用 Response 对象的 setContentType(String s) 方法来改变 contentType 的属性值。

    格式:response.setContentType(String s);

    参数 s 可取 text/html, application/x-msexcel, application/msword 等。

    2.2 Response 重定向

    在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用 Response 的 senRedirect(URL) 方法实现客户的重定向。 例如:

    response.sendRedirect("index.jsp");

3、 Session 对象

    (1) 什么是 Session 对象

    Session 对象是一个 JSP 内置对象,它在第一个 JSP 页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会再这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要 Session 对象。

    (2) Session 对象的 ID

    当一个客户首次访问如武器上的一个 JSP 页面时, JSP 引擎产生一个 Session 对象,同事分配一个 String 类型的 ID 号,JSP 引擎同时将换个 ID 号发送到客户端,存放在 Cookie 中,这样 Session 对象,直到客户关闭浏览器后,服务器端该客户的 Session 对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到服务器时,服务器为该客户再创建一个新的 Session 对象。

    (3) Session 对象的常用方法

        ① public String getId(): 获取 Session 对象编号。

        ② public void setAttribute(String key, Object obj):将参数 Object 指定的对象 obj 添加到 Session 对象中,并为添加的对象指定一个索引关键字。

        ③ public Object getAttribute(String key):获取 Session 对象中含有关键字的对象。

        ④ public Boolean isNew():判断是否是一个新的客户。

4、 Application 对象

    (1) 什么是 Application 对象

    服务器启动后就产生这个 Application 对象,当客户在所访问的网站的各个页面之间浏览时,这个 Application 对象都是同一个,直到服务器关闭。但是与 Session 对象不同的是,所有客户的 Application 对象都是同一个,即所有客户共享这个内置的 Application 对象。

    (2) Application 对象的常用方法

        ① setAttribute(String key, Object obj):将参数 Object 指定的对象 obj 添加到 Application 对象中,并为添加的对象指定一个索引关键字。

        ② getAttribute(String key):获取 Application 对象中含有关键字的对象。

5、 Out 对象

    Out 对象是一个输出流,用来向客户端输出数据。Out 对象用于各种数据的输出。其常用方法如下:

        ① out.print():输出各种类型的数据。

        ② out.newLine():输出一个换行符。

        ③ out.close():关闭流。

6、 Cookie 对象

    (1) 什么是 Cookie

    Cookie 是 Web 服务器保存在用户硬盘上的一段文本。Cookie 允许一个 Web 站点在用户电脑上保存信息并且随后再取回它。

    举例来说,一个 Web 站点可能会为每一个访问者产生一个唯一的 ID,然后以 Cookie 文件的形式保存在每个用户的机器上。

    如果用户使用 IE 浏览器访问 Web,用户就会看到所有保存在自己硬盘上的 Cookie。他们最常保存的地方是:C:\Windows\Cookies。Cookie 是以“关键字 key = 值 value” 的格式来保存记录的。

    (2) 创建一个 Cookie 对象

    调用 Cookie 对象的构造函数就可以创建 Cookie 对象。Cookie 对象的构造函数有两个字符串参数: Cookie 名字和 Cookie 值。

    例如:Cookie c = new Cookie("username","john");

    (3) 将 Cookie 对象传送到客户端

    在 JSP 中,如果要将封装好的 Cookie 对象传送到客户端,可使用 Response 对象的 addCookie()方法。

    例如:response.addCookie(c).

    (4) 读取保存到客户端的 Cookie 。

    使用 Request 对象的 getCookie() 方法,执行时将所有客户端传来的 Cookie 对象以数组的形式排列,如果要取出符合需要的 Cookie 对象,就需要循环比较数组内每个对象的关键字。

    例如:

    Cookie[] c = request.getCookies();

    if (c != null)

        for (int i = 0; i < c.length; i++){

            if ("username".equals(c.getName()))

                out.println(c.getValue());

        }

    (5) 设置 Cookie 对象的有效时间

    调用 Cookie 对象的 setMaxAge() 方法便可以设置 Cookie 对象的有效时间,

    例如:   Cookie c = new Cookie("username","john");

             c.setMaxAge(3600);

    (6) Cookie 应用

    Cookie 对象的典型应用是用来统计网站的访问人数。由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每一个访问者建立一个唯一的 ID。使用 Cookie,网站可以完成以下工作。

        ① 测定多少人访问过。

        ② 测定访问者有多少是新用户(即第一次来访),多少是老用户。

        ③ 测定一个用户多久访问一次网站。

        当一个用户第一次访问时,网站在数据库中建立一个新的ID,并把ID通过 Cookie 传送给用户。用户再来访问时,网站把该用户ID对应的计数器加1,得到用户的来访次数。

7、 Config 对象

    配置对象

8、 Page对象

    页面对象。

    PageContext 对象

    页面上下文对象

    Jsp 引入了一个名为 PageContext 的类,通过它可以访问页面的许多属性。

    PageContext 类拥有 getRequest,getResponse,getOut,getSession 等方法。

    pageContext 变量存储于当前页面相关联的 PageContext 对象的值。

    补:

    如果方法需要访问多发于页面相关的对象,传递 pageContext 要比传递 request,response,out 等的独立引用更容易。(虽然两种方法都能达到同样的目的)

9、 Exception 对象

    在出来异常的网页可以直接访问 exception 隐式对象。