JSP语法笔记

JSP语法

  • jsp简单介绍
    • jsp页面工作原理:
  • JSP页面的基本构成
    • 注释
    • Java程序片
    • 指令标记
      • 1 page指令标记
      • 2 include指令标记
    • 动作标记
      • 1 include动作标记
      • 2 forward动作标记
      • 3 param动作标记

jsp简单介绍

JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

jsp页面工作原理:

JSP语法笔记_第1张图片

  1. 当一个JSP文件第一次被请求的时候, JSP引擎(本身也是一个Servlet) 首先会把这个JSP文件转换成一个 Java源文件 。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的 .class文件 并将该.class文件加载到内存中。
  2. 其次创建一个 该Servlet的实例,并执行该实例的 jsp Init() 方法(jsp Init()方法在Servlet的生命周期中只被执行一次)。
  3. 然后创建并启动一个新的线程,新线程调用实例的 jspService() 方法。(对于每一个请求,JSP引擎会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建 多个线程 ,每个客户端请求对应一个线程)。
  4. 浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成 HttpServletRequestHttpServletResponse 对象,同时调用对应的Servlet实例中的 jsp Service() 方法,把这两个对象作为参数传递到 jsp Service() 方法中。
  5. jsp Service() 方法执行后会将HTML内容返回给客户端。

JSP页面的基本构成

一个页面JSP通常由以下4种基本元素组成:

  • 普通的HTML标记
  • JSP注释
  • Java脚本元素,包括声明,Java程序片和Java表达式
  • Jsp标记,如指令标记,动作标记和自定义标记等

注释

  1. html注释

  1. Jsp注释
<%-- Jsp注释 --%>

Java程序片

 3. <%! 变量或方法定义  %>//这种标记之间可以声明JSP的成员变量和方法,
					//在整个JSP页面内有效。它们可以是java语言允许的任何数据类型
					
 4. <% Java代码  %>//在没有 ! 的标记里面声明局部变量

 5. <%=java表达式   %>//这个Java表达式可以有算数,逻辑或者条件表达式。但是要注意
		// 1. 不可以在<%= 和 %>之间插入语句,就是说输入的内容末尾不能以分号结束
		// 2. <%=  是一个完整的符号,百分号%和等于号=之间不能有空格

指令标记

1 page指令标记

<%@ page language="java"  contentType="text/html;charset=UTF-8"
		 pageEncoding="UTF-8"%>
<%@ page import="java.io.*"%>

page指令标记通常定义的属性有以下四种:

  • 1 属性 import:JSP页面使用page指令标记可以为import属性指定多个值来引入JSP页面中需要的包中的类 。
  • 2 属性language:用来指定 JSP页面使用的脚本语言,目前该值只能取java
  • 3 属性pageEncoding:contentType中的charset是指网页内容从服务器发送给客户浏览器时用户所见到内容的编码格式。pageEncoding是指jsp文件自身存储时所用的编码
  • 4 属性contentType:Jsp页面使用page指令标记只能为contentType属性指定 一个值,用来确定响应的MIME类型(MIME类型就是设定某种文件用相应的一种应用程序打开的方式类型)。当用户请求一个 JSP页面时,服务器会告诉客户的浏览器使用contentType属性指定的MIME类型来解释执行所接收到的服务器为之响应信息。

常见的MIME类型有:
text/html(HTML解析器,所谓的网页形式)
text/plain(普通文本)
application/pdf(PDF文档)
application/msword(Word应用程序)
application/vnd.ms-powerpoint(PowerPoint应用程序)
image/jpeg(jpeg图形)
image/png(PNG图像)
image/gif(GIF图形)

2 include指令标记

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

include指令标记的作用就是把JSP文件HTML网页文件或者其他文本文件静态嵌入到当前JSP网页中。

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

所以这里需要注意的就是嵌入文件page指令的 contentType属性的值要和当前JSP页面的contentType属性的值 要一致 ,不然合并后的新JSP页面会有语法错误。

动作标记

1 include动作标记

或者
子标记

include指令标记的作用就是把JSP文件HTML网页文件或者其他文本文件动态嵌入到当前JSP网页中。

所谓动态嵌入就是“先处理后包含”,在运行阶段完成对文件嵌入,
就是在把JSP页面转化成Java文件的时候,不合并两个页面。而是在java文件的字节码文件被加载执行,才去处理include动作标记中引入的文件。与静态嵌入方式相比,动态嵌入执行速度稍微慢点,但是灵活性较高。

这里需要注意的就是嵌入文件page指令的 contentType属性的值要和当前JSP页面的contentType属性的值 可以不一致 ,当不一致的时候不会报语法错误。

2 forward动作标记

或者
子标记

forward动作标记实现页面的跳转。在这里区分一下接下来谈到的response对象的sendRedirect方法

  • forward为服务器端的跳转,浏览器的地址栏不变;
    sendRedirect为客户端的跳转,就是浏览器地址栏改变为新页面的URL。
  • 执行到forward标记出现处停止当前页面的继续执行,而转向标记中指定的页面;sendRedirect是所有的代码执行完毕之后再跳转。
  • 使用 forward跳转,request请求的信息能保留到下一个页面;
    使用sendRedirect不能保留request请求信息

3 param动作标记

动作标记param不能单独使用,但可以作为include,forward动作标记的子标记来使用


	
	

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

你可能感兴趣的:(JSP语法笔记)