目录
前言
本文小结jsp语法,内容包括jsp页面的基本结构,怎么声明变量和定义方法,Java程序片和表达式,jsp指令标记和动作标记
2.1 jsp页面的基本结构
- HTML标记和JavaScript标记
- jsp标记
- 变量和方法的声明
- Java程序片
- Java表达式
tips:下面还会简单讲解
2.2 声明变量和定义方法
- 声明变量
<%! 变量 %>
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor=yellow>
<%! int i=0;
%>
<% i++;
%>
</body></HTML>
该变量在整个jsp页面有效,与书写的位置无关
- 定义方法和类
<%! 方法和类 %>
<%@ page contentType = "text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor = #ffccff>
<%! double multi(double x,double y){ //定义方法
return x*y;
}
class Circle { //定义类
double r;
}
%>
</p></body></HTML>
注意::定义的方法可以在Java程序片中调用,该方法内声明的变量只在该方法内有效
2.3 Java程序片
<% java程序片 %>
用法:
- 操作jsp页面的成员变量
- 调用jsp页面的方法
- 操作局部变量
<%@ page contentType = "text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body>
<p>
<%! int count=0; //被用户共享的count。
synchronized void setCount() { //synchronized修饰的方法。
count++;
}
%>
<% setCount();
out.println("您是第"+count+"个访问本站的客户");
%>
</p></body></HTML>
注意:一个jsp页面的Java程序片会按期在页面中的顺序被执行,而且某个Java程序中的局部变量在其后继的所有Java程序片以及表达式都有效
2.4 Java表达式
<%= Java表达式 %>
<%@ page contentType = "text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor=pink>
<% int x=12,y=9;
%>
<p style="font-family:宋体;font-size:36">
计算表达式x+y+x%y,即<%= x %>+<%= y %>+<%= x %>%<%= y %>的值:
<%= x+y+x%y %>
<br>计算表达式x>y即<%= x %> > <%= y %>的值:
<%= x>y %>
</p></body></HTML>
运行结果:
注意:'<%='中间不能有空格
2.5 Jsp中的注释
- HTML注释
<!---注释内容--->
- jsp注释
<%---注释内容---%>
2.6 jsp指令标记
2.6.1 page指令标记
<%@ page 属性1="属性1的值"%>
<%@ page 属性2="属性2的值"%>
<%@ page 属性1="属性1的值"属性2="属性2的值"%>
- contentType属性
设置响应的MIME类型,例如"text/html",“application/msword”,"image/gif"等
<%@ page contentType="text/html"%>
- pageEncoding属性
设置编码格式
<%@ page pageEncoding="utf-8"%>
- language属性
<%@ page language="java"%>
- import属性
为jsp页面引入Java运行环境提供的包中的类,例如:
<%@ page import="java.io.*"%>
- session属性
设置是否需要使用内置的session对象
ps:还有一些属性没有讲,以后补充
2.6.2 include指令标记
在jsp页面整体嵌入一个文件
<%@ include file="文件的URL"%>
2.7 jsp动作标记
2.7.1 include动作标记
include动作标记语法格式:
<jsp: include page="文件的URL"/>
或
<jsp: include page="文件的URL">
param 子标记
</jsp:include>
2.7.2 param动作标记
<jsp:param name="参数"value="参数的值"/>
当标记与jsp:include标记一起使用时,可以将param标记中参数的值传递给include动作标记要加载的文件中
example.jsp
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor=cyan >
<% double a=6.12,b=7.08,c=9.22;
%>
<p style="font-family:宋体;font-size:36">
<br>加载triangle.jsp计算三边为<%=a%>,<%=b%>,<%=c%>的三角形面积.
<jsp:include page="myfile/triangle.jsp">
<jsp:param name="sideA" value="<%=a%>"/>
<jsp:param name="sideB" value="<%=b%>"/>
<jsp:param name="sideC" value="<%=c%>"/>
</jsp:include>
</p></body></HTML>
triangle.jsp
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<%! 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)) ;
String result = String.format("%.2f",area);//保留两位小数
return result;
}
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);
%>
<p style="font-family:黑体;font-size:36;color:blue">
<br><b>我是被加载的文件,负责计算三角形的面积<br>
给我传递的三边是:<%=sideA%>,<%=sideB%>,<%=sideC%></b>
<br><b><i>三角形的面积(保留2位小数):<%= getArea(a,b,c)%></i></b></i>
</p>
执行结果:
2.7.3 forward动作标记
语法格式:
<jsp: forward page="要跳转的页面"/>
<jsp: forward page="要跳转的页面">
param 子标记
</jsp:forward>
example2-12.jsp
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body>
<h1> 产生一个1-10之间的随机数
<% double i=(int)(Math.random()*10)+1;
if(i<=5) {
%> <jsp:forward page="example2_12_a.jsp" >
<jsp:param name="number" value="<%= i %>" />
</jsp:forward>
<% }
else {
%> <jsp:forward page="example2_12_b.jsp" >
<jsp:param name="number" value="<%= i %>" />
</jsp:forward>
<% }
%>
</body></HTML>
example2-12-a.jsp
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor=cyan>
<p style="font-family:宋体;font-size:36">
<% String s=request.getParameter("number");
out.println("传递过来的值是"+s);
%>
<br><img src=image/pic_a.jpg width=300 height=280/>
</p></body></HTML>
example2-12-b.jsp
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor=yellow>
<p style="font-family:宋体;font-size:36">
<% String s=request.getParameter("number");
out.println("传递过来的值是"+s);
%>
<br><img src=image/pic_b.jpg width=300 height=280 />
</p></body></HTML>
运行结果:
2.7.4 useBean动作标记
第五章再写,这次就到这里了
总结
以上就是今天要讲的内容,本文仅仅简单介绍了JSP页面的结构、Java程序片以及表达式,其中最重要的还是后面的指令标记和动作标记。