JSP内置对象及其应用场合

来源:互联网 发布:在哪里注册开淘宝店 编辑:程序博客网 时间:2024/05/22 23:59

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

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

  request.getRequestDispatcher("index.jsp").forward(request,response);//请求转发(客户端行为) 转发后对象会保存  URL地址不会改变response.sendRedirect("index.jsp");//请求重定向 (服务端行为) 前一次请求对象不会保存  地址栏会改变  本质上等同于两次请求

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();//重写异常错误的栈执行轨迹
0 0
原创粉丝点击