J2EE基础之JSP

1、JSP简介

JSP是JavaServer的缩写,是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。在HTML文件中加入Java程序代码就构成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的Java程序代码,然后将执行结果以HTML形式返回给客户端。实际上,从另一方面来说,JSP的实质是Servlet,其在发布编译运行时会被转换成标准的Servlet,该转换过程一般在出现第一次页面请求时就会发生。

JSP设计的目的在于简化表示层的展示。JSP中没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML,更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开。

除了普通的HTML代码之外,嵌入JSP页面的其他成分主要包括以下三种:脚本元素、指令、动作。其中,脚本元素是用来嵌入Java代码,这一 部分Java代码将直接转换为Servlet的一部分;JSP指令用来从整体上控制Servlet的结构;JSP动作用于引入现有的组件以控制Web容器的行为。另外,为了简化脚本元素,JSP定义了一组可以直接使用的内部对象变量。

2、JSP指令

JSP指令是从JSP向Web容器发送的消息,它用来设置页面的全局属性,如输出内容类型等。指令的作用范围仅限于包含指令本身的JSP页面。

JSP指令的格式为:

<%@指令名 属性=”属性值”%>

指令名有page、include和tablib三种。具体如下:

(1)page指令

page指令用来定义整个JSP页面的全局属性。合法的page属性有language、import、session、contentType、isThreadSafe、buffer、autoflush、extends、info、errroPage、isErrorPage等。

(2)include指令

JSP页面可通过include指令将其他文件插入到当前页面中。这个文件可以是JSP文件、HTML文件或文本文件。include指令的格式为:

<%@include file = “relativeURL”%>

include指令的主要作用是在一个Web应用中,当多个JSP页面包含相同的内容时,可以把相同的部分放在一个文件中,然后在其他文件中用include指令包含这个文件即可。这样做的好处,当要修改这一部分文件代码是,只需修改一个文件即可。

(3)taglib指令

当需要在JSP文件中使用自定义的标签时,可以通过使用taglib指令来指定。格式为:<%@taglib uri=”URItoTagLibrary”prefix=”tagPrefix”%>

其中,URI为统一资源标记符,prefix是标签库的识别符,可以根据此prefix对自定义的标签进行唯一的命名。

3、JSP动作

JSP动作是一组动态执行的指令,用于控制Web容器的行为。利用JSP动作可以动态地向页面中插入文件、重写JavaBean组件、导向另一个页面等。常见的JSP动作有以下四种:

(1)include动作

include动作把指定文件插入正在生成的页面,其格式如下:

<jsp:include page=”relativeURL” flush=”true|false”>

include动作和include指令在执行过程中有很大的不同。include动作在执行时不对包含的文件进行处理,如果对包含的文件进行了修改,那么运行时可以看到所包含文件修改后的结果。而静态的include指令包含的文件如果发生变化,必须重新编译,否则只能看到所包含文件修改前的内容。因此,除非被包含文件经常改动,否则使用include指令奖获得更好的性能。

(2)forward动作

forward动作用于把当前的JSP页面导向另一个页面,客户端看到的地址是当前网页的地址,而实际内容却是另一个页面的。其格式如下:

<jsp:forward page=”relativeURL”>

(3)param动作

param动作用于传递参数信息,必须配合include动作或forward动作一起使用。格式如下:

<jsp:param name=参数名称,value=值/>

(4)useBean动作

UseBean动作能够让JSP网页使用JavaBean,从而能够充分应用Java的重要性。通过使用useBean动作,可在JSP网页中实例化一个或多个JavaBean组件,这些被实例化的JavaBean对象可以在JSP中被调用。其格式为:

<jsp:useBean id=”name” class=”classname” scope=”page|request|session|application”>

4、JSP内置对象

JSP提供了可在脚本中使用的内置对象,这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器及存储用户信息。JSP共提供九中内置对象:request、response、out、session、application、config、pagecontext、page和exception。常用的有以下六种:

(1)request对象

request对象是JSP中最常用的对象,代表来自客户端的请求,它封装了用户提交的信息,例如在FORM表单中填写的信息等,通过调用request对象相应的方法可以获取关于客户请求的信息。

(2)response对象

response对象用于将服务器数据发送到客户端以响应客户端的请求。可以通过response对象来组织发送到客户端的信息,如Cookie、HTTP头文件等。但是由于组长方式比较底层,所以一般不建议使用,需要向客户端发送文字时直接使用out对象即可。

(3)session对象

session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个Web应用程序开始,直到客户端与服务器断开为止。

(4)application对象

如果客户浏览不同的Web页面,将产生不同的application对象。同一个Web应用中的所有JSP页面都将存取同一个application对象,即使浏览这些JSP网页的客户不是同一个也是如此。application对象一旦创建,除非服务器关闭,否则将一直保持下去。

(5)out对象

out对象能将特定的数据内容搭配JSP程序代码动态输出到客户端的浏览器。

(6)exception对象

exception对象用来处理JSP文件在执行时所有发生的错误和异常。

J2EE基础之JSP的更多相关文章

  1. J2EE基础之EJB

    J2EE基础之EJB 1.什么是EJB?       EJB(Enterprise Java Beans),是JavaEE中的商业应用组件技术,是JavaEE三大组件(Servlet,JSP,EJB) ...

  2. J2EE基础之JavaBean

    J2EE基础之JavaBean 1.什么是JavaBean? JavaBean本质上来说就是一个Java类,它通过封装属性和方法成为具有独立功能.可重复使用的,并可以与其他控件通信的组件对象.通过在J ...

  3. J2EE基础之Web服务简介

    J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上 ...

  4. J2EE基础之Servlet

    J2EE基础之Servlet 1.  什么是Servlet? Servlet即Java服务小程序,是使用应用程序设计接口以及相关类和方法的Java程序.它可以作为一种插件,像Applet程序一样嵌入到 ...

  5. J2EE基础总结(1)——J2EE入门

    J2EE诞生的背景 在传统的开发模式(单层应用结构)下.应用普遍存在下面致命缺点: - 数据.页面和业务逻辑在一个逻辑层次中.功能紧密耦合. - 代码重用性极低,可维护性差. - 应用耦合度高,全然没 ...

  6. 剑指Offer——知识点储备-J2EE基础

    剑指Offer--知识点储备-J2EE基础 9.2 jdk 1.8的新特性(核心是Lambda 表达式) 参考链接:http://www.bubuko.com/infodetail-690646.ht ...

  7. J2EE基础总结(4)——JSP

    什么是JSP       JSP全名为Java Server Pages,中文名叫javaserver页面,其根本是一个简化的Servlet设计,它是由Sun  Microsystems公司倡导.很多 ...

  8. [J2EE基础]初识JSP和Servlet

    近期须要用到J2EE,就開始学习与J2EE相关的知识了. JSP是一种Javaserver端技术,它用于在网页上显示动态内容. Tomcat相关知识 JSP的运行过程 JSP的页面构成元素 JSP的凝 ...

  9. J2EE基础篇——十三个规范

    背景: 1.企业级应用框架的需求,在很多企业级应用中.比如数据库连接.邮件服务.事务处理等都是一些通用企业需求模块,这些模块假设每次在开发中都由开发者来完毕的话,将会造成开发周期长和代码可靠性差等问题 ...

随机推荐

  1. Windows 10 版本 1507 中的新 AppLocker 功能

    要查看 Windows 10 版本信息,使用[运行]> dxdiag  回车 下表包含 Windows 10 的初始版本(版本 1507)中包括的一些新的和更新的功能以及对版本 1511 的 W ...

  2. QTableWidget详解(样式、右键菜单、表头塌陷、多选等)

    在Qt的开发过程中,时常会用到表单(QTableWidget)这个控件,网上的资料不少,但是都是最基本的,有一些比较经常遇到的问题也说得不太清楚.所以,今天就在这里总结一下! 以下为个人模拟Windo ...

  3. [修正] Firemonkey TSelection 控件等比缩放时,左下角拉动问题

    说明:TSelection 控件,当在属性 Proportional = True 为等比缩放时,拉动左下角,右上角会跟着移动. 适用:Berlin 10.1.1 (或之前版本) Firemonkey ...

  4. Java基础学习总结——Java对象的序列化和反序列化

    一.序列化和反序列化的概念 把对象转换为字节序列的过程称为对象的序列化. 把字节序列恢复为对象的过程称为对象的反序列化. 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存 ...

  5. Idea开发环境中搭建Maven并且使用Maven打包部署程序

    1.配置Maven的环境变量 a.首先我们去maven官网下载Maven程序,解压到安装目录,如图所示: b.配置M2_HOME的环境变量,然后将该变量添加到Path中 备注:必须要有JAVA_HOM ...

  6. IE8,IE10下载的临时文件到哪里去了???

    操作攻略: 打开IE浏览器=>工具=>Internet选项=>常规选项卡中,找到"浏览历史记录"=>设置,然后就可看到"当前位置"所列出 ...

  7. Emacs学习心得之 LaTeX编辑

    目录 1. 前言 2. texlive的安装 3. AUCTEX的安装和配置 4. RefTEX的安装和配置 一.前言 本篇博文记录了Emacs下LaTeX编辑环境的搭建,参考一下文章: http:/ ...

  8. 深入理解JavaScript的闭包特性如何给循环中的对象添加事件

    初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript ...

  9. 【代码笔记】iOS-下拉菜单

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  10. iOS 疑难杂症 — — 在 Storyboard 里 Add Size Class Customization 后再从代码里无法修改的问题

    前言 公司的产品同时适配 iPhone 和 iPad ,并坚持用 Storyboard 来做适配,今天又踩一个坑(以前遇到过)还以为是 XCode 的鬼毛病. 声明  欢迎转载,但请保留文章原始出处: ...