文档库 最新最全的文档下载
当前位置:文档库 › JSP标记代码

JSP标记代码

(1)page 指令用来定义整个JSP页面的一些属性和这些属性的值,属性值用单引号或双引号括起来。可
以用一个page指令指定多个属性的值 ,也可以使用多个page指令分别为每个属性指定值。

(2)page指令的作用对整个JSP页面有效,与其书写的位置无关,习惯把page指令写在JSP页面的最前面。

(3)contentType 属性值确定JSP页面响应的MIME(Multipurpose Internet Mail Extention)类型。
例如: <%@ page contentType="text/html;charset=GB2312" %>
注:不允许两次使用page 指令给contentType属性指定不同的属性值 .
下列用法错误:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page contentType="application/msword" %>

(4)import属性的作用是为JSP页面引入Java运行环境提供的包中的类,这样就可以在JSP页面的程序片部
分、变量及函数声明部分、表达式部分使用包中的类。
使用page指令可以为import属性指定几个值,这些值用逗号分隔。
例如:
<%@ page import="java.io.*", "java.util.Date" %>
注:JSP页面默认import属性已经有" https://www.wendangku.net/doc/548616384.html,ng.* "、"javax.servlet .* " 等值。

(5)属性language定义JSP页面使用的脚本语言,该属性的值目前只能取"java"。
例如: <%@ page language="java" %>
注:JSP页面默认有如上page指令 。

(6)属性session用于设置是否需要使用内置的session对象。
session的属性值可以是true或false。
session属性默认的属性值是true。

(7)内置输出流对象out负责将服务器的某些信息或运行结果发送到客户端显示,buffer属性用来指定out设
置的缓冲区的大小或不使用缓冲区。
例如: <%@ page buffer= “24KB” %>
buffer属性的默认值是8KB 。
buffer属性可以取值"none",设置out不使用缓冲区。

(8)autoFlush属性:指定out的缓冲区被填满时,缓冲区是否自动刷新。
注: autoFlush属性的默认值是true。

(9)isThreadSafe属性:用来设置JSP页面是否可多线程访问。
注: isThreadSafe属性的默认值是true。


【例2-1】
A.jsp
<%@ page language="java" contentType="text/html;charset=GB2312" pageEncoding="GB2312" %>



我在学习page指令





B.jsp
<%@ page contentType="image/jpeg" %>
<%@ 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, widt

h, height);
Graphics2D g_2d=(Graphics2D)g;
Ellipse2D ellipse=new Ellipse2D. Double (40,80,100,40);
g_2d.setColor(Color.blue);
AffineTransform trans=new AffineTransform();
for(int i=1;i<=12;i++){
trans.rotate(30.0*Math.PI/180,90,100);
g_2d.setTransform(trans);
g_2d.draw(ellipse);
}
g.dispose();
OutputStream outClient= response.getOutputStream(); //获取指向客户端的输出流
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(outClient);
encoder.encode(image);
%>


include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件。其语法格式如下:
<%@ include file= "文件的URL " %>

注:如果该文件和当前JSP页面在同一Web服务目录中,那么“文件的URL”就是文件的名字;如果该文件在JSP页面所在的
Web服务目录的一个子目录中,比如fileDir子目录中,那么“文件的URL”就是“fileDir/文件的名字”。

注:静态插入,就是当前JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。

【例2-2】
example2_2.jsp
<%@ page contentType="text/html;charset=GB2312" %>



<%@ include file="Hello.txt" %>




上述example2_2.jsp等价于下面的JSP文件exm.jsp:
exm.jsp
<%@ page contentType="text/html;charset=GB2312" %>


祝贺中国成功举办青奥会






动作标记是一种特殊的标记,它影响JSP运行时的行为。

语法格式:



子标记


include动作标记告诉JSP页面动态包含一个文件。

注: include 动作标记是在JSP页面运行时才处理文件,被处理的文件在逻辑和语法上独立于当前JSP页面.

【例2-3】
example2_3.jsp
<%@ page contentType="text/html;charset=GB2312" %>



请看一幅图像:





time.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.util.Date" %>



现在的时间:
<% Date date=new Date();
out.println(date.toString());
%>




sun.jsp
<%@ page contentType="text/html;charset=GB2312" %>


太阳图片




param标记以“名字-值”的形式为其它标记提供附加信息。

语法格式:


注:include动作标记所要加载的JSP文件可以使用Tomcat服务器

提供的request内置对象获取param标记中name属性所提供的值。

【例2-4】
example2_4.jsp
<%@ page contentType="text/html;charset=GB2312" %>


加载一个JSP文件,该文件负责计算连续整数之和:






computer.jsp
<%@ page contentType="text/html;charset=GB2312" %>


<% String str=request.getParameter("item"); //获取param标记中name属性的值
int n=Integer.parseInt(str);
int sum=0;
for(int i=1;i<=n;i++){
sum=sum+i;
}
out.println("
从1~"+n+"的连续和是:
"+sum);
%>




forward标记的作用是:重定向至其page属性指定的页面,该页面可以是一个HTML页面、JSP页面,甚至是一个程序段。

语法格式:



param子标记


【例2-5】
example2_5.jsp
<%@ page contentType="text/html;charset=GB2312" %>


<% out.println("根据不同的值转向不同的页面:
");
int n=(int)(Math.random()*100)+1;
if(n>50) {
%>


<%
}
else{
%>


<%
}
out.println("看不见这句话");
%>



num1.jsp
<%@ page contentType="text/html;charset=GB2312" %>

<% String str=request.getParameter("item"); //获取值param标记中name属性的值
int n=Integer.parseInt(str);
out.println("
不大于"+n+"的素数:
");
int i=0,j=0;
for(i=1;i<=n;i++){
for(j=2;jif(i%j==0)
break;
}
if(j==i)
out.println(i + ",");
}
%>



num2.jsp
<%@ page contentType="text/html;charset=GB2312" %>


<% String str=request.getParameter("item"); //获取值param标记中name属性的值
int n=Integer.parseInt(str);
out.println("
不大于"+n+"的奇数:
");
for(int i=1;i<=n;i++){
if(i%2!=0)
out.println(i + ",");
}
%>


相关文档