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. 在Winform程序中设置管理员权限及为用户组添加写入权限

    在我们一些Winform程序中,往往需要具有一些特殊的权限才能操作系统文件,我们可以设置运行程序具有管理员权限或者设置运行程序的目录具有写入的权限,如果是在操作系统里面,我们可以设置运行程序以管理员身 ...

  2. anonymousIdentification 与匿名访问

    anonymousIdentification 元素(ASP.NET 设置架构) 来自 <https://msdn.microsoft.com/zh-cn/library/91ka2e6a(v= ...

  3. WPF数据编辑的提交与撤销

    当为一个集合(通常绑定在DataGrid或其它ItemsControl控件)添加或编辑一个项时,通常会弹出一个编辑界面编辑项的属性,编辑结束再提交,或者我们不想编辑数据了,此时选择取消,数据项的内容没 ...

  4. div悬浮

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 微软Microsoft开源历程与相关资源

    2001 Open source is bad for business, saysMicrosoft Linux is a cancer 2005 Enterprise Library 1.0 re ...

  6. ABP Migration(数据库迁移)

    今天准备说说EntityFramework 6.0+,它与我之前所学的4.0有所区别,自从4.1发布以来,code first 被许多人所钟爱,Dbcontext API也由此时而生.早在学校的时候就 ...

  7. html 输入框 只能输入数字 只能输入字母数字组合

    JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入) <input onkeyup="this.value=this.value.replace(/\D/g,'' ...

  8. Python学习基础知识概要

    1.输入输出 输出实例   1 2 print 'hello','world' hello world 输入实例   1 2 3 4 5 name = raw_input(); print " ...

  9. Lua-面向对象中类的构造

    在Lua中,我们可以通过table+function来模拟实现类. 而要模拟出类,元表(metatable)和__index元方法是必不可少的. 为一个表设置元表的方法: table = {} met ...

  10. 像素与rem转换

    // rem尺寸转换函数开始(function (doc, win) {    var docEl = doc.documentElement,        resizeEvt = 'orienta ...