第三章作业答案
第三章作业
1、JSP页面使用page指令可以为属性contentType指定几
个值?
*JSP页面使用page指令只能为contentType指定一个值,以此确定响应的MIME类型。
2、JSP页面使用page指令可以为import属性指定多个值
吗?
*可以指定多个值,例如”https://www.360docs.net/doc/928826323.html,ng.*”,”javax.servlet.*”,”javax.servlet.jsp.*”,”javax.servlet.htttp”
3、include指令标记和Include动作标记有何不同?
*在处理方式和处理时间上是不同的。Include指令标记用嵌入方式处理文件,在编译阶段就处理所需文件,优点是页面的执行速度快;而include动作标记不使用嵌入方式来处理所需文件,在JSP页面运行时才处理文件,也就是说,当Tomcat服务器把JSP 页面转译成Java文件时,不把JSP页面中include动作标记所包含的文件与原JSP页面合并一个新的JSP页面,而是告诉Java解释器,这个文件在JSP运行时(Java文件的字节码文件被加载执行)才被处理,其优点是能更灵活地处理所需文件(见后面的param 标记),缺点是执行速度要慢一些。
4、param动作标记经常作为哪些标记的子标记,有何不同?*param动作标记可以作为include、forward动作标记的子标记来使用,该标记以“名字-值”对的形式为这些动作标记提供附加信息。
5、Tag文件应当存放在怎样的目录中?
*存放到“Web服务目录\WEB-INF\tags”中
6、用户可以使用浏览器直接访问一个Tag文件吗?
*用户不能通过浏览器直接请求一个Tag文件
7、JSP 页面怎样调用一个Tag文件?
*JSP页面可以使用带前缀的Tag标记调用相应的Tag文件
8、编写两个Tag文件Rect.tag和Circle.tag。Rect.tag负责计算矩形的面积,Circle.tag负责计算圆的面积。编写一个JSP 页面,该JSP页面使用Tag标记调用Rect.tag和Circle.tag。调用Rect.tag时,向其传递矩形的两个边的长度,调用Circle.tag 时,向其传递圆的半径。
*JSP:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="Rect"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="Circle"%>
以下是矩形的面积:
以下是圆的面积:
*Rect.tag
<%@ tag language="java" pageEncoding="utf-8"%>
<%@ attribute name="length" required="true" %>
<%@ attribute name="width" required="true" %>
<%! public String getArea(double a,double b){
double area=a*b;
return "
矩形的面积为:"+area;
}
%>
<% out.println("
JSP页面传递过来的两条边:"+length+","+width);
double a=Double.parseDouble(length);
double b=Double.parseDouble(width);
out.println(getArea(a,b));
%>
*Circle.tag
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ attribute name="radius" required="true" %>
<%! public String getArea(double a){
double area=3.1415926*a*a;
return "
圆的面积为:"+area;
}
%>
<% out.println("
JSP页面传递过来的半径:"+radius);
double a=Double.parseDouble(radius);
out.println(getArea(a));
%>
运行结果: