jsp的指令和jsp的基本概念

来源:互联网 发布:淘宝apple store 编辑:程序博客网 时间:2024/06/04 17:56

jsp的指令和jsp的基本概念

Servlet方法的一些弊端

       (1)、开发者和维护应用程序的成员必须对Java编程知识有全面的了解,因为处理代码和处理html元素混合在一块

       (2)、如果要改变应用的外观,或者增加对新客户类型的支持,则需要对servlet代码进行更新和重编译

       (3)、在设计应用界面时,很难充分利用web页面开发工具。如果这种工具用于开发web页面布局,所生成的html就必须手工的嵌入到servlet代码中,这个过程相当的耗费时间,很容易出错。

使用Servlet生成动态网页,比较麻烦,为了解决代码与页面相分离的问题。所以,Sun公司推出了JSP技术,使页面代码与Java代码完全分离。

 

JSP是Servlet更高级的扩展。JSP是以Java语言作为脚本语言,建立在Servlet规范提供的功能之上的动态网页技术,用来在网页上显示动态内容。由Java程序片段或JSP标记等构成JSP页面,页面后缀名为“.jsp”。

JSP的成功取决于它自身的优点,主要包括:

       (1)、简单性和有效性

       (2)、程序的独立性

       (3)、程序的兼容性

       (4)、|程序的可重用性

JSP页面的构成

       JSP页面就是带有JSP元素的常规的Web页面,它由静态内容(指HTML元素)和动态内容(指JSP元素,包括指令元素、脚本元素、动作元素、注释等内容)构成

 

JSP中动态内容——JSP元素,包括指令元素、注释、动作元素、脚本元素

(1)指令元素

1、  指令元素主要用于为转换阶段提供JSP页面的相关信息,指令不会产生任何输出到当前的输出流中,它指定了有关页面本身的信息,这些信息在请求期间一直保持不变。

2、  所有的JSP指令元素的作用范围为当前的JSP页面,即指令元素只影响当前的这个JSP页面,对其他JSP页面没有影响。

3、 指令的语法如下:<%@ directive{attr="value"}*%>

4、 指令元素有三种:page、include和taglib

注意:可以使用多个page指令,但对于每个页只能声明给定属性一次,除了import属性外。属性名称是大小写敏感的

 

浏览器——>web服务器上某一个jsp页面

Jsp页面——.>servlet.java——>编译.class——>载入内存,实例化对象,初始化init()——>service()

浏览器<——

浏览器——>jsp页面

                     Service()

<——

 

Page指令:(1)用于整个页面,定义与页面相关的属性,它是JSP页面与容器的通信员

page的属性共有13个,最常用的属性有:

import=“导包列表”:指示当前JSP文件引入需要使用的类或接口。多个类、包名之间用“,”隔开。

例如,<%@page import=“java.util.*,java.io.*”%>

或者,<%@page import=“java.util.*”%>

             <%@page import=“java.io.*”%>

注意:import属性是唯一一个可以在同一个页面中出现多次的属性。

注意:java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.*都已经被隐含的引入,包中的类、接口等不需要引入就可以使用。

指令元素

(1)language=“scriptingLangeuage”:指定当前的JSP文件中的程序代码是使用何种编程语言编写的,目前属性的值只能是java。

(2)contentType=“ctinfo”:设置当前JSP页面的向客户浏览器输出内容的MIME类型和字符编码集。客户端的浏览器会根据你在contentType中指定的MIME类型和字符集代码来显示Servlet输出的内容。

<%@page contentType=”text/html;charset=utf-8”%>

(3)       pageEncoding =“peingo”:设置当前JSP页面使用的字符编码。如果设置了这个属性,则JSP页面的字符编码就是它指定的字符集,如果没有就使用contentType属性的值,如果都没有,页面默认的是ISO-8859-1。

(4) session=”true|false”:指示当前JSP文件中session隐含对象是否有效,如果为true表示session对象有效,可以使用,否则session对象无效,不能使用

(5)buffer=“none|8kb|sizekb”:指定JSP文件中out对象使用的缓冲区大小。

(6)      autoFlush=“true|false”:设置当输出缓冲区已经满了是否自动flush。需注意,如果buffer设定为none,则该属性就不能设成false,否则JSP文件运行时会抛出异常。

(7)errorPage=“relativeURL”:设置当前JSP页面中代码出现异常后,专门处理异常的页面。

(8)   isErrorPage=“true|false”:设置当前JSP页面是否为专门处理异常的页面,如果为true,则该页面可以通过exception内置对象,处理其他JSP页面转过来的异常。

include指令

(1)      include指令用于在JSP页面中包含一个文件,该文件可以是JSP页面、HTML网页、文本文件或一段Java代码,用它可以简化页面代码,提高代码的重用性。

(2)  语法:<%@include file="相对于当前文件的url" %>

(3)     url为被包含文件的相对路径,如果以“/”开始,相对于这个应该的根目录,如果没有以“/”开头,则相对当前的JSP页面。

注意:在包含的文件中,最好不要使用<html></html><body></body>等标签。

taglib指令

taglib指令允许页面使用用户定制的标签,语法如下:

<%@taglib (uri="具有唯一标识和前缀相关的标签描述符地址" prefix="前缀")%>

 

脚本元素

使用JSP脚本元素可以将Java代码嵌入到JSP页面中,这些Java代码将出现在由当前JSP页面生成的Servlet中,使JSP将静态内容与动态内容分离出来。

表达式

       表达式标签在JSP请求处理阶段进行运算,所得的结果转换成字符串,与静态标签数据组合在一起。表达式在页面的位置,就是该表达式计算结果显示的位置。

语法:<%= expression %>

例如,<%=9+9 %>

注意:

不能用分号;来作为表达式的结束符;

表达式必须是一个合法的Java表达式。

表达式必须有一个返回值,且返回值被转换成字符串。

脚本

脚本是在<% %>里嵌入的Java代码,这里的Java代码和一般的Java代码没有什么区别,所以每一条语句同样要以分号“;”结束,这和表达式是不相同的。

语法:<% code %>

声明

声明用来定义当前JSP页面中使用的变量和方法。

该标签中定义的变量为JSP页面全局变量,JSP转化成Servlet后,定义的变量转化为类变量,方法转化为Servlet中的方法。

语法:<%! code %>

例如,<%!String str=“hello” ;%>

<%! public static final StringDEFAULT_NAME=“World”;%>

<%! public String getName(HttpServletRequestrequest){

                     returnrequest.getParameter(“name”);

              }

%>

注意:变量的声明必须以;结尾,该声明仅在一个页面中有效,如果想每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用<%@include%>或<jsp:include>元素包含进来。

 

 

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 ucl录取差两分怎么办 考研准考证号填错了怎么办? 拿到工伤证后怎么办 专接本有挂科怎么办 小孩发烧后惊厥怎么办 深圳民办学校停办学生怎么办 教育机构不退钱怎么办 智慧树错过选课怎么办 河南城建学院怎么办网 建学校土地手续怎么办 德国预科不能毕业怎么办 想出国打工怎么办手续 终结执行了该怎么办 网银界面打不开怎么办 abr检查结果异常怎么办 大排畸胎儿位置不好怎么办 交社保中途死了怎么办 不知道社保密码怎么办 社保卡没有信息怎么办 医保卡没有信息怎么办 信访局不受理怎么办 没身份证怎么办健康证 海峡银行怎么办医保卡 小学借读生学籍怎么办 光头也有头皮屑怎么办 情侣没话题了怎么办 月经前后有异味怎么办 头发里有湿疹怎么办 公务员退休职业年金怎么办 迅雷打不开怎么办安卓 苹果迅雷闪退怎么办 青羊区爱君家政欺骗学员怎么办 工地拿不到钱怎么办 包工头拿不到工程款怎么办 华夏盾密码错六次怎么办 怀孕六个月有孕纹了怎么办 课堂上不会讲课怎么办 怀孕吃薏米粥怎么办 吃了薏米肚子痛怎么办 孕期吃了薏米怎么办 怀孕误食薏米水怎么办