当前位置: 首页 > article >正文

JavaWeb ( 六 ) JSP

2.4.JSP

JSP (Java Server Pages) : 一种在服务器端生成动态页面的技术,本质上就是Servlet。将HTML代码嵌入到Java代码中, 通过Java逻辑控制HTML代码的结构从而生成页面。在MVC中通常担任视图层(view),负责信息的展示与收集。

2.4.1.生命周期

转换 Jsp源文件转换成servlet源文件
编译 Java文件编译成类(class)文件
装载 将类文件加载到内存中
创建 创建一个servlet类的实例对象
初始化 调用_ jspInit()方法,最终调用servlet的init()
服务 调用_ jspService()方法,最终调用servlet的service()
销毁 调用_ jspDestroy()方法,最终调用servlet的destroy()

2.4.2.九种内置对象

JSP(Java Server Pages)九种内置对象包括:

名称所属类描述作用域
pagejava.lang.Object类型指向页面自身的方式page(页面执行期)
requestjavax.servlet.ServletRequest的子类型此对象封装了由WEB浏览器或其它客户端生成地HTTP请求的细节(参数,属性,头标和数据)。request(用户请求期)
responsejavax.servlet.ServletResponse的子类型此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。page(页面执行期)
sessionjavax.servlet.http.HttpSession类型主要用于跟踪对话session(会话期)
applicationjavax.servlet.ServletContext类型servlet的环境通过调用getServletConfig().getContext()方法获得。它提供了关于服务器版本,应用级初始化参数和应用内资源绝对路径,注册信息的方式application(整个程序运行期)
pageContextjavax.servlet.jsp.PageContext(抽象类)类型此对象提供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法page(页面执行期)
configjavax.servlet.ServletConfig提供一些配置信息,常用的方法有getInitParameter和getInitParameterNames,以获得Servlet初始化时的参数page(页面执行期)
outjavax.servlet.jsp.JspWriter类型代表输出流的对象。page(页面执行期)
exceptionjavax.lang.Throwable只有在page指令中具有属性isErrorPage="true"时才有效page(页面执行期)

2.4.3.三种伪指令

用来传送JSP容器中的一种信息,通常写在<%@...%>之间

1.page指令  定义当前页面的属性

 <%@page  language="java" import="java.util.*"  pageEncoding="utf-8" %>

2.include指令 向当前文件插入一个静态文件的内容

 <%@include file="../../../common/include.jsp"  %>  

​ 这里的 …/ 使用的是相对路径

3.taglib指令  引入定制的标签库

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"   %>

2.4.4.动作

动作(行为):创建,修改,或使用对象。遵守严格的XML语法。

<jsp:include> 引入一个文件
<jsp:forward> 转到新的页面
<jsp:useBean> 实例化一个JavaBean
<jsp:setProperty> 设置JavaBean的属性
<jsp:getProperty> 得到JavaBean的属性
<jsp:plugin> 插件

2.4.4.1.<jsp:include> 动作与 include指令比较

  1. 语法格式 :

    指令

<%@ include file=”relativeURI”%>

​ 动作

<jsp:include page=”relativeURI” flush=”true” />
  1. 执行时间

    ​ 指令是在翻译阶段执行
    ​ 动作是在请求处理阶段执行

  2. 引入内容

    ​ 指令 引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
    ​ 动作 引入执行页面或servlet所生成的应答文本.

2.4.5.整体结构

脚本 <%... %> : 用于编写java的逻辑代码, 如:for 循环,if 判断 ,连接调用javaBean,传接值
表达式<%=… %> : 将= 等号后面的内容显示在页面上, 如:展示的内容

在这里插入图片描述

2.4.6.与Servlet比较

  1. JSP就是Servlet :
    -Jsp是Servlet的简化,更方便的生成及维护HTML页面
    -Jsp页面要先转化成Servlet类,再编译执行

  2. 都可以服务器端动态的生成页面
    -Servlet是一行一行的生成
    -JSP参考ASP,将JSP元素嵌到HTML代码中

  3. 侧重各有不同
    -Servlet侧重于重程序逻辑的模块开发
    -JSP侧重于重页面输出的模块开发


http://www.kler.cn/news/18268.html

相关文章:

  • C# 判断文件/目录是否存在
  • AWS VPC 配置指南:快速创建和设置你的虚拟私有云
  • 【C++】map和set的介绍+使用
  • EC6110-Hi3798MV310-当贝纯净桌面-卡刷强刷固件包
  • 在 node.js 里面写 MySQL 增删改查语句
  • helm部署nacos
  • 线性结构-数组
  • nestjs笔记
  • 打动人心的故事 | 如何利用文案在Facebook上塑造品牌形象
  • 面试整理 - 二叉排序树 c语言 及java 例子
  • 【在homeassistant的ONVIF中配置TP-Link】
  • SpringBoot启用web模拟测试(一)
  • 固态继电器的优点
  • 增强型PID-自适应-前馈-神经网络控制研究(Matlab代码实现)
  • 网页端操作提示「msg.js」库简介
  • linux实现CP指令
  • LeetCode 2432. 处理用时最长的那个任务的员工
  • 从爆火的“哇呀挖”,思考我软件开发的人生意义何在?
  • JDK17新特性之--JDK9到JDK17 String 新增的新方法
  • 53.MDL、NCNN和 TFLite比较
  • C++Primer 第一章
  • 将数据从 Oracle 加载到 Azure 的框架
  • 68元工业级双核A7,全新T113核心板震撼上市!
  • CSA发布|《洞察2022 云上数据安全与重要事项 》
  • spring-web HandlerAdapter 源码分析
  • 记录每日LeetCode 2432.处理用时最长的那个任务的员工 Java实现
  • Feign组件的使用及开发中使用方式
  • ZC706P试验PL_DDR3内存条的步骤方法
  • 使用SaleSmartly自动化流程的 5 个原因
  • 网络基础学习:什么是网络与网络发展史