JavaWeb期末速成 JSP

关键词:动态Web页面技术 生命周期 隐含变量 作用域对象 Java Beans MVC设计模式

动态Web页面技术

ASP(Active Server Page),活动服务器页面,是Microsoft公司推出的一种动态Web文档的技术。

PHP(PHP:Hypertext Preprocessor),超文本预处理器,它是一种HTML内嵌式的语言。

JSP(JavaServer Pages)Java服务器页面,它与PHP非常相似。


JSP语法

JSP(JavaServer Pages)是一种在HTML页面中嵌入JSP元素的动态Web页面 ,它的主要用来实现表示逻辑。

在JSP页面中可以包含多种JSP元素,当JSP页面被访问时,Web容器将JSP页面 转换成Servlet类执行后将结果发送给客户。

与其他的Web页面一样,JSP页面也有一个唯一的URL,客户可以通过它访问该页面。

JSP页面元素 简要说明 标签语法
声明 声明变量与定义方法 <%! Java 声明 %>
小脚本 执行业务逻辑的Java代码 <% Java 代码 %>
表达式 用于在JSP页面输出表达式的值 <%= 表达式 %>
指令 指定转换时向容器发出的指令 <%@ 指令 %>
动作 (标签) 向容器提供请求时的指令 <jsp: 标签名 />
EL表达式 JSP2.0引进的表达式语言 ${applicationScope.email}
注释 用于文档注释 <%-- 任何文本 --%>
JSP表达式。以"<%="开头,以"%>"结束的标签,它作为Java语言表达式的占位符。
今天的日期是:<%= date.toString() %>

表达式语言(Expression Language,EL)是JSP 2.0新增加的特性,它是一种可以在JSP页面中使用的简洁的数据访问语言。格式为:
${expression}

下面EL显示客户地址:
${pageContext.request.remoteAddr}


JSP页面生命周期

客户首次访问页面时,Web容器执行该JSP页面要经过6个阶段:

前三个阶段将JSP页面转换成一个Servlet类并装载和创建 该类实例

后三个阶段是初始化提供服务销毁阶段


JSP隐含变量

  • out
  • request
  • response
  • application
  • session
  • pageContext

作用域对象

作用域名 对应的对象 存在性和可访问性
应用作用域 application 在整个Web应用程序有效
会话作用域 session 在一个用户会话范围内有效
请求作用域 request 在用户的请求和转发的请求内有效
页面作用域 pageContext 只在当前的页面(转换单元) 内有效
属性存取方法:
  • void setAttribute(String name, Object value)方法
  • Object getAttribute(String name)方法

Java Beans

JavaBeans是用Java语言定义的类,是Java平台的组件技术,在Java Web开发中常用JavaBeans来存放数据

JavaBeans类非常简单,所以有时也称为POJO(Plain Old Java Object),普通的Java对象。在数据库应用中也叫实体类。

定义JavaBeans类,需要遵循有关约定:

JavaBeans应该是public类,且具有无参数的public构造方法。也可以定义带参数构造方法。

类的成员变量一般称为属性(property)。对每个属性访问权限一般定义为private。

(注意:属性名必须以小写字母开头)

每个属性通常定义两个public方法,一个是访问方法(getter),一个是修改方法(setter),使用它们访问和修改JavaBeans的属性值。


MVC设计模式

MVC基本概念

MVC(Model-View-Controller)是一种软件架构模式,将应用程序分为三个核心组件:

组件 说明
Model 处理业务逻辑和数据持久化,代表应用程序的数据和业务规则
View 用户界面层,负责数据的展示和用户交互
Controller 接收用户输入,协调Model和View之间的交互
MVC工作流程

User Controller Model View 发起HTTP请求 调用业务逻辑 返回处理结果 转发数据 渲染响应页面 User Controller Model View

相关推荐
liliangcsdn1 天前
结合prompt分析NodeRAG的build过程
java·服务器·人工智能·数据分析·知识图谱
黑色的山岗在沉睡1 天前
LeetCode 189. 轮转数组
java·算法·leetcode
会飞的小蛮猪1 天前
Jenkins运维之路(权限分配&忘记admin密码)
java·运维·经验分享·jenkins·prometheus
slim~1 天前
Java基础第9天总结(可变参数、Collections、斗地主)
java·开发语言
豆沙沙包?1 天前
2025年- H118-Lc86. 分隔链表(链表)--Java版
java·数据结构·链表
A尘埃1 天前
智能工单路由系统(Java)
java·开发语言·智能工单
失散131 天前
分布式专题——1.1 Redis单机、主从、哨兵、集群部署
java·数据库·redis·分布式·架构
刘一说1 天前
Linux调试命令速查:Java/微服务必备
java·linux·微服务
IT·陈寒1 天前
怎么这么多 StringUtils —— Apache、Spring、Hutool 全面对比
java·spring·apache