jsp页面元素:注释、声明、脚本、表达式、指令、静态内容(这是什么?静态页面部分?)
jsp指令
设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。一般都是在页面开头:<%@ %>
page指令:页面顶端部分,可以有多个
include指令:包含一个外部文件并解析其中的jsp语句(大概可以理解为当前页面中的一个小页面)
taglib指令:自定义标签?好像都是引入jstl标签
page指令
Page 和属性之间有空格。
一般新建项目后,这里就修改一下编码部分就可以了,其他不用管。如果用到了什么功能,可能还需要import什么。
默认的编码是英文的,不能写中文。
通常都是用utf-8. contenType如果不设置charset,就使用pageEncoding的值。
Eclipse里默认的代码比myeclipse里的多一些。
include指令:
例子:
<%@include file = "date.jsp"%>
date.jsp是获取系统时间并打印的。
运行结果:
“2014年10月23日”是date.jsp页面的返回值。
include指令的功能就是当前页面里也显示了被包含页面的内容。
taglib指令
jsp动作
JSP动作元素在请求处理阶段起作用。JSP动作元素是用XML语法写成的。
利用JSP动作可以动态地插入文件(include动作)、重用JavaBean组件( useBeans、setProperty、getproperty这三个动作和使用javabean有关)、把用户重定向到另外的页面(forward动作)、为Java插件生成HTML代码(这个不知道)。
语法:
<jsp:动作名 动作属性="value" 可能还有动作内容 />
include动作
语法:
<jsp:include page="相对 URL 地址" flush="true|false" />
page:要包含的页面
flush:被包含页面是否从缓冲区读取|官方说法是“定义在包含资源前是否刷新缓存区”。(flush的功能是刷新缓冲区并打印出来,所以如果刷新,就是从缓冲区读取,不刷新,就不是从缓冲区读取?从其他地方读取?)
例子:
<jsp:include page="date.jsp" flush="flase"/>
执行结果:
看起来和include指令的结果看起来并没有区别。
指令包含的是代码,动作包含的是结果。
不过对于我们,有什么区别吗?毕竟看起来么区别,至于速度,现在的电脑性能,一般也感觉不出来吧?
<jsp:forward> 动作
jsp:forward动作把请求转到另外的页面。
语法格式如下所示:
<jsp:forward page="相对 URL 地址" />
这个功能等同于请求转发:
request.getRequestDispatcher(url).forward(request,response))
(这里的相对url,是指在项目里jsp或者其他文件的相对路径?这么说的话绝对路径反倒不行?因为你项目部署或者其他,文件位置肯定要变,但是项目之间的结构不变,使用相对路径不变?)
<jsp:param>动作
<jsp:param name ="参数名" value="参数值">
经常作为<jsp:forward>的子标签。
例子:
这里可以添加表单里没有的属性,也可以修改表单里属性的值。
注意这里的格式:
<jsp:forward page="url">
子标签
</jsp:forward>
动作的写法是有反斜杠,<.../>.有子标签时前面没有写反斜杠,所以最后加上,也就是正常的HTML标签有头有尾的格式。
所以所有的标签其实都是要有开头有结尾,只是写法不同,比如指令<%@ %>;这个“%>”就是结尾。比如动作里的<jsp:动作 />;还有其他的
<html>
网页内容
</html>
这样的格式。
还有就是自闭和的,如<br>换行。
有jsp的标签,有HTML的标签,但是都是要有闭合。