jsp的讲解及使用

JSP基础

JSP入门

(一)JSP简介:

JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

  • 总结: jsp是使用java作为脚本语言的动态网页技术,jsp的本质是一个Servlet,但是jsp需要依赖tomcat服务器来动态的生成对应的html。

(二)创建JSP页面

  • jsp页面编码的改变:
    jsp的讲解及使用

(三)JSP的执行原理

  • 第一次访问
    • 原理图:
      jsp的讲解及使用
    • 执行原理:
      • 1、将jsp文件翻译为java源文件,并将其命名为jsp文件名_jsp的java文件。
      • 2、将生成的java文件编译成.class字节码文件
      • 3、将字节码文件放入JVM进行运行
      • 4、通过和Servlet一样的service方法将数据响应到客户端。
  • 第二到n次访问
    • 原理图:
      jsp的讲解及使用
    • 1、将翻译好的文件放入jvm进行运行
    • 2、将需要呈现的页面数据响应到客户端
  • 查看jsp编译后的文件的方式:
    • 1、找到部署项目的tomcat
    • 2、找到tomcat虚拟工作空间work,找到对应的项目。

(四)JSP和Servlet的联系与区别

  • 联系: servlet直接继承自HttpServlet,而jsp编译后的java文件也是一个servlet,也继承HttpServlet。
    • JSP的本质就是一个Servlet
  • 区别:
    • 1、JSP主要作为视图层负责数据的呈现,而Servlet主要负责控制层,负责数据的获取和页面的跳转关系。
    • 2、JSP中包含九大内置对象,而servlet中没有内置对象的概念。
    • 3、jsp在创建时,是以html作为模板的,可以直接包含前端内容,但是运行时需要依赖tomcat服务器翻译成java文件,而Servlet就是java类。
    • 4、jsp是一个简易的servlet,是动态页面技术,而servlet是一个完整的servlet类,包含servlet所有的功能。

JSP页面的组成

前端部分: html、css、js

Java代码

  • java声明
    • 语法: <%! 声明的java代码 %>
    • 特点:jsp中java的声明存在于生成java文件的service方法的外面,类的成员变量的位置,不能直接使用,需要依赖java脚本或者表达式来使用。
      • 主要用于定义全局变量或者是方法。
    • 实例:
      jsp的讲解及使用
  • java脚本
    • 语法: <% java脚本; %>
    • 特点:java脚本的位置相当于在servlet中的service方法中的代码片段;
      • 可以定义局部变量。方法调用等代码片段。
    • 实例:
      jsp的讲解及使用
  • java表达式
    • 语法: <%=输出内容 %>
    • 特点: 对于jsp中的java表达式主要用于输出到客户端显示的内容,相当于 out.print(内容); 调用方法括号中的参数。
    • 实例:
      jsp的讲解及使用
    • 注意:表达式参数的末尾不能加分号;等号前后也不要加空格

JSP指令

  • JSP页面有三大指令,每个指令负责不同页面的信息,主要包括Page指令、include指令、taglib指令。
  • 语法:<%@ 指令名称 属性名1=“属性值1” 属性名2=“属性值2” %>
  • Page
    • 作用: 主要用于设置jsp页面的信息,包括页面编码,支持的脚本语言、导包等等。
    • 语法: <%@ page import=“包名” errorPage=“错误页面地址” %>
    • 实例:
      jsp的讲解及使用
    • 常见page指令即作用:
      • import: 导包
      • contentType: 设置响应头响应数据MIME类型
      • pageEncoding: 设置当前jsp页面编码
      • errorPage:指定当前页面发生异常显示错误信息的页面
        • 实例:
          jsp的讲解及使用
      • isErroePaage: 设置当前jsp是否为错误,如果是true则可以接受错误信息,否则不接收错误信息。
        • 实例:
          jsp的讲解及使用
  • include
    • 用于将其他页面包含在一个jsp页面中,即将多个页面整合为一个页面,好处减少编码,提高页面重复部分的复用率。
    • 语法: <%@ include file=“包含的文件地址” %>
    • 实例:
      jsp的讲解及使用
    • 对于包含,是将多个页面使用include指令将多个页面整合在一起,然后在翻译成一个java文件。
  • taglib
    • 主要用于引入第三方标签库,如jstl
    • 语法: <%@ taglib uri=“引入标签的地址” prefix=“前缀” %>