恩 这好几天有时间 可以利用闲暇的时间来写了一个项目,来回顾一起使用的技术 并对使用的该技术进行总结和归纳。
首先创建了一个项目 项目的名称我们可以根据自己的需要进行定义。下面进入正题............
其实呢做过 java web开发的开发员基本上都用过jsp,jsp也使用的非常的广泛既然如此的广泛那我们就去认识它一下吧!
jsp的构成呢 我主要给分了三类元素,哪三类元素呢?(接着往下看吧)
jsp构成的三类元素:Java程序片,jsp自带标签和html元素构成。
说到这有人会问了java程序片 这是个什么东西?你能说的在详细一点吗?(如果有如此疑问的我们接下来就看看 这是个什么?当然有知道的可以跳过这段接着往下看吧)。
Java程序片:
一般来说 jsp调用Java程序片来实现业务逻辑的计算(当然也有个别的情况,那就的根据需求的情况而定了),Java程序片有三种表现形式:实体定义、表达式、java代码块。在使用实体之前需要先对实体进行定义,下面是java程序片的定义和使用的语法格式。
实体定义包括:定义变量、方法定义、类定义。
定义的语法:可以在<%!和%>标记符之间定义。
例如:
(1)变量定义
<%!
int x,y=120;
String a="China";
Double money;
%>
(2) 方法定义
<%!
int fangfa(int n){
int ff=1;
ff+=1;
return ff;
}
%>
(3) 类定义
<%!
public class Circle{
double r;
Circle(double r){
this.r=r;
}
double area(){
return Math.PI*r*r;
}
double zhou(){
return Math.PI*2*r;
}
}
%>
呵呵 一看上面的例子 大家都知道 java程序片的定义是怎么回事了吧。
表达式:可以在<%=和%>标记符之间插入一个表达式,这个表法是必须能计算出数据值(注意:<%=是一个完整的符号,<%和=之间不能有空格)。
例如:求 x=a+b+c的值。
<%! int a=30; int b=40; int c=50;%>
<%=a+b+c%> 客户端输出的是 120
Java代码块:可以在<%和%>标记符之间包含多个java语句(可以是java类的代码怎么写 这个地方也可以这么写)块,jsp引擎按顺序执行这些java代码块,在java代码块中定 义的变量通过jsp引擎转译为java文件时,这些变量称为某个方法的变量,即局部变量,局部变量在本jsp页面内的所有java代码中起作用(jsp页面转译为serlvet源代码时,jsp页 面内的所有java代码块合并到同一方法中)。
如下面的例子:
计算并输出表达式的值。
<%! int d;%> //定义全局变量d
<% int a=30;%> //定义局部变量a
<%
int b=30; //定义局部变量b
int c=40; //定义局部变量c
d=a+b+c; //计算表达式的值
out.print(d); //输出d的值
%>
本段程序有两个java代码块,变量d是全局变量,在整个jsp页面内有效,a,b,c是局部变量,在jsp页面内的所有java代码块中有效,本程序运行后输出100.
JSP标签
一般使用jsp标签控制页面属性,JSP标签分为JSP注释、指令标签和动作标签三类,指令标签有page、include和taglib。动作标签只要有include、param、foword、plugin
useBean。
JSP注释
注释本身不产生语句功能,只用来增强JSP文件的可读性,便于用户维护JSP文件,JSP注释分两种:HTML注释和JSP注释。
(1) HTML注释:JSP页面使用这种注释时,客户端通过浏览器查看JSP源文件时,能够看到HTML注释文字,去语法格式是:
<!-- 要注释的内容、文字、说明写在这里-->
(2)JSP注释 使用这种注释时,JSP引擎编译该页面时会忽略JSP注释。
下面是其语法格式:
<%-- 要注释的内容、文字、说明写在这里--%>
page 指令标签:page指令主要用来定义整个JSP页面的各种属性。一个JSP页面可以包含多个page指令,指令中,除了import属性外,每个属性只能定义一次,否则JSP页面编译将出现错误。下面是page指令格式:
<%@ page
[language="java"]
[extends="classname"]
[import="packname/classname"]
[session="true/false"]
[buffer="none/sizekb"]
[autoFlush="true/false"]
[isThreadeSafe="true/false"]
[info="info_text"]
[errorPage="true/false"]
[isErrorPage="true/false"]
[contentType="MIME_type"]
[pageEncoding=""]
%>
本标签由多个属性名="属性值" 对构成,通过这种方式设置页面的属性。
language属性:;language属性定义JSP页面中所使用的脚本语言。目前JSP必须使用的是java语言,因此该属性的默认值为"java" 因此也要求JSP页面的编程语言必须符合java语言规则。
(1)Language属性设置如下:
language="java"
使用该属性组要注意的是,在第一次出现脚本元素之前,使用设置该属性的参数值,否则将会导致严重的错误。
(2)extends该属性定义JSP页面产生的Servlet所继承的父类,由于该属性将限制JSP引擎提供特定的超类,这些超类可能会改善所提供服务的品质,因此在使用该属性时必须十分注意。
(3)import 该属性和一般的java语言中的import关键字意义一样,它描述了脚本环境中要使用的类。
(4)session 该属性指定JSP页面是否参与Http会话,它的默认值是true,表示该属性所在的页面参数与指定Http的会话。
(5)buffer 该属性指定输出到客户端的流的缓冲模式,如果属性值为true,将不缓冲、输出直接通过ServletResponse的printWriter输出。
如果该属性值为一个数字,该数字就表示缓冲区的大小,它的单位是千字节。并且输出的大小至少不会小于这个值,通常,默认的缓冲区大小为8KB。
(6) autoFlsh 该属性的默认值为true,表示当缓冲区满时,到客户端的输出将会自动刷新,若该属性为false,则当缓冲区满时,将会出现缓冲区溢出异常。需要注意的是,在buffer属性值去none的时候,autoFlush属性值不能设置为false。因为当butter取值为none时,表明没有设置缓冲区因而JSP页面的jspWriter本身将会自动刷新新缓冲区。
(7) isTheadSafe 该属性用来设置JSP页面是否可以多线程使用。默认值true,如果采用默认值,则在运行JSP页面时,可能会同时接受多个客户的请求。当该属性取值为false时,一个JSP处理器将会逐个的接受客户的请求。
(8) info 在该属性中定义了一个任意的字符串,可以用来说明JSP页面中待说明的信息,该字符串将会直接加入到 翻译好的页面中通过Servlet.getservletInfo()方法获得该属性的值。
(9)errorPage 该属性用于表示当发生异常错误时调用的JSP页面,通常默认忽略。
(10) isErrorPage 该属性定义了当前的JSP页面是否为另外一个JSP页面错误显示目标。
(11) contentType 该属性定义了JSP页面及其相应的字符编码以及JSP页面响应的MIME类型。对该属性设置的格式如下:
"TYPE; charset=CHARSET"(需要注意的是分号后面有一个空格)
TYPE默认值为"text/html",字符编码的默认值为ISO-88591。
(12)该属性描述JSP页面的字符编码,通常默认值为。‘’ ISO-88591"
(13) 该属性用来设置EL(Expression Language.表达语言,已纳入JSP2.0为标准规范之一)是否被忽略,如果取值为 true,则忽略EL表达式计算,反之则不忽略。该属性慈宁宫的默认值依据“web.xml”描述文件版本确定,Serlvet2.3以前的版本将忽略。
include指令标签:该指令标签语法格式如下:<%@ include file="文件名字"%>
该指令标签的作用是在该标签的位置处,静态插入一个文件,所谓静态插入指用被插入的文件内容代替该指令标签与当前JSP文件合并成新的JSP页面,在有JSP引擎转译为java文件。
taglib指令标签:该指令用来扩展标记指令的,其语法格式如下:<%@ taglib uri="taglibURl" prefix="tagPrefix"%> 其中url是一个标记库描述器,来用唯一命名一组定制的标记,并且告诉包容器,如何出料口特殊标记。
TagPrefix定义了JSP页面里要引用该标签时的前缀,需要注意的是,这些前缀不能再jsp、jspx、java、javax、sun、servlet和sunw。
param动作标签:param动作标签的语法格式是:<jsp:param name="变量名字" value="变量值">
该标签经常与jsp:incluede、jsp:forward、jsp:plugin标签一起使用,将param标签中的变量值传递给动态加载的文件。
forward动作标签:forward动作标签的语法格式:
<jsp:forward page=“要转向的页面”></jsp:forward> 该指令的作用是:当前页面执行到该指令处后转向其它JSP页面执行。
plugin动作标签:
plugin动作标签的语法格式:
<jsp:plgin type="applet" code="applet 程序字节码文件名“ codebase="applet程序字节码文件所在目录" width="宽度">
<jsp:fallback>提示信息
</jsp:plugin>
该动作标签指示 JSP页面加载 Java plugin插件,该插件有客户负责下载,并使用该插件运行java applet小应用程序。
以下是需要注意的:
(1)<%%>不能嵌套使用
(2)在<%%>之间不能插入HTML语言
(3)JSP标签都要成对使用
(4)标签的每个属性的值要用""引用
(5)重定向与超链接的区别:a页重定向到b页,是在a页显示b页内容;a页超链接b页,是转到b页。
时间过的挺快啊 转眼就要下班了 呵呵 今天就先写到这吧!