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的执行原理

  • 第一次访问
    • 原理图:
      在这里插入图片描述
    • 执行原理:
      • 1、将jsp文件翻译为java源文件,并将其命名为jsp文件名_jsp的java文件。
      • 2、将生成的java文件编译成.class字节码文件
      • 3、将字节码文件放入JVM进行运行
      • 4、通过和Servlet一样的service方法将数据响应到客户端。
  • 第二到n次访问
    • 原理图:
      在这里插入图片描述
    • 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脚本或者表达式来使用。
      • 主要用于定义全局变量或者是方法。
    • 实例:
      在这里插入图片描述
  • java脚本
    • 语法: <% java脚本; %>
    • 特点:java脚本的位置相当于在servlet中的service方法中的代码片段;
      • 可以定义局部变量。方法调用等代码片段。
    • 实例:
      在这里插入图片描述
  • java表达式
    • 语法: <%=输出内容 %>
    • 特点: 对于jsp中的java表达式主要用于输出到客户端显示的内容,相当于 out.print(内容); 调用方法括号中的参数。
    • 实例:
      在这里插入图片描述
    • 注意:表达式参数的末尾不能加分号;等号前后也不要加空格

JSP指令

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

EL表达式

(一)EL简介:EL(Expression Language) 是为了使JSP写起来更加简单。表达式语言的灵感来自于 ECMAScript 和 XPath 表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。
语法格式: ${输出内容的名字 }
EL 主要从四大作用域中来获取数据。
(二)EL中的运算符

  • 算术运算符:
    • 可以参与运算的主要整数字和浮点型
  • 逻辑运算:
    • boolean型可以参与逻辑运算
  • 条件运算符:
    • 条件运算:对于大于等于、小于等于、大于、小于这些运算符只能是数字类型,而其他的条件运算符可以是任何类型。
  • 空值的判断:
    在这里插入图片描述
  • 三目运算符:
    • 数字类型

EL 表达式支持的类型:

(三)EL表达式的使用

  • 1.el表达式来获取简单数据的值
    在这里插入图片描述

  • 2、对于javabean对象中数据获取:
    在这里插入图片描述

  • 3、数组中取值:
    在这里插入图片描述

  • 4、Map集合中取值:
    在这里插入图片描述

  • [ ]与.运算符
    EL 提供“.“和“[ ]“两种运算符来存取数据。
    当要存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“。例如:
    u s e r . M y − N a m e 应 当 改 为 { user. My-Name}应当改为 user.MyName{user[“My-Name”]}
    如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
    ${sessionScope.user[data]}中data 是一个变量

完善项目功能-查询

前端页面:
在这里插入图片描述

反射

概念:在程序运行过程中,通过类的字节码对象,可以获取该类的所有信息,通过字节码对象可以创建该类的对象,动态的调用类的方法和属性,这种动态的获取类的信息和调用方法的机制,称为java的反射机制。

作用:是框架的灵魂,主要用于在java运行时动态的创建对象和调用方法等。

类的字节码对象(类对象)

  • 1、方法1》 Class<?> cla = Class.forName(“类的全类名”);
    在这里插入图片描述
  • 2、通过的类的通用属性class来获取类的类对象:
    Class<? extends 类名> clas = 类名.class;
    在这里插入图片描述
  • 3、通过对象提供的通用方法getClass() 来创建类对象: Class<对象的类名> cla = 对象.getClass();
    在这里插入图片描述
  • 说明:三种方法获取同一个类的类对象,最后都指向同一个类的字节码文件创建的对象。即一个类只有一个类对象。
    在这里插入图片描述

反射获取类的属性:

  • 获取单个public修饰的属性的方法: Field filed =类对象.getField(“方法名”);
    • 实例:
      在这里插入图片描述
  • 获取所有public修饰的属性: Field[] fields = 类对象.getFields();
  • 非public修饰的属性的获取: Field filed = 类对象.getDeclaredField(“属性名”)
    • 实例:
      在这里插入图片描述

反射来操作类中的方法:

  • public修饰的方法的操作
    • 实例:
      在这里插入图片描述
  • 非public修饰的方法的操作:
    • 实例:
      在这里插入图片描述

使用反射改造项目多方法请求

步骤

  • 1、获取接收请求servlet的类的类对象
  • 2、通过反射获取请求进入servlet中需要执行的方法,通过请求中先获取要执行方法的名字
  • 3、通过反射来调用方法

BaseServlet的创建:
在这里插入图片描述
UserServlet的创建:
在这里插入图片描述

完善项目功能-删除

步骤:

  • 1、在主页面通过a标签设置删除的入口
  • 2、点击删除实现删除的请求时,携带删除用户的编号。
  • 3、进入Servlet实现删除,删除继续跳转到主页面。
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值