jsp指令标记与动作标记

jsp指令标记与动作标记

  jsp指令标记

page指令

格式:<%@page 属性1=”属性1的值”%>

          <%@page 属性2=”属性2的值”%>

           …

或者

          <%@page 属性1=”属性1的值” 属性2=”属性2的值” 属性3=”属性3的值”…%>

  page指令标记用来定义整个jsp页面的一些属性和这些属性的值,可以用一个page指令指定多个属性的值,也可以用多个page指令分别为每个属性指定值。

1属性contentType

   jsp页面使用page指令标记只能为contentType属性指定一个值,用来确定响应的MIME类型(设定某种文件所对应的一种应用程序来打开的方式类型)

当用户请求一个jsp页面时,服务器会告诉浏览器使用contentType属性指定的MIME类型来解释执行所接收到的服务器为之响应的信息。

例如,浏览器使用Word应用程序打开用户请求时,应设置为

<%page contentType=”application/msword”;charset=”GBK”%>

jsp指令标记与动作标记

2属性import

  jsp页面使用page指令标记可为import属性指定多个值,import属性的作用是为jsp页面引入包中的类。

3属性language

  用来指定jsp页面使用脚本语言,目前只能取值java

4属性pageEncoding

  contenType中的charset是指定服务器发送给客户浏览器时所见到的网页内容编码,pageEncoding是指jsp文件自身储存时所用的编码。

  在jsp规范中,如果pageEncoding属性存在,那么jsp页面的字符编码方式由pageEncoding决定,否则就由contenType属性中的charset决定,若果都不存在,默认为ISO-8859-1

浏览器启动本地PowerPoint应用程序打开该页面

<%@ page language="java" contentType="application/vnd.ms-poewrpoint;  charset=GBK" pageEncoding="GBK"  import="java.util.*" import="java.io.*"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><title>Insert title here</title></head><body>用PowerPoint打开</body></html>

include指令

格式

<%@include file =”文件的URL”%>

  一个网站中多个jsp页面有时需要显示同样的信息,比如该网站的logo或导航条,为了便于网站程序的维护,通常在这些jsp页面中的适当位置嵌入一个相同的文件。

  include指令标记的作用就是将jsp文件,HTML网页文件或其他文本文件静态嵌入到当前jsp网页中

  所谓静态嵌入就是“先包含后处理”,在编译阶段完成对文件的嵌入。也就是先将当前jsp页面与要嵌入的文件合并一个新的jsp页面,然后再由jsp引擎将新页面转化为java文件处理并运行。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>静态嵌入之前<br><%@include file="example3_5_1.jsp" %><br>静态嵌入之后</body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><font color="red" size=4>嵌入文件</font></body></html>

效果图

jsp指令标记与动作标记

注意:在使用include标记时,需要注意的是嵌入文件后必须保证新合成的jsp页面符合jsp语法规则,例如两个页面的page指令就不能指定为不同的contentType值

                  jsp动作标记

include动作标记

格式:<jsp:include page=”文件的URL”/>

<jsp:include page=”文件的URL”>

子标记

<jsp:include/>

当动作标记include不需要子标记时,使用第一种形式

  动作标记include的作用是将jsp文件,HTML网页文件或其他文本文件动态嵌入到当前jsp文件中。所谓动态嵌入就是“先处理后包含”,在运行阶段完成对文件的嵌入,即在将jsp页面转译成Java文件时,并不合并两个页面,而是在java文件字解码文件被加载并执行时才去处理include动作标记中引入的文件,与静态方式相比,动态嵌入执行速度稍慢,但是灵活性较高。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>example3_6.jsp</title></head><body> 动态嵌入example3_6_1.jsp之前 <br> <jsp:include page="example3_6_1.jsp" /> <br> 动态嵌入example3_6_1.jsp之后</body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>example3_6_1.jsp</title></head><body> <font color="red" size=4>example3_6_1.jsp文件的内容</font></body></html>

这两个文件的contentType属性值可以不同

forward动作标记

格式<jsp:forward page=”文件的URL”/>

或<jsp:forward page=”文件的URL”>

子标记

</jsp:forward>

  从该标记出现处停止当前jsp页面的继续执行,从而转向执行forward动作标记中page属性指定的jsp页面。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>example3_7.jsp</title></head><body> <% //产生1~10的随机数 long i = Math.round(Math.random()*10); if(i%2 == 0){ System.out.println("获得的整数是偶数,即将跳转到偶数页面evenNumbers.jsp。"); %> <%--跳转页面 --%> <jsp:forward page="evenNumbers.jsp"/> <% System.out.println("我是偶数尝试一下能看到我吗?"); }else{ System.out.println("获得的整数是奇数,即将跳转到奇数页面oddNumber.jsp。"); %> <jsp:forward page="oddNumber.jsp"/> <% System.out.println("我是奇数尝试一下能看到我吗?"); }  %></body></html>
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <html><head><title>evenNumbers.jsp</title></head><body> 我是偶数页。</body></html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title> oddNumber.jsp</title></head><body> 我是奇数页。</body></html>

不断刷新页面,页面内容将在奇数页与偶数页之间跳转。

param动作标记

  不能独立使用,但可以作为include,forward动作标记的子标记来使用。以名字-值对的形式为对应页面传递参数

<jsp:父标记 page=”接收页面的URL”>

   <jsp:param name=”参数名” value=”参数值”/>

</jsp:父标记>

  接收参数的页面可以使用内置对象request调用getParameter(“参数名”)方法获取动作标记param传递过来的参数值。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>example3_8.jsp</title></head><body> 加载computer.jsp页面计算矩形的面积<br><br> <jsp:include page="computer.jsp"> <%--传值--%> <jsp:param value="10" name="length"/>  <jsp:param value="6" name="width"/>  </jsp:include></body></html>
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%><html><head><title>computer.jsp</title></head><body> <% String m=request.getParameter("length"); String n=request.getParameter("width"); //string转换为double double a=Double.parseDouble(m); double b=Double.parseDouble(n); out.print("我是被加载的页面,负责计算矩形的面积"+"<br>"); out.print("给我传递的矩形的长度是:"+a+",宽度是:"+b+"<br>"); out.print("矩形的面积是:"+a*b); %></body></html>

jsp指令标记与动作标记


实践

  main.jsp用include动作标记加载first.jsp和second.jsp,first.jsp页面可以画出一个表格,second页面可以计算出两个正整数的最大公约数

运行时需在mian文件上点击

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%--动态嵌入 --%><jsp:include page="first.jsp"> <jsp:param name="r" value="5"/> <jsp:param name="c" value="6"/></jsp:include>
<jsp:include page="second.jsp"> <jsp:param name="firstnumber" value="16"/> <jsp:param name="secondnumber" value="6"/></jsp:include></body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%//获取值String r=request.getParameter("r");String c=request.getParameter("c");//将值转化为doubledouble a=Double.parseDouble(r);double b=Double.parseDouble(c);%><table border="1"><%for(int i=0;i<a;i++){ out.print("<tr>"); for(int j=0;j<b;j++){ out.print("<td></td>"); } out.print("</tr>");}%></table></body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><%!//辗转相除求最大公约数double gcd(double a,double b){ return b==0?a:gcd(b,a%b);}%><body><%double a=Double.parseDouble(request.getParameter("firstnumber"));double b=Double.parseDouble(request.getParameter("secondnumber"));out.print(a+"和"+b+"的最大公约数是"+gcd(a,b));%></body></html>

login页面输入用户名与密码信息,提交给validate进行用户验证

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Longin</title></head><body><table><%--设置表单与提交的网址URL --%><form action="validate.jsp"><tr><td>用户名:</td> <td><input type="text" name="Username"></td></tr>
<tr><td>密码:</td> <td><input type="password" name="psw"></td></tr>
<tr><td><input type="submit" value="Submit"></td></tr>
</form></table></body></html>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%//获取提交的信息String user=request.getParameter("Username");String pass=request.getParameter("psw");if(user.equals("xiongdi")&&pass.equals("123456")){%> <jsp:forward page="success.jsp"/> <%}else{ %> <jsp:forward page="login.jsp"/> <%} %></body></html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body>登入成功</body></html>

欢迎扫码关注我!

jsp指令标记与动作标记

来源:码农迪迪,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/87579

发表评论

电子邮件地址不会被公开。 必填项已用*标注

技术服务
技术服务
关注抖音
关注抖音
进群学习 侵权联系
返回顶部