JSP内置对象、JSP常用动作标签、指令

JSP内置对象、JSP常用动作标签、指令

绿林寻猫
2021-12-08 / 0 评论 / 139 阅读 / 正在检测是否收录...

JSP有9个内置对象,分别是:

request(请求)、
response(响应)、
session(会话)、
application(应用程序)、
out(输出)、
page(页面)、
config(配置)、
pageContext(页面上下文)、

exception(异常)。

对象

作用及方法

Request

表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie、header和session数据的有用的方法。

Response

表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies、header头信息等)。

pageContext

是一个Javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

Session

表示一个请求的Javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息。

Application

表示一个Javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息。

Out

是Javax.jsp.JspWriter的实例,并提供了几个方法能用于向浏览器回送输出结果。

Config

表示一个Javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

Page

表示从该页面产生的一个servlet实例。

Exception

针对错误网页,未捕捉的例外

Request对象

 Request对象代表的是来自客户端的请求,例如在form表单中填写的信息等是最常用的对象。


  方法:
  getParameter() //获取到客户端通过表单或url请求参数发送过来的参数值
  getParameterValues() //将同名的参数一次性读入String类型的数组中
  getParameterNames() //获取参数名称,返回枚举类型
  getMethod() //获得用户提交方式,post或get


  getServletPath() //获得JSP文件所在项目的路径
  getRemoteAddr() //获取客户的IP地址
  getServerName() //获取服务器的名称
  getServerPort() //获取服务器的端口号
  getContextPath() //获取项目名,与getServletPath类似


  getHeader(str) //获取HTTP头文件中的指定值

  getHeaders(str) //获取表头信息

 

 

请求中文乱码处理

      a. 设置request请求字符编码
request.setCharacterEncoding("UTF-8");
      b. 取得参值后,通过转码方式将值转成合适的字符集
String uname=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

String upwd=new String(request.getParameter("pwd").getBytes("ISO-8859-1"),"UTF-8");

 

获取主机和客户机的信息

getRemoteAddr() //获得客户主机的IP
getRemoteHost() //获得客户主机的名字
getLocalAddr() //获得本地主机的IP
getLocalHost() //获得本地主机的名字
getServerName() //获得服务器主机的IP
getServerPort() //获得服务器端口

例如:
本地计算机名为:<%=request.getLocalHost()%>

 

Response对象

  Response对象代表的是对客户端的响应,也就是说可以通过response对象来组织发送到客户端的数据。
  但是由于组织方式比较底层,所以不建议一般人使用。
  需要向客户端发送文字时直接用out对象即可。


  方法:
  addHeader(String arg0,String arg1) //向页面中添加头和对应的值
  addCookie(Cookie arg0) //添加Cookie信息
  sendRedirect(String arg0) //实现页面重定向,URL重写
  setStatus(int arg0) //设定页面的响应状态代码
  setContentType(String arg0) //设定页面的MIME类型和字符集

  setCharacterEncoding(arg0) //设定页面响应的编码类型

 

Session对象

  Session对象代表服务器与客户端所建立的会话,当需要在不同的JSP页面中保留客户信息的情况下使用,比如在线购物、客户轨迹跟踪等。


  HTTP是无状态协议;
  Web Server对每一个客户端请求都没有历史记忆;
  Session用来保存客户端状态信息。


  打开一个浏览器就意味着打开了一个Session对象,浏览器不关闭,Session对象会一直存在(姑且这样认为),且Session对象只有一个。
  如果浏览器关闭重启,会创建新的Session对象。

  Session对象生命周期:创建--执行--失效

  方法:
  setAttribute("key",value) //将参数名和参数值存放在session对象中
  getAttribute("key") //获取参数值
  getAttributeName()
  getId() //获取session对象的ID
  removeAttribute("key") //移除指定session中参数
  getCreateTime() //获得session对象创建的时间,单位毫秒
  getMaxInactiveInterval() //获得session对象的有效时间
  setMaxInactiveInterval() //设置session对象的有效时间
  isNew() //判断是否为一个新客户
  invalidate() //使session对象失效

 

application对象

  application对象负责提供应用程序在服务器中运行时的一些全局信息。
类似于系统的“全局变量”,用于实现用户之间的数据共享。
  application的生命周期是从application创建到服务器关闭。
  application的存活范围比request和session都要大。
  只要服务器没有关闭,application对象中的数据就会一直存在,在整个服务器的运行过程当中,application对象只有一个,它会被所有的用户共享。
  
  方法:
  getRealPath(String arg0) //获得指定文件的路径
  getMimeType(String arg0) //获取指定的文件格式
  setAttribute(String arg0,Object obj) //将参数及参数值保存到application对象
  getAttribute(String arg0) //获得application对象属性的值
  getAttributeNames() //获得application中所有参数的名字
  removeAttribute(String arg0) //移除application对象中指定的参数值
  getServletInfo() //获取Servlet的当前版本信息
  getContext(String arg0) //获得指定路径的context内容
  getContextPath()
  
例如:
<%=application.getRealPath("login.jsp")%>  //获得login.jsp的实际路径
<%=application.getResource("login.jsp")%>

<%=application.getContextPath()%>

 

Out对象

  作用:输出内容到HTML中。
  out对象代表了向客户端发送数据的对象,与response对象不同,通过out对象发送的内容将是浏览器需要显示的内容,是文本一级的,可以通过out对象直接向客户端写一个由程序动态生成的HTML文件。


  常用的方法除了print和println之外,还包括clear、clearBuffer、flush、getBufferSize和getRemaining,这是因为out对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法。


  方法:
  append(char c) //将字符添加到输出流中
  clear() //清空页面缓存中的内容
  close() //关闭网页流的输出
  flush() //网页流的刷新
  println() //将内容直接打印在HTML中
  write() //与println()方法相似,区别在于println()可以输出各种类型的数据,
 而write()只能输出与字符相关的数据。


例如:
<%
out.println("这是out对象输出的信息");
out.clear();   //清除缓冲区中的内容
%>

 

Page对象

  Page对象是指当前的JSP页面本身,在实际开发中并不常用。
  
  方法:
  getClass() //返回当时Object的类
  hashCode() //返回此时Object的哈希代码
  toString() //将此时的Object类转换成字符串
  equals(Object obj) //比较此对象是否与指定的对象相等
  clone() //对此对象进行克隆
  copy(Object obj) //将此对象复制到指定的对象中

 

Config对象

  Config对象一般用于页面初始化时传递参数。一般而言很少在页面中使用config对象。
  
  方法:
  getServletContext() //获得servletContext值
  getInitParameter(String arg0) //获得指定的初始化值
  getInitParameterNames() //获得初始化的所有参数,返回枚举值
  getServletName() //获得servlet名字
  equals(Object obj) //比较此时的对象是否与指定的对象相等
  toString() //获得此时对象的值

 

Exception对象

  Exception对象用来处理页面出现的异常错误。
  通常在某个页面(比如A.jsp)中加入page指令的errorPage属性来将其指向一个专门处理异常错误的页面(doError.jsp)。
  <%@ page errorPage="doError.jsp" %>


  方法:
  getMessage() //返回exception对象的异常消息字符串
  getLocalizedMessage() //返回exception对象的本地化语言的异常错误。
  printStackTrace() //显示异常的栈跟踪轨迹。
  toString() //返回关于异常错误的简单消息描述。

  fillInStackTrace() //重写异常错误的栈执行轨迹。

 

 

  PageContext对象

  PageContext内置对象是一个比较特殊的对象,它相当于页面中所有其他对象功能的最大集成者,
  即使用它可以访问到本页面中所有其他的对象。
  例如前面已经描述的request、response、out和page对象等。
  由于在JSP中request和response等对象本来就可以通过直接调用方法使用,所以pageContext对象在实际JSP开发中很少使用到。


  方法:
  getRequest():返回当前页面中的request对象。
  getResponse():返回当前页面中的response对象。
  getSession():返回当前页面中的session对象。
  getServletContext():返回当前页面中的application对象。
  getPage():返回当前页面中的page对象。
  getOut():返回当前页面中的out对象。
  getException():返回当前页面中的exception对象。
  getServletConfig():返回当前页面中的config对象。
         
  setAttribute(String name):给指定的属性名设置属性值。
  getAttribute(String naem):根据属性名找到相应的属性值。
  setAttribute(String name, Object obj, int scope):在给定的范围内设置相应的属性值。
  getAttribute(String name, int scope):在给的范围内获取相应的属性值。
  findAttribute(String name):寻找一个属性并返回,如果查找不到则返回null。
  removeAttribute(String name):通过属性名删除掉某个属性。
  removeAttribute(String name, int scope):在指定的某个范围里删除某个属性。
  getAttributeScope(String name scope):返回某属性的作用域。
  getAttributeNamesInScope(int scope):返回指定范围内的所有属性名的枚举。
         
  release():释放pageContext占据的所有资料。
  forward(String relativeURLpath):使用当前页面重导到另一个页面。
  include(String relativeURLpath):使用当前位置包含的另一个页面。
 

JSP常用的动作标签:

语法

描述

jsp:include

在页面被请求的时候引入一个文件。

jsp:useBean

寻找或者实例化一个JavaBean。

jsp:setProperty

设置JavaBean的属性。

jsp:getProperty

输出某个JavaBean的属性。

jsp:forward

把请求转到一个新的页面。

jsp:plugin

根据浏览器类型为Java插件生成OBJECT或EMBED标记。

jsp:element

定义动态XML元素

jsp:attribute

设置动态定义的XML元素属性。

jsp:body

设置动态定义的XML元素内容。

jsp:text

在JSP页面和文档中使用写入文本的模板

JSP三大指令:

指令

作用

<%@ page %>

设置JSP页面的属性和相关功能。

<%@ include %>

在JSP页面引入需要包含的页文件。

<%@ taglib %>

标签指令,自定义新的标签。

 

JSP中动态include与静态include的区别?

动态include用<jsp:include>动作实现,<jsp:include page=”included.jsp” flush=”true” />它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。静态include用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面 <%@ include file=”included.html” %> 。

 

 

 

0

评论 (0)

取消