《深入理解 JSP:从基础到进阶》

1. 什么是JSP

JSP(Java Server Pages)简介

JSP,全名为 Java Server Pages(Java 服务器页面),是一种用于创建动态网页的技术。它由 Sun Microsystems(现为 Oracle)开发,并且支持多家公司参与。JSP 可以看作是对 Servlet 技术的一个简化版本,类似于 ASP 技术。它允许在普通的 HTML 页面中插入 Java 代码和特定的 JSP 标签,从而生成动态的网页。JSP 文件的扩展名是  .jsp 。

使用 JSP 开发的网页可以在不同操作系统上运行,包括 Linux 和其他平台。

JSP 的特点包括:

  • 网页逻辑与设计分离:将网页的显示内容和逻辑处理分开,方便管理和更新。
  • 支持组件化设计:允许重用网页组件,使开发过程更快速和高效。

总结一下:

HTML:用于创建静态网页,内容固定不变。

JSP:用于创建动态网页,内容可以根据数据变化而更新,支持嵌入 Java 代码和 HTML 代码。

2. JSP为什么会出现

1.servlet展示信息的不方便,引入了JSP

2.JSP本质上也是一个servlet!!!!!!

3.JSP就是在HTML页面中嵌入了java代码。

3.JSP中如何嵌套Java代码

答案:小脚本(<% java代码%>)

声明标签 表达式标签

 

<%!变量或者方法声明%>

<%= 表达式%> 在页面上显示的效果

程序代码标签 <%java代码%> 页面上动态展示内容

page指令:

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

<body>
<%! int i=10;%><!--成员变量-->

<%! public void show(){}%> <!--成员方法-->

<%=i%> <!--输出变量值-->
</body>

如果把一个数据存在request域中,取值操作如下: jsp中的注释

<!-- html注释内容,查看源码时能看到 -->
<%-- jsp注释,查看页面源码时看不到 --%>

4.JSP的原理

当你在浏览器中访问一个 JSP 页面(比如 http://localhost:8080/xxx/xxx.jsp),服务器会按照以下步骤处理这个请求:

  1. 找到 JSP 文件:服务器发现文件后缀是 .jsp,它会找到这个 JSP 文件,比如 index.jsp

  2. 转换成 Java 代码:服务器会把 index.jsp 转换成一个 Java 文件,叫做 index_jsp.java。这个过程就像是把 JSP 中的 HTML 代码和 Java 代码转换成 Java 程序代码。

  3. 编译 Java 文件:接着,服务器会编译 index_jsp.java 文件,生成一个 .class 文件,叫做 index_jsp.class。这个文件是 Java 虚拟机可以执行的代码。

  4. 执行并生成响应:服务器加载并运行 index_jsp.class 文件。这个文件本质上是一个 Servlet,它会处理请求并生成响应。响应的内容就是 JSP 文件中的 HTML 代码。

  5. 返回浏览器:最后,服务器把生成的 HTML 代码发送回浏览器,你在浏览器中看到的就是这些 HTML 内容。

简而言之,JSP 文件被转换成 Java 代码,然后编译和执行,最终输出 HTML 内容给浏览器。

5. JSP的内置对象

JSP中一共预先定义了9个这样的对象,分别为:requestresponsesessionapplicationout pagecontextconfigpageexception

当然可以!JSP 中有九个内置对象,它们提供了在 JSP 页面中常用的功能。以下是它们的简单介绍:

1. request
   - 类型:`HttpServletRequest`
   - 用途:获取客户端请求的参数、头信息、请求方法等。

2. response
   - 类型:`HttpServletResponse`
   - 用途:向客户端发送响应,包括设置响应头、内容类型和写入响应体。

3. out:
   - 类型:`JspWriter`
   - 用途:用于向客户端输出数据。你可以用它来写入 HTML 内容。

4. session:
   - 类型:`HttpSession`
   - 用途:存储用户的会话信息,例如用户登录状态和用户数据。

5. application:
   - 类型:`ServletContext`
   - 用途:用于获取 Web 应用的环境信息和共享数据,可以在不同的 JSP 页面和 Servlets 之间共享数据。

6. config:
   - 类型:`ServletConfig`
   - 用途:获取 Servlet 的配置信息,通常用于获取初始化参数。

7. pageContext:
   - 类型:`PageContext`
   - 用途:提供对 JSP 页面上下文的访问,包括所有的内置对象和其他页面相关信息。

8. page:
   - 类型:`Object`
   - 用途:指代当前的 JSP 页面对象,可以用来访问当前 JSP 页面的属性和方法。

9. exception
(只有在 `errorPage` 指定的 JSP 页面中可用):
   - 类型:`Throwable`
   - 用途:在错误页面中用于获取错误信息和异常对象。

这些对象使得在 JSP 页面中处理请求、生成响应、管理会话等变得非常方便。

6.JSP的指令

它们是用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。

语法格式如下:

<%@ directive attribute="value" %>

directive:指令名称 attribute 属性名 value:属性值

指令名称

描述

page

定义网页依赖属性,比如脚本语言、error页面、缓存需求等等

include

包含其他文件

taglib

引入标签库的定义

7. EL表达式

1)什么Expression Language 表达式语言

最初定义于JSTL1.0部分

在JSP2.0中,ELJSTL中剥离出来,放置在JSP规范中,称为JSP2.0规范的一部分 JSP中使用EL表达式,可以简化对象和变量的访问是EL表达式

2EL表达式语法

语法格式:${需要展示信息的名字} 注意:

当表达式没有指定变量或者对象的范围时,

那么容器会依次从pageContext—>request—>session—>application中查找该变量或对象,我们可以 通过隐含对象获得指定作用域的值:

pageScope对象,用于获取当前页面的属性值 requestScope对象,用于获取请求范围的属性值 sessionScope对象,用于获取会话范围的属性值 applicationScope对象,用于获取程序范围的属性值 语法:${requestScope.key}

3EL中基础操作符

术语

定义

算术型

+ - * /(div) %(mod) 余数

逻辑型

and&&or||!not

关系型

==eq!=ne、、gt<=le>=ge。可以与其他值进行比较,或与布尔型、字 符串型、整型或浮点型文字进行比较。

Empty

Empty操作符是一个前缀操作符用于判断一个值是否为null或者为emptyString str =
“”; ${empty str} 返回值为true;

条件型

A ?B :C。根据 A 赋值的结果来赋值 B C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值