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文件在执行时所有发生的错误和异常。

转载于:https://www.cnblogs.com/liuzhen1995/p/5677277.html

J2EE基础之JSP相关推荐

  1. J2EE基础之EJB全面了解

    J2EE基础之EJB全面了解--小萌社区 1.什么是EJB?  EJB(Enterprise Java Beans),是JavaEE中的商业应用组件技术,是JavaEE三大组件(Servlet,JSP ...

  2. J2EE基础之Web服务简介

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

  3. spring3.2入门到大神(备java基础、jsp、servlet,javaee精髓)-任亮-专题视频课程

    spring3.2入门到大神(备java基础.jsp.servlet,javaee精髓) 课程介绍         框架介绍,IoC思想.DI依赖注入.Bean的实例方式.Bean种类.Bean作用域 ...

  4. 名师讲坛—Java Web开发实战经典基础篇(JSP、Servlet、Struts、Ajax)

    名师讲坛-Java Web开发实战经典基础篇(JSP.Servlet.Struts.Ajax) 基本信息 作者: 李兴华    王月清   出版社:清华大学出版社 ISBN:9787302231585 ...

  5. J2EE基础集合框架之Set

    今天将进行介绍的是J2EE基础集合框架之Set,其主要分为四个点 目录 1,set集合特点&遍历集合 2,set集合去重原理 3,set集自然排序接口 4,set集合比较器排序 1,set集合 ...

  6. J2EE基础教程(2):JSP初探

    最原始的东西实际上是servlet.实际上二者的作用是相同.再使用servlet的时候,利用动态输出流产生html代码.而这样就导致了java和html语言的混杂.jsp将他们分开了一点,改为了在ht ...

  7. 大数据WEB阶段(十三)JSP(一)JSP基础、JSP指令详解、四大域九大隐式对象总结

    JSP基础.指令.四大作用域九大隐式对象总结 (一)JSP基础 一.JSP概述 jsp其实是java动态页面技术 HTML可以用来组织页面但是HTML是一种静态web资源技术无法嵌入动态数据. Ser ...

  8. J2EE之初识JSP

    上篇博客已经简介了下Servlet.从上篇博客中能够看到.Servlet获得返回来的数据后.显示给client时,须要不断的拼串.从而构成完整的html页面,这就在无形中加大了程序猿的压力和劳动力.而 ...

  9. J2EE基础教程(1):简介和windows下环境配置

    (1)相关概念 我们以前在linux操作系统初级教程中,介绍过LAMP架构服务器技术.现在,我们来介绍J2EE. 通过J2EE开发的应用程序属于分布式多层应用程序,包括 (1)客户层:客户应用,web ...

最新文章

  1. Python 索引for循环
  2. windows 导出 oracle,windows 环境下oracle导入导出
  3. Android应用自动更新功能实现使用AsyncTask!
  4. c语言位运算符读音,C语言六种位运算符
  5. Python中模块(Module)和包(Package)的区别
  6. activex 控件的id 定义位置+使用ocx控件的客户端程序中对控件定义的文件中控件id定义的位置...
  7. MATLAB代码实现射线追踪的快速方法
  8. 16gU盘在Mac上格式化后在Windows上变成200M
  9. 苹果mac专业的音乐制作软件:Logic Pro X
  10. php文件锁不起作用,php文件锁产生的问题和解决方案(一个真实案例)
  11. 1047 糖果 01背包扩展
  12. linux 让程序在后台执行
  13. java 性能框架_Java Fork Join 框架(四)性能
  14. Java ques: Unknown initial character set index ‘255‘ received from server. Initial client character
  15. 头脑王者_头脑令人困惑
  16. Linux面试指令---nl指令
  17. 案例:红酒数据集分析
  18. 学习游戏原画设计需要多长时间?
  19. QT设计师无法修改窗口大小,无法通过鼠标拖动窗口改变大小的解决方案
  20. ThinkPHP3.2无法加载控制器

热门文章

  1. 妙用postman系列——postman建组、分享
  2. 2022-2028年中国TCO导电玻璃行业市场研究分析及前瞻规划报告
  3. 2022-2028年中国PET基膜行业市场发展规模及市场分析预测报告
  4. C/C++ 编程规范(01 )— 排版
  5. etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)
  6. torch.nn.Linear()函数的理解
  7. Imagination发布四款RISC-V CPU
  8. 自动机器学习(AutoML)
  9. MegEngine亚线性显存优化
  10. 计算机组成原理-第二章 数据表示与运算