JavaWeb学习日志(JSP)

尚硅谷学习笔记

什么是jsp

jsp 全称是 JavaServer pages,也就是java服务器页面

jsp的主要作用就是代替Servlet程序回传html页面的数据


jsp的访问

jsp与html都存放在web目录下,访问也跟html一样。

http://ip:port/工程路径/资源路径


jsp的本质

本质是一个sevlet程序。

jsp的三种语法

头部的page指令

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
  • language: 表示jsp翻译后是什么语言,暂时只支持java
  • contentType:表示jsp返回的数据类型
  • pageEncoding:表示jsp页面文件本身的字符集
  • import:用于导包、导类

以下两个属性给out输出流使用:

  • autoFlush:设置当out输出流缓冲区满了之后,是否自动刷新缓冲区。默认值为true
  • buffer:设置out缓冲区的大小。默认是8kb。

  • session:设置访问当前jsp页面,是否会创建HttpSession对象。默认是true
  • extends:设置jsp翻译出来的java类默认继承谁。

jsp中常用的脚本

  1. 声明脚本

声明脚本的格式:<%! 声明java代码%>

作用:可以给jsp翻译出来java类定义一些属性、方法、静态代码块、内部类等。

  1. 表达式脚本

表达式脚本的格式:<%=表达式%>

作用:在jsp页面上输出数据。

表达式脚本的特点

1.所有的表达式脚本都会被翻译到**_jspService()** 方法中 

2.表达式脚本都会被翻译成为 out.print()输出到页面上 

3.由于表达式脚本翻译的内容都在**_jspService()** 方法中,所以**_jspService(**)方法中的对象都可以直接使用,因为其间接继承了HttpSevlet。

<%=requset.getParameter('xxx'))>

4.表达式脚本中的表达式不能以分号结束。
  1. 代码脚本

代码脚本的格式:<%java语句%>

作用:在jsp页面中,可以写自己的java语句

代码脚本的特点是:

1.代码脚本翻译之后都在_jspService 方法中 

2.代码脚本由于翻译到_jspService()方法中,所以在_jspService()方法中的现有对象都可以直接使用。 

3.还可以由多个代码脚本块组合完成一个完整的 java 语句。 

4.代码脚本还可以和表达式脚本一起组合使用,在 jsp 页面上输出数据

jsp中九大内置对象

  1. request: 请求对象
  2. response: 响应对象
  3. pageContext: jsp的上下文对象
  4. session: 会话对象
  5. application: ServletContext对象
  6. config: ServletConfig对象
  7. out: jsp输出流对象
  8. page: 指向当前jsp的对象
  9. exception: 异常对象

jsp四大域对象

四个域对象分别是:

PageContext (PageContextImpl类)、当前jsp页面范围有效

request (HttpSevletRequest类)、一次请求内有效

session (HttpSession类)、一个会话范围内有效

application (ServletContext类)整个web工程范围内都有效

域对象可以像Map一样存取数据对象。四个域对象功能一样。不同的是他们的数据存取范围


jsp中的out输出和response.getWriter()输出的区别

在这里插入图片描述

由于jsp翻译之后,底层源码都是用out来进行输出,所以一般情况下。我们在jsp页面使用out来进行输出,避免打乱输出顺序。

 out.write() 输出字符串没有问题
 out.print() 输出任意数据都没有问题(都转换成为字符串后调用的write 输出) 

深入源码,浅出结论:在 jsp 页面中,可以统一使用 out.print()来进行输出


jsp的常用标签

静态包含

语句:<%@ include file=""%>

file属性指定你要包含的jsp页面

地址中第一个斜杠’/’ 表示为http://ip:port/工程路径/ 映射到web目录

静态包含的特点:

1. 静态包含不会翻译被包含的jsp页面

2. 静态包含其实是把包含的jsp页面的代码拷贝到包含的位置执行输出


动态包含

语句:<jsp:include page=""></jsp:include>

page属性指定你要包含的jsp页面

动态包含也可以像静态包含一样。把被包含的内容执行输出到包含位置

静态包含的特点:

1. 动态包含会把包含的jsp页面也翻译成java代码

2. 动态包含底层调用了一个方法去调用被包含的jsp页面

3. 动态包含,还可以传递参数

<jsp:include page="/xxxx.jsp">
	<jsp:param name="username" value="Veneno"/>
</jsp:include>

可以在request作用域中获取到值。
<%= request.getParameter("username")%>

jsp 标签(转发)

语句:<jsp:forward page=""></jsp:forward>

是请求转发标签,它的功能是请求转发,page属性设置请求转发的路径

Listener 监听器

Listener监听器是JavaWeb的三大组件之一。是JavaEE的规范、就是接口

三大组件分别是:Servlet程序、Filter过滤器、Listener监听器

监听器的作用是:监听某种事物的变化。然后通过回调函数,反馈个客户(程序)去做一些相应的处理。

监听器的实现步骤

  1. 创建一个类实现监听器接口
  2. 重写接口中的方法
  3. 在web.xml文件中进行配置
<Listener>
    <Listener-class> 全类名</Listener-class>
</Listener>
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值