JSP内置对象及其应用场合

JSP提供了9个内置对象用于开发。

  • request请求对象
  • response响应对象
  • session会话对象
  • 应用application对象
  • out输出对象
  • 应答与请求的page对象
  • 获取web.xml配置信息的config对象
  • 获取异常信息exception对象
  • 页面上下文的pageContext对象

request请求对象
request对象封装了客户端提交的HTTP请求信息,适用于处理客户端提交的信息,在开发web应用时经常用到request对象获取请求参数的值和获取cookie数据等。

<%--发送一个请求到deletePage.jsp页面并传递一个名为"id"的参数。 --%>
<a href="deletePage.jsp?id=123"></a>

<%--在deletePage.jsp可以通过request对象的getParameter方法获取传递的参数值--%>
<% String id=request.getParameter("id"); %>  

解决中文乱码的问题

  //获取访问请求参数时的乱码
  String name=new String(request.getParameter("username").getBytes("iso-8859-1"),"UTF-8");

  //获取表单提交的信息乱码

  在获取表单信息前加上:request.setCharacterEncoding("utf-8");

  String name=request.getParameter("username");
  String pass=request.getParameter("password");
一、获取客户机环境信息常见方法:

1.getRequestURL方法  获得客户端发出请求时的完整URL。

2.getRequestURI方法  获得请求行中的资源名部分,即不包含参数。

3.getQueryString方法  获得请求行的参数部分。

4.getRemoteAddr方法  获得发出请求的客户机的IP地址。

5.getRemoteHost方法  获得发出请求的客户机的完整主机名。

6.getRemotePort方法  获得客户机所使用的网络端口号。

7.getLocalAddr方法  获得WEB服务器的IP地址。

8.getLocalName方法  获得WEB服务器的主机名。

9.getMethod方法 获得客户机请求方式。

二、获得客户机请求头:
1.getHeader(String name)方法  获得http协议定义的文件头信息

2.getHeaders(String name)方法 返回指定名称的request Header的所有值,结果是一个枚举型的实例

3.getHeaderNames()方法   返回指所有的request Header的名称,结果是一个枚举型的实例

应用request对象域
request可视为一个域,可以应用setAttribute()方法在域范围内存放数据。

  //name:转发后的页面获取数据时通过这个变量名来获取数据。
  //object:指定要在request范围内传递的数据,为object类型。
  request.setAttribute(string name,Object object);

  //在request范围内通过getAttribute()方法获取变量值
  request.getAttribute("name");

response响应对象

  • 操作HTTP头信息
  //通过response对象可以设置HTTP响应报头,其中常用的是设置相应的内容类型、禁用缓存、设置页面自动刷新和定时跳转
  //(1)禁用缓存
       response.setHeader("Cache-Control","no-store");
       response.setDateHeader("Expires",0);
  //(2)设置页面自动刷新
       response.setHeader("refresh","10");
  //(3)定时跳转网页
       response.setHeader("refresh","5;URL=Login.jsp");
  • 设置MIME类型
//默认情况下,jsp页面采用的内容类型是:text/html,即HTML或文本数据,可通过setContentType更改

response.setContentType(String type);
//type 可以是:text/html text/plain application/x_msecel 和 application/msword
  • 实现页面重定向
    执行重定向后request的属性全部失效,并开始一个新的request对象
  response.sendRedirect(String newPath);
  //newPath可以是目标路径、相对路径也可以是不同主机的其他URL地址

out输出对象

  • 向客户端浏览器输出信息
  out.print();
  out.println();
  • 管理缓冲区
  out.clear(); 清除缓冲区的内容
  out.clearBuffer(); 清除当前缓冲区的内容
  out.isAutoFlush(); 检测当前缓冲区已满时是自动清除,还是抛出异常
  out.flush(); 刷新流
  out.getBufferSize();获取缓冲区的大小

Session会话对象
session作用于同一浏览器中,在各个页面共享数据,如果一个会话在长时间不向服务器发出请求,session对象就会消失,这个时间取决于服务器。


  //创建和获取会话
  session.setAttribute(String s,Object object);
  session.getAttribute(String s);

  //移除会话中的数据
  session.removeAttribute(string s);

  //设置会话有效时间
  session.setMaxInactiveInterval(3600);

  //销毁session 
  session.invalidate();

应用application对象
用于保存应用程序中的公共数据,与session对象相比,生命周期更长,类似系统的全局变量。
在服务器启动时自动创建,在服务器停止时销毁。
主要用于保存,读取或移除应用程序环境变量,如网站的访问次数和微信聊天信息。

application.setAttribute(string s,Object o); //保存数据
application.getAttribute(String s);          //获取指定的application对象
application.getAttributeNames();             //获取所有的application对象
application.removeAttribute(String s);       //移除指定名称的属性

配置web应用的初始化参数:在web.xml文件中设置。

// application访问应用程序初始化参数的方法
  application.getInitParameter(String s);
  application.getAttributeNames();

application实现网页计数器

  <%
    //获取application中存放的visitCount值
    Integer visitCount=(Integer)application.getAttribute("visitCount");
    //判断visitCount是否为空
    if(visitCount==null){
      visitCount=1;
    }else{
      visitCount++;
    }
    //将visitCount保存到application中
    application.setAttribute("visitCount",visitCount);
  %>
  您是第【<%=visitCount%>】位访客!

应答与请求的Page对象
page对象是包含当前servlet接口引用的变量,可以看做是this的关键字的别名。

  //page对象的常用方法
  page.getClass();           //返回当前object对象
  page.hashCode();           //返回该object的哈希代码
  page.toString();           //将该object类转化为字符串
  page.equals(Object object);//比较当前对象与制定对象是否相等

页面上下文的pageContext对象
pageContext是一个很特殊的对象,通过他可以获取JSP页面的request、response、session、application、exception等对象。该对象的创建和初始化由容器完成,在JSP页面中可以直接使用pageContext对象。

 pageContext.removeAttribute(string s);//删除指定范围内的制定属性
  pageContext.setAttribute(string s,Object o);//为指定范围内的属性设置属性值
  //pageContext.getApplication;//返回Application对象
  pageContext.getOut();//返回out对象
  pageContext.getSession();//返回Session对象
  pageContext.getResponse();//返回getResponse对象
  pageContext.getRequest();//返回Request对象
  pageContext.forward(string s);//把页面转发到另一个页面
  pageContext.getAttribute(string s);//获取参数值
  pageContext.getAttributeNamesInScope(int scope);//获取某范围的参数名称的集合,返回值为java.util.Enumeration对象;
  pageContext.getException(); //返回Exception对象

获取web.xml配置信息的config对象
config对象主要用于获得服务器的配置信息,通过pageContext对象的getServletConfig()方法可以获取一个Config对象。
当初始化一个servlet时,容器把某些信息通过config对象传递给这个servlet。
开发人员可以在web.xml文件中为应用程序环境中的servlet程序和JSP页面提供初始化参数。

config.getServletContext();//获取Servlet上下文
config.getServletName();//获取Servlet服务器名
config.getInitParameter(stirng s);//获取服务器所有初始化参数名称 返回值为java.util.Enumeration对象;
config.getInitParameterNames();//获取服务器中name参数的初始值 

获取异常信息exception对象
exception对象用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置isErrorPage属性值为TURE的页面才可以使用,在一般的页面中使用无法编译JSP文件。

  exception.getMessage();   //返回exception对象的异常信息字符串
  exception.getLocalizedmessage();//返回本地化的异常错误
  exception.toString();//返回关于异常错误的简单信息描述
  exception.fillInstackTrace();//重写异常错误的栈执行轨迹

你可能感兴趣的:(session,request,response,内置对象,out)