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的标签,但是都是要有闭合。