jsp第二课-jsp语法
来源:互联网 发布:ppt编辑数据不可用 编辑:程序博客网 时间:2024/06/05 06:56
1. JSP页面的基本结构
JSP页面可由5种元素组合而成:① 普通的HTML标记符;② JSP标记,如指令标记、动作标记;③ 成员变量和方法;④ Java程序片;⑤ Java表达式
处理过程:
1.把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。
2.JSP标记、数据和方法声明、Java程序片由Tomcat服务器负责执行,将需要显示的结果发送给客户的浏览器。
3. Java表达式由Tomcat服务器负责计算,将结果转化为字符串,交给客户的浏览器负责显示。
2. JSP页面的成员变量和方法
1.在JSP页面的标记符“<%!”和“%>”之间声明的变量称作JSP页面的成员变量 .
2. JSP页面在“<%!”和“%>”之间声明定义 方法 .
3. Java程序片
在“<%”和“%>”之间插入Java程序片
程序片中声明的变量称为JSP页面的局部变量
多个客户请求一个JSP页面时 , Java程序片将被执行多次,分别在不同的线程中执行。
4. Java表达式
“<%=”和“%>”之间可以是一个Java表达式 .
表达式的值由服务器负责计算,并将计算结果用字符串形式发送到客户端显示。 .
5.JSP中的注释
HTML注释格式:
<!-- 注释内容 -->
JSP注释格式:
<%-- 注释内容 --%>
6. JSP 指令标记
page 指令标记:
page 指令用来定义整个JSP页面的一些属性和这些属性的值,属性值用单引号或双引号括起来。可以用一个page指令指定多个属性的值 ,也可以使用多个page指令分别为每个属性指定值 .
page指令的作用对整个JSP页面有效,与其书写的位置无关,习惯把page指令写在JSP页面的最前面。例如:
<%@ page 属性1=“属性1的值” 属性2= “属性2的值” ……%>
或
<%@ page 属性1="属性1的值" %>
<%@ page 属性2="属性2的值" %>
… …
<%@ page 属性n="属性n的值" %>
page 指令标记可以指定如下属性的值:
contentType、import、language、session、buffer、auotFlush 、isThreadSafe、pageEncoding
contentType属性
contentType 属性值确定JSP页面响应的MIME(Multipurpose Internet Mail Extention)类型和JSP页面字符的编码。
例如:
<%@ page contentType="text/html;charset=GB2312" %>
不允许两次使用page 指令给contentType属性指定不同的属性值.
import 属性
该属性的作用是为JSP页面引入Java运行环境提供的包中的类,这样就可以在JSP页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。
例如:
<%@ page import="java.io.*", "java.util.Date" %>
language属性
定义JSP页面使用的脚本语言,该属性的值目前只能取"java"。
为language属性指定值的格式:
<%@ page language="java" %>
session 属性
用于设置是否需要使用内置的session对象。session的属性值可以是true或false。session属性默认的属性值是true。
buffer 属性
内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。例如:
<%@ page buffer= “24kb” %>buffer属性的默认值是8kb 。buffer属性可以取值" none",设置out不使用缓冲区。
autoFlush 属性
指定out的缓冲区被填满时,缓冲区是否自动刷新。
isThreadSafe 属性
用来设置JSP页面是否可多线程访问。
include 指令标记
如果需要在JSP页面内某处整体嵌入一个文件,就可以考虑使用include指令标记,其语法格式如下:
<%@ include file= "文件的URL " %>
如果该文件和当前JSP页面在同一Web服务目录中,那么“文件的URL”就是文件的名字;如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如fileDir子目录中,那么“文件的URL”就是“fileDir/文件的名字”。
静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
7.JSP 动作标记
include 动作标记
<jsp:include page= "文件的URL"/>
或
<jsp:include page= "文件的URL">
param子标记
</jsp:include>
include 动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面. 要与include 指令标记相区别。
param动作标记
param标记以“名字—值”对的形式为其它标记提供附加信息.
param标记不能独立使用,需作为jsp:include、jsp:forward、jsp:plugin标记的子标记来使用。
param动作标记语法格式:
<jsp:param name= “名字” value= “指定给param的值”>
当该标记与jsp:include动作标记一起使用时,可以将param标记中的值传递到include动作标记要加载的文件中去,被加载的JSP文件可以使用Tomcat服务器提供的request内置对象获取include动作标记的param子标记中name属性所提供的值
forward 动作标记
该指令的作用是:从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面。
<jsp:forward page="要转向的页面" />
或
<jsp:forward page="要转向的页面" >
param子标记
</jsp:forward>
useBean 动作标记
该标记用来创建并使用一个Javabean,是非常重要的一个动作标记,我们将在第4课详细讨论。Sun公司的倡导是:用HTML完成JSP页面的静态部分,用Javabean完成动态部分,实现真正意义上的静态和动态分离。
例子1
example2_1.jsp
<%@ page contentType="text/html;charset=GB2312" %> <!-- jsp指令标记 -->
<%@ page import="java.util.Date" %> <!-- jsp指令标记 -->
<%! Date date; // 数据声明
int start,end,sum;
public int continueSum(int start,int end) // 方法声明
{ for(int i=start;i<=end;i++)
sum=sum+i;
return sum;
}
%>
<HTML><BODY bgcolor=cyan> <!—html标记 -->
<FONT size=4><P>程序片创建Date对象:
<% date=new Date(); //java程序片
out.println("<BR>"+date);
start=1;
end=100;
sum=continueSum(start,end);
%>
<BR>从
<%= start %> <!-- Java表达式 -->
至
<%= end %>
的连续和是
<%= sum %>
</FONT></BODY></HTML>
例子2
example2_2.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY BGCOLOR=cyan><FONT size=3>
<%! int i=0;
%>
<% i++;
%>
<P>您是第
<%= i %>
个访问本站的客户。
</BODY></HTML>
例子3
example2_3.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
<%! double x,y;
double multi(double x,double y)
{ return x*y;
}
double div(double x,double y)
{ return x/y;
}
%>
<% x=127;
y=18;
out.println("调用multi方法计算"+x+"与"+y+"之积:");
double a=multi(x,y);
out.println(a);
x=a;
out.println("<BR>调用div方法计算"+x+"除以"+y+"的商:");
double b=div(x,y);
out.println(b);
%>
</BODY></HTML>
例子4
example2_4.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY>
<%! int count=0; //被客户共享的count
synchronized void setCount() //synchronized修饰的方法
{ count++;
}
%>
<% setCount();
out.println("您是第"+count+"个访问本站的客户");
%>
</BODY></HTML>
例子5
example2_5.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
<P> 输出英文字母.
<% char start='A',end='M',c;
int size=2;
%>
<BR> 用<%=size %>磅字号输出
<Font size=<%=size%>>
<% for(c=start;c<=end;c++)
{
%> <%= c %>,
<% }
%>
</Font>
<% size=4;
start=(char)(end+1);
end='Z';
%>
<BR> 用<%=size %>磅字号输出
<Font size=<%=size%>>
<% for(c=start;c<=end;c++)
{
%> <%= c %>,
<% }
%>
</Font></BODY></HTML>
例子6
example2_6.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT size=3>
<% double a=12.89;
int x=12,y=10;
%>
计算表达式a+x*y-100/x+x%5的值:
<%= a+x*y-100/x+x%5 %>
<BR>计算表达式x>y&&a>0的值:
<%=x>y&&a>0%>
<BR>计算表达式sin(x)+cos(y):
<%=Math.sin(x)+Math.cos(y)%>
<BR> 求8的平方根:
<%=Math.sqrt(8)%>
</FONT></BODY></HTML>
例子7
example2_7.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<!-- 以下字体的颜色为蓝色 -->
<FONT size=3 color=blue>抽取字符串"C:\myfile\jspfile\example.jsp"中的"example.jsp"
</FONT>
<%-- 下面是成员变量的声明 --%>
<%! String s="C:\\myfile\\jspfile\\example.jsp";
%>
<%-- 下面是Java程序片 --%>
<% int index=s.lastIndexOf("\\");
String str=s.substring(index+1);
%>
<BR><%-- 下面是Java表达式 --%>
<%= str %>
</BODY></HTML>
例子8
first.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY BGCOLOR=cyan>
<FONT Size=3>
<P>使用html处理所接受到的信息.
<input type=text size=10>
</FONT></BODY></HTML>
second.jsp
<%@ page contentType="application/vnd.ms-powerpoint" %>
<HTML><BODY BGCOLOR=cyan>
<FONT Size=8>
<P>启动powerpoint应用程序处理所接受到的信息.
<input type=text size=10>
</FONT></BODY></HTML>
third.jsp
<%@ page contentType="image/x-xbitmap" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.awt.image.*" %>
<%@ page import="java.awt.geom.*" %>
<%@ page import="com.sun.image.codec.jpeg.*" %>
<% int width=260, height=260;
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, width, height);
Graphics2D g_2d=(Graphics2D)g;
Ellipse2D ellipse=new Ellipse2D. Double (40,50,100,40);
g_2d.setColor(Color.blue);
g_2d.draw(ellipse);
Polygon polygon=new Polygon();
polygon.addPoint(12,34);
polygon.addPoint(51,134);
polygon.addPoint(102,34);
g_2d.drawPolygon(polygon);
g_2d.dispose();
OutputStream outClient= response.getOutputStream(); //获取指向客户端的输出流
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(outClient);
encoder.encode(image);
%>
例子9
example2_9.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page info="清华大学" %>
<% String s=getServletInfo();
%>
<head> <%= s %></head>
<HTML><BODY bgcolor=cyan><FONT Size=4>
<BR><%=s %>出版社是中国著名出版社
<BR><%=s %>是全国著名的高等学府
</BODY><HTML>
例子10
firstExample2_10.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ include file="myfile/ok.txt" %>
<HTMLl><BODY bgcolor=cyan>
<P>我是firstExample.jsp页面
</BODY></HTML>
secondExample2_10.jsp(效果如图2.9(b)所示)
<%@ page contentType="text/html;charset=GB2312" %>
<%@ include file="myfile/ok.txt" %>
<HTML><BODY bgcolor=yellow>
<P>我是secondExample.jsp页面
</BODY></HTML>
上述firstExample2_10.jsp等价于下面的JSP文件same.jsp:
same.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<A href="firstExample2_10.jsp">欢迎去firstExample2_10.jsp页面</A>
<BR>
<A href="secondExample2_10.jsp">欢迎去secondExample2_10.jsp页面</A>
<HTML><BODY bgcolor=cyan>
<P>我是firstExample.jsp页面
</BODY></HTML>
例子11
example2_11.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=yellow >
<% double a=3,b=4,c=5;
%>
<BR>加载trangle.jsp计算三边为<%=a%>,<%=b%>,<%=c%>的三角形面积:
<jsp:include page="myfile/trangle.jsp">
<jsp:param name="sideA" value="<%=a%>"/>
<jsp:param name="sideB" value="<%=b%>"/>
<jsp:param name="sideC" value="<%=c%>"/>
</jsp:include>
</BODY></HTML>
trangle.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%! public String getArea(double a,double b,double c)
{ if(a+b>c&&a+c>b&&c+b>a)
{ double p=(a+b+c)/2.0;
double area=Math.sqrt(p*(p-a)*(p-b)*(p-c)) ;
return ""+area;
}
else
{ return(""+a+","+b+","+c+"不能构成一个三角形,无法计算面积");
}
}
%>
<% String sideA=request.getParameter("sideA");
String sideB=request.getParameter("sideB");
String sideC=request.getParameter("sideC");
double a=Double.parseDouble(sideA);
double b=Double.parseDouble(sideB);
double c=Double.parseDouble(sideC);
%>
<Font color=blue size=4>
<P>我是被加载的文件,负责计算三角形的面积<BR>
给我传递的三边是:<%=sideA%>,<%=sideB%>,<%=sideC%>
<BR>三角形的面积:<%= getArea(a,b,c)%>
</Font>
例子12
example2_12.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<% double i=Math.random();
if(i>0.5)
{
%> <jsp:forward page="frontSide.jsp" >
<jsp:param name="number" value="<%= i %>" />
</jsp:forward>
<% }
else
{
%> <jsp:forward page="reverseSide.jsp" >
<jsp:param name="number" value="<%= i %>" />
</jsp:forward>
<% }
%>
</BODY></HTML>
frontSide.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=3>
<% String s=request.getParameter("number");
out.println("<BR>传递过来的值是"+s);
%>
<BR><img src=image/a.JPG width=120 height=120 >钱币图像</img>
</FONT></BODY></HTML>
reverseSide.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=3>
<% String s=request.getParameter("number");
out.println("传递过来的值是"+s);
%>
<BR> <img src=image/b.JPG width=120 height=120 >钱币图像</img>
</FONT></BODY></HTML>
例子13
example2_13.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<jsp:plugin type="applet" code="B.class" jreversion="1.2" width="200" height="260">
<jsp:fallback>
Plugin tag OBJECT or EMBED not supported by browser.
</jsp:fallback>
</jsp:plugin>
</BODY></HTML>
JSP页面可由5种元素组合而成:① 普通的HTML标记符;② JSP标记,如指令标记、动作标记;③ 成员变量和方法;④ Java程序片;⑤ Java表达式
处理过程:
1.把JSP页面中普通的HTML标记符号,交给客户的浏览器执行显示。
2.JSP标记、数据和方法声明、Java程序片由Tomcat服务器负责执行,将需要显示的结果发送给客户的浏览器。
3. Java表达式由Tomcat服务器负责计算,将结果转化为字符串,交给客户的浏览器负责显示。
2. JSP页面的成员变量和方法
1.在JSP页面的标记符“<%!”和“%>”之间声明的变量称作JSP页面的成员变量 .
2. JSP页面在“<%!”和“%>”之间声明定义 方法 .
3. Java程序片
在“<%”和“%>”之间插入Java程序片
程序片中声明的变量称为JSP页面的局部变量
多个客户请求一个JSP页面时 , Java程序片将被执行多次,分别在不同的线程中执行。
4. Java表达式
“<%=”和“%>”之间可以是一个Java表达式 .
表达式的值由服务器负责计算,并将计算结果用字符串形式发送到客户端显示。 .
5.JSP中的注释
HTML注释格式:
<!-- 注释内容 -->
JSP注释格式:
<%-- 注释内容 --%>
6. JSP 指令标记
page 指令标记:
page 指令用来定义整个JSP页面的一些属性和这些属性的值,属性值用单引号或双引号括起来。可以用一个page指令指定多个属性的值 ,也可以使用多个page指令分别为每个属性指定值 .
page指令的作用对整个JSP页面有效,与其书写的位置无关,习惯把page指令写在JSP页面的最前面。例如:
<%@ page 属性1=“属性1的值” 属性2= “属性2的值” ……%>
或
<%@ page 属性1="属性1的值" %>
<%@ page 属性2="属性2的值" %>
… …
<%@ page 属性n="属性n的值" %>
page 指令标记可以指定如下属性的值:
contentType、import、language、session、buffer、auotFlush 、isThreadSafe、pageEncoding
contentType属性
contentType 属性值确定JSP页面响应的MIME(Multipurpose Internet Mail Extention)类型和JSP页面字符的编码。
例如:
<%@ page contentType="text/html;charset=GB2312" %>
不允许两次使用page 指令给contentType属性指定不同的属性值.
import 属性
该属性的作用是为JSP页面引入Java运行环境提供的包中的类,这样就可以在JSP页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。
例如:
<%@ page import="java.io.*", "java.util.Date" %>
language属性
定义JSP页面使用的脚本语言,该属性的值目前只能取"java"。
为language属性指定值的格式:
<%@ page language="java" %>
session 属性
用于设置是否需要使用内置的session对象。session的属性值可以是true或false。session属性默认的属性值是true。
buffer 属性
内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设置的缓冲区的大小或不使用缓冲区。例如:
<%@ page buffer= “24kb” %>buffer属性的默认值是8kb 。buffer属性可以取值" none",设置out不使用缓冲区。
autoFlush 属性
指定out的缓冲区被填满时,缓冲区是否自动刷新。
isThreadSafe 属性
用来设置JSP页面是否可多线程访问。
include 指令标记
如果需要在JSP页面内某处整体嵌入一个文件,就可以考虑使用include指令标记,其语法格式如下:
<%@ include file= "文件的URL " %>
如果该文件和当前JSP页面在同一Web服务目录中,那么“文件的URL”就是文件的名字;如果该文件在JSP页面所在的Web服务目录的一个子目录中,比如fileDir子目录中,那么“文件的URL”就是“fileDir/文件的名字”。
静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。
7.JSP 动作标记
include 动作标记
<jsp:include page= "文件的URL"/>
或
<jsp:include page= "文件的URL">
param子标记
</jsp:include>
include 动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面. 要与include 指令标记相区别。
param动作标记
param标记以“名字—值”对的形式为其它标记提供附加信息.
param标记不能独立使用,需作为jsp:include、jsp:forward、jsp:plugin标记的子标记来使用。
param动作标记语法格式:
<jsp:param name= “名字” value= “指定给param的值”>
当该标记与jsp:include动作标记一起使用时,可以将param标记中的值传递到include动作标记要加载的文件中去,被加载的JSP文件可以使用Tomcat服务器提供的request内置对象获取include动作标记的param子标记中name属性所提供的值
forward 动作标记
该指令的作用是:从该指令处停止当前页面的继续执行,而转向执行page属性指定的JSP页面。
<jsp:forward page="要转向的页面" />
或
<jsp:forward page="要转向的页面" >
param子标记
</jsp:forward>
useBean 动作标记
该标记用来创建并使用一个Javabean,是非常重要的一个动作标记,我们将在第4课详细讨论。Sun公司的倡导是:用HTML完成JSP页面的静态部分,用Javabean完成动态部分,实现真正意义上的静态和动态分离。
例子1
example2_1.jsp
<%@ page contentType="text/html;charset=GB2312" %> <!-- jsp指令标记 -->
<%@ page import="java.util.Date" %> <!-- jsp指令标记 -->
<%! Date date; // 数据声明
int start,end,sum;
public int continueSum(int start,int end) // 方法声明
{ for(int i=start;i<=end;i++)
sum=sum+i;
return sum;
}
%>
<HTML><BODY bgcolor=cyan> <!—html标记 -->
<FONT size=4><P>程序片创建Date对象:
<% date=new Date(); //java程序片
out.println("<BR>"+date);
start=1;
end=100;
sum=continueSum(start,end);
%>
<BR>从
<%= start %> <!-- Java表达式 -->
至
<%= end %>
的连续和是
<%= sum %>
</FONT></BODY></HTML>
例子2
example2_2.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY BGCOLOR=cyan><FONT size=3>
<%! int i=0;
%>
<% i++;
%>
<P>您是第
<%= i %>
个访问本站的客户。
</BODY></HTML>
例子3
example2_3.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
<%! double x,y;
double multi(double x,double y)
{ return x*y;
}
double div(double x,double y)
{ return x/y;
}
%>
<% x=127;
y=18;
out.println("调用multi方法计算"+x+"与"+y+"之积:");
double a=multi(x,y);
out.println(a);
x=a;
out.println("<BR>调用div方法计算"+x+"除以"+y+"的商:");
double b=div(x,y);
out.println(b);
%>
</BODY></HTML>
例子4
example2_4.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY>
<%! int count=0; //被客户共享的count
synchronized void setCount() //synchronized修饰的方法
{ count++;
}
%>
<% setCount();
out.println("您是第"+count+"个访问本站的客户");
%>
</BODY></HTML>
例子5
example2_5.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY bgcolor=cyan>
<P> 输出英文字母.
<% char start='A',end='M',c;
int size=2;
%>
<BR> 用<%=size %>磅字号输出
<Font size=<%=size%>>
<% for(c=start;c<=end;c++)
{
%> <%= c %>,
<% }
%>
</Font>
<% size=4;
start=(char)(end+1);
end='Z';
%>
<BR> 用<%=size %>磅字号输出
<Font size=<%=size%>>
<% for(c=start;c<=end;c++)
{
%> <%= c %>,
<% }
%>
</Font></BODY></HTML>
例子6
example2_6.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT size=3>
<% double a=12.89;
int x=12,y=10;
%>
计算表达式a+x*y-100/x+x%5的值:
<%= a+x*y-100/x+x%5 %>
<BR>计算表达式x>y&&a>0的值:
<%=x>y&&a>0%>
<BR>计算表达式sin(x)+cos(y):
<%=Math.sin(x)+Math.cos(y)%>
<BR> 求8的平方根:
<%=Math.sqrt(8)%>
</FONT></BODY></HTML>
例子7
example2_7.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<!-- 以下字体的颜色为蓝色 -->
<FONT size=3 color=blue>抽取字符串"C:\myfile\jspfile\example.jsp"中的"example.jsp"
</FONT>
<%-- 下面是成员变量的声明 --%>
<%! String s="C:\\myfile\\jspfile\\example.jsp";
%>
<%-- 下面是Java程序片 --%>
<% int index=s.lastIndexOf("\\");
String str=s.substring(index+1);
%>
<BR><%-- 下面是Java表达式 --%>
<%= str %>
</BODY></HTML>
例子8
first.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<HTML><BODY BGCOLOR=cyan>
<FONT Size=3>
<P>使用html处理所接受到的信息.
<input type=text size=10>
</FONT></BODY></HTML>
second.jsp
<%@ page contentType="application/vnd.ms-powerpoint" %>
<HTML><BODY BGCOLOR=cyan>
<FONT Size=8>
<P>启动powerpoint应用程序处理所接受到的信息.
<input type=text size=10>
</FONT></BODY></HTML>
third.jsp
<%@ page contentType="image/x-xbitmap" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.awt.image.*" %>
<%@ page import="java.awt.geom.*" %>
<%@ page import="com.sun.image.codec.jpeg.*" %>
<% int width=260, height=260;
BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics g = image.getGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, width, height);
Graphics2D g_2d=(Graphics2D)g;
Ellipse2D ellipse=new Ellipse2D. Double (40,50,100,40);
g_2d.setColor(Color.blue);
g_2d.draw(ellipse);
Polygon polygon=new Polygon();
polygon.addPoint(12,34);
polygon.addPoint(51,134);
polygon.addPoint(102,34);
g_2d.drawPolygon(polygon);
g_2d.dispose();
OutputStream outClient= response.getOutputStream(); //获取指向客户端的输出流
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(outClient);
encoder.encode(image);
%>
例子9
example2_9.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page info="清华大学" %>
<% String s=getServletInfo();
%>
<head> <%= s %></head>
<HTML><BODY bgcolor=cyan><FONT Size=4>
<BR><%=s %>出版社是中国著名出版社
<BR><%=s %>是全国著名的高等学府
</BODY><HTML>
例子10
firstExample2_10.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ include file="myfile/ok.txt" %>
<HTMLl><BODY bgcolor=cyan>
<P>我是firstExample.jsp页面
</BODY></HTML>
secondExample2_10.jsp(效果如图2.9(b)所示)
<%@ page contentType="text/html;charset=GB2312" %>
<%@ include file="myfile/ok.txt" %>
<HTML><BODY bgcolor=yellow>
<P>我是secondExample.jsp页面
</BODY></HTML>
上述firstExample2_10.jsp等价于下面的JSP文件same.jsp:
same.jsp
<%@ page contentType="text/html;Charset=GB2312" %>
<A href="firstExample2_10.jsp">欢迎去firstExample2_10.jsp页面</A>
<BR>
<A href="secondExample2_10.jsp">欢迎去secondExample2_10.jsp页面</A>
<HTML><BODY bgcolor=cyan>
<P>我是firstExample.jsp页面
</BODY></HTML>
例子11
example2_11.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=yellow >
<% double a=3,b=4,c=5;
%>
<BR>加载trangle.jsp计算三边为<%=a%>,<%=b%>,<%=c%>的三角形面积:
<jsp:include page="myfile/trangle.jsp">
<jsp:param name="sideA" value="<%=a%>"/>
<jsp:param name="sideB" value="<%=b%>"/>
<jsp:param name="sideC" value="<%=c%>"/>
</jsp:include>
</BODY></HTML>
trangle.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%! public String getArea(double a,double b,double c)
{ if(a+b>c&&a+c>b&&c+b>a)
{ double p=(a+b+c)/2.0;
double area=Math.sqrt(p*(p-a)*(p-b)*(p-c)) ;
return ""+area;
}
else
{ return(""+a+","+b+","+c+"不能构成一个三角形,无法计算面积");
}
}
%>
<% String sideA=request.getParameter("sideA");
String sideB=request.getParameter("sideB");
String sideC=request.getParameter("sideC");
double a=Double.parseDouble(sideA);
double b=Double.parseDouble(sideB);
double c=Double.parseDouble(sideC);
%>
<Font color=blue size=4>
<P>我是被加载的文件,负责计算三角形的面积<BR>
给我传递的三边是:<%=sideA%>,<%=sideB%>,<%=sideC%>
<BR>三角形的面积:<%= getArea(a,b,c)%>
</Font>
例子12
example2_12.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<% double i=Math.random();
if(i>0.5)
{
%> <jsp:forward page="frontSide.jsp" >
<jsp:param name="number" value="<%= i %>" />
</jsp:forward>
<% }
else
{
%> <jsp:forward page="reverseSide.jsp" >
<jsp:param name="number" value="<%= i %>" />
</jsp:forward>
<% }
%>
</BODY></HTML>
frontSide.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=3>
<% String s=request.getParameter("number");
out.println("<BR>传递过来的值是"+s);
%>
<BR><img src=image/a.JPG width=120 height=120 >钱币图像</img>
</FONT></BODY></HTML>
reverseSide.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY bgcolor=cyan><Font size=3>
<% String s=request.getParameter("number");
out.println("传递过来的值是"+s);
%>
<BR> <img src=image/b.JPG width=120 height=120 >钱币图像</img>
</FONT></BODY></HTML>
例子13
example2_13.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML><BODY>
<jsp:plugin type="applet" code="B.class" jreversion="1.2" width="200" height="260">
<jsp:fallback>
Plugin tag OBJECT or EMBED not supported by browser.
</jsp:fallback>
</jsp:plugin>
</BODY></HTML>
- jsp第二课-jsp语法
- 【JSP笔记】第二章 JSP基础语法
- 第二章 掌握JSP语法
- jsp第二课
- jsp第二课
- JSP语法 jsp:forward
- JSP语法 jsp:getProperty
- JSP语法 jsp:include
- JSP语法 jsp:plugin
- JSP语法 jsp:useBean
- jsp---->Jsp语法
- 【jsp】jsp语法
- JSP -- JSP语法
- JSP--JSP语法
- jsp 2 jsp语法
- jsp语法
- JSP语法
- JSP语法
- Java中的BoneCP数据库连接池用法
- delphi冒泡算法
- 第三周任务4
- 【POJ2488】 A knight's Journey 解题报告 测试数据+代码+思路
- 学习下批处理
- jsp第二课-jsp语法
- 计算机专业要不要考研(转载)
- 把STL转为ACT格式
- SVN提交注意点
- Oracle软件结构
- Android大环境杂谈<待续中>
- 算法证明1 最短路径性质
- songshichao----的找工作经历
- Git介绍