JSP和Servlet笔记

一、JSP的3个编译指令
   作用:page指令用于设置整个jsp页面相关的属性,比如页面的编码格式、所包含的文件等等,它们包含在<%@ page %>标记中。
  1)page 指令
  以下为page指令各属性的描述:

    . language ——指定jsp脚本所采用的语言种类,默认为Java
. extends ——定义当前jsp页面产生的Servlet继承哪个分类
. import ——定义当前jsp页面所使用的JavaAPI,多个API用逗号分开
. session ——指定当前jsp页面是否使用Session,默认为true
. buffer ——指定输出流缓存的大小,默认值为8KB
. autoFlush ——指定输出流缓冲区是否需要自动清除,默认值为true
. isThreadSafe ——指定当前jsp页面是否能处理多个线程的同步请求
. info ——指定当前jsp页面的相关信息
. errorPage ——指定当前jsp页面发生错误时转向的错误页面
. contentType ——指定当前jsp页面mime类型的编码格式
. isErrorPage ——指定当前jsp页面是否为处理错误的页面
. pageEncoding ——指定当前jsp页面编码的字符集,默认值为ISO--

page指令对整个页面都有效,包含静态的包含文件,但不能用于被动态包含的文件,例如:<jsp:include>包含的文件。

2) include 指令

作用:include指令用于在JSP页面中包含其他文件。

 语法:<%@ include file="路径名"%>

include指令只有一个属性file,其值为文件的相对路径。

3)taglib 指令

taglib 指令允许用法使用标签库自定义新的标签,语法如下:

<%@ taglib uri="taglibURI" prefix="tabPrefix"%>

uri:用于根据标签库的前缀对自定义的标签进行唯一的命名,其值可以是相对路径、局对路径或标签库描述文件。
 prefix:指定了标签的前缀。

二、JSP的7个动作指令

JSP的动作指令和编译指令不同,编译指令用于设置整个JSP页面相关属性,而动作指令则是用于脚本动作。

1)jsp:include指令

作用:用于在请求处理阶段包含来自一个Servlet或JSP页面的响应。编译指令中的include只能包含静态页面,而jsp:include指令则同时包含静态页面和动态页面。

语法格式:

    . <jsp:include page="文件路径"/>

    或者:
. <jsp:include page="文件路径">
. <jsp:param name="参数1" value="参数值"/>
. 。。。。。。
. <jsp:param name="参数n" value="参数值"/>
. </jsp:include>

  2)jsp:forward指令

作用:用于执行页面转向,将请求处理转发到下一页面。

语法格式:

    .  <jsp:forward page="文件路径"/>

   或者:

    .  <jsp:forward page="文件路径">

    .  <jsp:param name="参数名1" value="参数值"/>

    .  ......

    .  <jsp:param name="参数名n" value="参数值"/>

    .  </jsp:forward>

3) jsp:useBean指令

作用:用来在JSP页面创建一个JavaBean实例。

语法格式:

<jsp:userBean id="JavaBean的名称" scope="有效范围" class="包名.类名"></jsp:usebean>

1. id:指定JavaBean 的名称,只要在它的有效范围内,均可使用这个名称来调用它。
    2. scope:JavaBean的有效范围,它有4个值:request、session、page、application。
    3. class:指定所归属的类。

4)jsp:setProperty指令
 作用:用来设置Bean属性值。

语法格式:

 <jsp:setProperty name="JavaBean 的名称" property="*"/>

或者

<jsp:setProperty name="JavaBean 的名称" property="属性名称"/>

或者

 <jsp:setProperty name="JavaBean 的名称" property="属性名称" param="参数名称"/>

或者

 <jsp:setProperty name="JavaBean 的名称" property="属性名称" value="属性值"/>

           1. property值为*表示保存用户在JSP输入的所有值,用于匹配Bean中的属性。

2. property值为其它值时表示匹配的一个Bean的属性。

3. param属性表示根据指定的request对象中的参数与属性匹配。

4. value属性表示使用指定的值来设置属性。

5)jsp:getProperty指令
 作用:用来读取Bean中的属性值,并将其转换为一个字符串在页面上输出。

语法格式:

 <jsp:getProperty name="bean的名称" property="属性名称"/>

1. name的值对应着jsp:userBean的id值。 
        2. property的值对应着userBean中的属性名。

6)jsp:plugin指令
       jsp:plugin指令用于下载服务器端的 JavaBean 或 Applet 到客户端执行。


7)jsp:param指令

     jsp:param 指令用于设置参数值,它不能单独使用,主要用在jsp:include 指令、jsp:forward 指令和jsp:plugin指令中。

三、JSP的9个内置对象

 内置对象是指不需要预先定义就可以在JSP页面中直接使用的对象。
 1)request 对象
      request对象用于获取客户端提交的数据,这些数据包括头信息、客户端地址、请求方式等。

    . getParameter(String name) ——获取表单提交的数据
. getParameterNames() ——获取客户端提交的所有参数名
. getAttribute(String name) ——获取 name 指定的属性值
. getAttributeNames() ——获取 request 对象所有属性的名称集合
. getSession(Boolean create) ——获取HttpSession对象
. getCookies() ——获取Cookie对象
. getProtocol() ——获取客户使用的协议名称
. getServletPath() ——获取客户端请求的脚本的相对路径
. getMethod() ——获取客户端提交数据的方式,如GET、POST等
. getHeader() ——获取文件头信息
. getRermoteAddr() ——获取客户端的IP地址
. getServerName() ——获取服务器名称
. getRemoteHost() ——获取客户端主机的名称
. getServerPort() ——获取服务器的端口号

2)response对象
    response 对象用于对客户端的请求作出动态的响应,向客服端发送数据。
     

     1. getCharacterEncoding() ——返回响应用的字符编码格式

     2. getOutputStream() ——返回响应的输出流

     3. getWrite() ——返回可以向客户端输出字符的一个对象

     4. getContentLength(int leng) ——设置响应头的长度

     5. getContentType(String type) ——设置响应的 mime 类型

     6. getRedirect(String location) ——重新定向客服端的请求

     7. flushBuffer() ——强制把当前缓冲区的数据发送到客户端

     8. addCookie(Cookie cookie) ——在客户端添加一个Cookie

3)session 对象
 session对象可用来保护用户的会话信息和会话状态。

     . getId() ——获取 session 的标识符

     . getAttribute(String key,Object obj) ——将参数Object指定的对象obj添加到session对象中,并为添加的对象指定一个索引值

     . getAttribute(String key) ——获取session对象中含有关键字的对象

     . isNew() ——判断用户是否参与了会话

     . inValidate() ——使当前会话失效

     . removeAttribute(String name) ——删除一个指定session的值

     . getCreationTime() ——获取 session 对象创建的时间

4)out对象

     out对象用来向客户端输出各种数据。

. print()/println() ——输出各种类型的数据

    . clearBuffer() ——清除缓冲区的数据,并将数据写入客户端

    . clear() ——清除缓冲区当前内容,但不将数据写入客户端

    . flush() ——输出缓冲区中的数据

    . newLine() ——输出一个换行符号

    . close() ——关闭输出流

5)page对象
     page对象就是当前JSP页面本身,类似于Java中的this。

    . getClass() ——获取page对象的类

    . hashCode() ——获取page对象的hash码

    . equals(Object obj) ——判断page对象是否与参数中的obj相等

    . copy(Object obj) ——把此page对象复制到指定的Object对象中

    . clone() ——克隆当前的page对象

    . toString() ——把page对象转换成String类型的对象

  6)application对象
     application对象实现了用户间数据的共享,可存放全局变量。

    . setAttribute(String key,Object obj) ——将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引值

    . setAttribute(String name) ——获取指定的属性值

    . setAttributeNames() ——获取一个包含所有可用属性名的枚举

    . removeAttribute(String name) ——删除一个指定的 application 的值

    . getContext(String uripath) ——获取指定WebApplication 的application对象

    . getResource(String path) ——获取指定资源(文件及目录)的URL路径

    . getResourceAsStream(String path) ——获取指定资源的输入流

    . getServlet(String name) ——返回指定的Servlet

    . log(String msg)  ——把指定消息写入Servlet的日志文件

  7)pageContext对象
       pageContext对象用于管理对属性JSP中特殊可见部分中已经命名对象的访问。

    . setAttribute(String name,Object obj) ——设置默认页面范围或特殊对象范围之中的已命名对象

    . setAttribute(String name,[int scope]) ——获取一个已命名为name的对象的属性,可选参数scope表示在特定范围内

    . removeAttribute(String name,[int scope]) ——删除指定范围内的某个属性

    . forward(String relativeUrlPath) ——将当前页面重定向到其他页面

    . include(String relativeUrlPath) ——在当前位置包含另一个文件

    . release() ——释放 pageContext 对象所占用的资源

    . getServletContext() ——获取当前页面的ServletContext对象

    . getException() —— 获取当前页面的Exception对象

8)config对象
     config对象用来获取服务器初始化配置参数。

    . getServletContext() ——获取当前的Servlet上下文

    . getInitParameter() ——获取指定的初始参数的值

    . getInitParameterNames() ——获取所有初始参数的值

    . getServletName() ——获取当前的Servlet名称

9)exception对象
     exception对象用于处理JSP页面中发生的错误和异常

    . getMessage() ——获取当前的错误信息

    . getLocalizedMessage() ——获取本地化语言的异常错误

    . printStackTrace() ——输出一个错误和错误的堆载跟踪

    . fillStackTrace() ——重写异常的执行栈轨迹

    . toString() ——关于异常错误的简单信息描述
上一篇:ZXing生成条形码、二维码、带logo二维码


下一篇:使用Google提供的ZXing Core,Java生成、解析二维码