-
JavaWeb学习----JSP脚本元素、指令元素、动作元素
- 1、声明(declaration)
- 2、表达式(express)
- 3、脚本(Scriplets)
“声明”用的少,一般是用“表达式”和“脚本”。
一、声明
声明用的不是很多,但是想要在一个jsp页面上用到全局变量和全局java函数还是要用到声明这种脚本元素
基本语法是<%! 语句块 %>
比如使用jsp页面打印五层的三角形
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!-- 设置字符集,不然无法在页面显示中文 -->
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp1.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>打印三角形</h1>
<%! int i;
int j;
int num = 5;
int k;
String shape = "*";
%>
<%
for(i=1;i<=5;i++) /*外层循环控制每行打印*/
{
for(j=1;j<=5-i;j++) /*控制每行符号输出的位置*/
{System.out.print(" ");
out.print(" ");}
for(k=1;k<=2*i-1;k++)
/*控制每行输出符号的个数*/
{
System.out.print("*");
out.print("*");
}
out.print("<br>");
System.out.println("\n"); /*一行符号输出完后换行*/
}
%>
</body>
</html>
二、表达式
语法:<%= 语句>
<h1>打印当前时间</h1>
<%= new Date()%>
这里比较要注意的一点是<%= > %和=之间不能有空格
三、脚本
语法:java语法
<% 语句 %>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!-- 设置字符集,不然无法在页面显示中文 -->
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp1.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%!
boolean juge(int num)
{
for(int i=2;i<=num/2;i++)
{
if(num%i==0)
return false;
}
return true;
}
%>
<%
for(int i=2;i<100;i++)
{
if(juge(i)==true)
{
%>
<%= i+"<br>" %>
<%
}
}
%>
</body>
</html>
上述代码是用jsp打印1-100之间素数的代码。嵌入的脚本是java代码进行逻辑运算,结果展示在页面上
定义脚本的页面在当前整个页面有效,但是不会被其他进程共享,用户对改变变量的作用不会影响到其他用户,当变量所在页面关闭时该变量随之销毁