JavaWeb-JSP

简介

JSP全名为Java Server Pages,中文名叫java服务器页面。其根本是一个简化的Servlet

它是在传统的网页HTML文件,插入Java程序段(Scriptlet)JSP标记(tag),从而形成JSP文件,后缀名为 (*.jsp)

JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。

引入JSP的原因:.servlet展示信息的不方便

 

JSP中如何嵌套Java代码

首先要加在开头加一个page指令

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

小脚本   <% java代码%>  

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

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

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

jsp中的注释

<!-- html注释内容,查看源码时能看到 -->

<%-- jsp注释,查看页面源码时看不到 --%>

JSP原理

访问jsp页面时,服务器发现后缀为.jsp,它会根据路径找到index.jsp文件,会将index.jsp翻译成index_jsp.java文件,对这个java文件进行编译,产生一个index_jsp.class文件,将class 文件加载运行。

将JSP翻译成java文件,它是将JSP中的所有的HTML代码通过流进行输出,也就是说最终翻译成 class,被虚拟机加载,它本质是servlet,它就会往回响应,响应回去就是把JSP中的HTML代码以流的方式写回浏览器。所以在JSP中展示出了HTML代码

JSP的内置对象

JSP中一共预先定义了9个这样的对象

分别为:request、response、session、application、out、pagecontext、confifig、page、exception

1、request对象

request 对象是 javax.servlet.httpServletRequest类型的对象。

该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。

request对象的 作用域为一次请求。

2、response对象

response 代表的是对客户端的响应,主要是JSP容器处理过的对象传回到客户端

response对象也具有作用域,它只在JSP页面内有效。所属类型:HttpServletResponse

3、session对象

session 对象是由服务器自动创建的与用户请求相关的对象。

服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。

session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。

session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

4、application对象

application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。

与session对象相比,application对象生命周期更长,类似于系统的“全局变量” ServletContext

区别:

request:单次请求

session:浏览器访问期间(会话期间)

application:服务器启动期间,所存的数据可以跨浏览器

5、out 对象

out 对象用于在Web浏览器内输出信息

out.print("<script type='text/javascript'>alert(' 用户名不存 在');location.href='index.jsp'</script>");
 

6pageContext 对象

pageContext对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的outrequestreponse、 session、application 等对象。

pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

7confifig 对象

confifig对象的主要作用是取得服务器的配置信息。

通过 pageConext对象的 getServletConfifig() 方法可以获取 一个confifig对象。当一个Servlet 初始化时,容器把某些信息通过confifig对象传递给这个 Servlet

示例:

将image路径转换成服务器端的路径 

String url= config.getServletContext().getRealPath("/image");

8page 对象

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变 量,类似于Java编程中的 this 指针。

9exception 对象

exception 对象的作用是显示异常信息,只有在page指令中包含 isErrorPage="true" 的页面中才可以被使用

exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况;

如果在JSP 页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误 页面中,然后在错误页面中处理相应的 exception 对象。

 

jsp的作用域:

pageContext(当前页面) -> request(单次请求有效) -> session(当前会话期) -> application(服务器运行期间有效)

JSP指令

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

 

语法格式:

<%@ 指令名称 属性名="属性值" %>
 
 

(1)page指令(了解)

(2)include指令

JSP 可以通过 include 指令来包含其他文件。 被包含的文件可以是 JSP 文件、 HTML 文件或文本文件 。包含的文件就好像是该JSP 文件的一部分,会被同时编译执行。
 
语法格式:
 
<% @ include file = " 文件相对 url 地址 " %>
 
(3)Taglib指令
 
JSP API 允许用户自定义标签,一个自定义标签库就是自定义标签的集合。
 
Taglib 指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
 
语法格式:
 
<% @ taglib uri = "uri" prefix = "" %>
 
uri 属性确定标签库的位置, prefifix 属性指定标签库的前缀 ( 可自定义 )
 
 

JSP 出现的状态码

EL表达式

简化对象和变量的访问是 EL 表达式,只负责取值
 
语法格式:
 
${ 需要展示信息的名字 }
 
 
当表达式没有指定变量或者对象的范围时
 
那么容器会依次从 pageContext—>request—>session—>application 中查找该变量或对象
 
遇见同名的key值时,我们可以通过隐含 对象获得指定作用域的值

 

pageScope 对象,用于获取当前页面的属性值
 
requestScope 对象,用于获取请求范围的属性值
 
sessionScope 对象,用于获取会话范围的属性值
 
applicationScope 对象,用于获取程序范围的属性值
 
比如:
${requestScope.key}
 
EL基础操作符
 

 

JSTL标签库

JSP 标准标签库( JSTL )是一个 JSP 标签集合,它封装了 JSP 应用的通用核心功能
 
JSTL 支持结构化的任务,比如 迭代,条件判断, XML 文档操作,国际化标签, SQL 标签。 除了这些,它还 提供了一个框架来使用集成 JSTL 的自定义标签。
 

作用:简化JSP页面编写代码

格式:

1. 导入 standard.jar jstl.jar /WEB-INF/lib/ 下。
 
2. JSP 页面中引入 <%@ taglib prefifix=” 页面使用的名称 ” uri=” 功能范围的路径 ”%>
 
功能范围          uri                                                  前缀
 
core                  http://java.sun.com/jsp/jstl/core      c
i18n                  http://java.sun.com/jsp/jstl/fmt        fmt
sql                    http://java.sun.com/jsp/jstl/sql        sql
xml                   http://java.sun.com/jsp/jstl/xml       x
functions          http://java.sun.com/jsp/jstl/function fn

核心标签库 

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

表达式操作 out set remove catch
 
流程控制 if choose when otherwise
 
迭代操作 forEach forTokens
 
URL 操作 import param url redirect
 
Set 标签

 

c:if> 主要用于进行 if 判断 , 如果为 true, 则输出标签体中的内容
 
 
 

 fmt标签库

fmt是格式化标签库
 
formatDate:将日期类型转换为指定模式的字符串
 
value: 将要被格式化的数据
 
pattern :格式化的模式,与 SimpleDateFormat 的参数设置一样
 
var: 格式化后的字符串所要存放的变量,若不指定 var ,则会将格式化的结果直接显示在页面
 
scope :变量存放的域属性空间,默认 page
 
type :其取值为 date time both ,表示给出的 value 是日期、时间、还是两者都包含,默认是 date

 

parseDate:将指定字符串转化为日期

Value服务器获取的时间

Pattern: 转换的格式 Var: 页面显示的变量
 
Var:页面显示的变量
 

 

fmt:formatNumber 按照指定格式对数字进行格式化
 
maxIntegerDigits :整数部分最多的位数
 
minIntegerDigits :整数部分最少的位数
 
maxFrctionDigits :小数部分最多的位数
 
minFrctionDigits :小数部分最少的位数
 
var :存储格式化结果的变量
 
scope var 属性的作用域
 
integerOnly :是否只解析整型数 true 或者浮点数 false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值