JSP

JSP = HTML + Java + JSP自己的一些语法
JSP也是一个动态网页开发技术。
JSP本质
Jsp实际上就是一个Servlet,在jsp被访问时,tomcat会把jsp转换为一个java类,然后编译执行这个java类。
jsp在第一次被访问时会被翻译为一个Servlet并执行。
JSP三个脚本
<% %> JSP代码块
此处编写的代码会出现在翻译后的Servlet的service方法中。
<%! %> JSP声明
此处编写的代码会出现在翻译后的Servlet的成员位置。
<%= %> JSP表达式
此处编写的代码会出现在翻译后的Servlet的service方法中的out.print();输出语句的参数位置。
内置对象
就是JSP已经声明好的,直接可以使用的一些对象。
out
jsp中定义的一个字符输出流。用于往页面输出数据。
和respones中的输出流不是同一个。 JSP页面主要功能: 展示数据、获取用户输入。不要在其中编写复杂业务逻辑。
用户交互 脚本 3种
指令 3个
page指令:用于配置页面中的属性。
isELIgnored="false"
是否忽略EL表达式,要指定为false
include指令:用于包含其他页面。
<%@include file="top.jsp"%>
相当于代码的拷贝。
taglib指令:用于引入标签库
<%@taglib prefix="" uri="" %>
注释 3种
html <!-- -->
java // /* */ /** */
jsp <%-- --%>
原则:
在什么类型的代码中,就使用什么类型的注释。
内置对象 9个
pageContext*****
1. 域对象
作用范围
当前页面
创建
当访问一个jsp页面时,它会创建
销毁
当我们从当前页面跳转走之后,它会销毁
2. 获取其他8个内置对象
3.在其他三个域中存取值
存值:
pageContext.setAttribute("key","value",PageContext.APPLICATION_SCOPE);
第三个参数指定往哪个域中存值。
取值:
pageContext.getAttribute("key",PageContext.APPLICATION_SCOPE);
第二个参数指定往哪个域中存值。
pageContext.findAttribute("key");
查找指定key的值。从域中查找。依次从最小的域到最大的域查找,只要找到一个,就直接返回。
最小到最大:page域 < request域 < session域 < application域

MVC开发模式*****

M: Model模型层

作用:封装数据,执行业务逻辑

包含:JavaBean(实体类)、Service(业务逻辑层)、DAO(数据访问层\持久层)

V:View视图层

作用:和用户进行交互

包含:JSP和HTML

C:Controller控制层

作用:获取用户输入,并进行功能的分发

包含:Servlet

EL表达式

表达式语言,在jsp中使用。

语法:

${ 表达式 }

作用:

1. 执行运算

empty

空值判断。如果一个对象为null,或者一个有长度的对象的长度为0. empty判断都会返回true

2. 从域中获取值

1. el表达式只能从域对象中获取值

2. 语法:

1. ${域名称.键名}:从指定域中获取指定键的值

域名称:

1. pageScope --> pageContext

2. requestScope --> request

3. sessionScope --> session

4. applicationScope --> application(ServletContext)

注意:

域名称的对象,类型实际上是Map<String,Object>

里面把域对象中存储的值获取出来了

			2. ${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。规则和pageContext.findAttribute()一致。
获取对象类型的数据
${对象的key.对象的属性名}
属性仅和setter、getter方法相关。
从list集合获取数据
${list[索引]}
从map集合中获取数据
${map.key}或者${map["key"]}
EL隐式对象
cookie
可以获取指定名称的cookie的值
${ cookie.name.value }
pageContext
可以获取其他八个jsp的内置对象
${pageContext.request.contextPath}获取虚拟目录

JSTL*****

概念:JSP标准标签库,用于引入第三方定义的一系列标签在jsp中使用。

作用:在页面中编写一些简单逻辑代码。使用标签来进行编写而不是java代码。

分类:

核心标签库 core

if

属性:test,指定一个boolean值或者一个能计算出boolean值的el表达式

forEach

1.普通for循环

for(int i = 0; i < 10; i ++){

					}
属性:
begin:开始值(包含)
end:结束值(包含)
var:临时变量
step:步长,每次变量的增量
2. 增强for循环
List<User> list;
for(User user : list){ }
属性:
items:容器对象
var:容器中元素的临时变量
varStatus:循环状态对象
index:容器中元素的索引,从0开始
count:循环次数,从1开始
EL函数库
只能在EL表达式中使用
基本上都是string的函数。
fn:length()函数
1. 求指定字符串的长度
2. 求集合或数组的长度
使用步骤:
1. 导入jar包
2. 在页面中引入标签库,使用taglib指令

Web核心之JSP的更多相关文章

  1. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  2. web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么?

    web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么? 这是我在网上找的一些资料:1. Web浏览器除了可以在本地硬盘上打开网页文档外,还可以使用http网络协议从网络上的We ...

  3. java web 学习笔记 - JSP标签编程

    1.JSP标签编程简介 标签编程在开发中并不常见,主要是为了更好的理解struts等框架的标签而打基础,完善相关知识体系. 标签编程分为: 一个继承自TagSupport的标签类,一个在WEB-INF ...

  4. 使用Eclipse开发Web项目(JSP)——简单登录、无sql

    1.使用Eclipse开发Web项目(JSP) tomcat 2.在Eclipse中创建的Web项目: 浏览器可以直接访问webContent中的文件 例如http://localhost:8080/ ...

  5. Web核心之tomcat汤姆猫

    web相关概念 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源分类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏 ...

  6. HTTP及Web核心基础

    1. HTTP服务重要基础 1.1 用户访问网站基本流程 (1)客户端从浏览器输入"www.baidu.com"网站地址,回车后,系统首先会查找系统本地的DNS缓存及hosts文件 ...

  7. eclipse新建web项目开发JSP

    1.创建项目:file---new--Dynamic Web Project 一直选next,到jsp文件目录所在地,打勾默认自动生成web.xml配置文件,也可以自己设置. 创建JSP文件: 选择创 ...

  8. WEB核心IOC篇

    ioc概念的理解:(不是技术是一种设计思想) IOC (控制反转)     IoC(Inverse of Control)的字面意思是 控制反转 ,它包括两个内容:     其一是控制 (控制对象的实 ...

  9. Java Web基础:JSP基础概念

    JSP介绍 JSP全称是Java Server Pages,它和Servlet都是Sun公司定义的用于开发动态Web资源的技术,它解决了Servlet输出流排版复杂和难以维护的问题.JSP完美融合了H ...

随机推荐

  1. Django的media配置与富文本编辑器使用的实例

    效果预览 文章列表 添加文章 编辑文章|文章详情|删除文章 项目的基本文件 项目的Model from django.db import models # 导入富文本编辑器相关的模块 from cke ...

  2. 【SVN】 一次SVN 修复笔记

    同事乱提交了一个版本之后,SVN上最新版本出现了问题. 原本按照网上其他人的说法,可以手动到服务器端干掉最新版的存档,并修改版本记录到前一个版本号即可,但是这应该是个坑. 掉进这个坑后,需要解决,又不 ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第7节 Arrays工具类_16_数组工具类Array

    在java.util的包下面.在这个包的下面是需要导包的,只有lang 的包下面是不需要导包的 查看jdk1.6的手册 Arrays让我们想起了数组,说明它提供了与数组相关的方法 我们可以看到 toS ...

  4. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_1_继承的概述

    继承,不要按照父亲和儿子的关系去理解,父亲有100快.那么大儿子就有50 小儿子也50 ,他是对半的 这里要按照师傅和徒弟的关系去理解.师傅会九阴真经 那么徒弟也会九阴真经 程序中的继承 讲师和助教有 ...

  5. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_01 Collection集合_7_增强for循环

    collections实现了interable接口.实现了interable接口就可以使用Foreach int i是临时 变量

  6. set()运算

    1 计算两个list的关系时,可转化为set进行运算. 参考:https://www.runoob.com/python3/python3-set.html a =[1,4,3,5,6,6,7,7,7 ...

  7. SpringBoot整合Lintener

    1.通过扫描完成Lintener组件的注册 1.1编写Listener /** * springboot整合Lintener 方式一 * 在web.xml中如何配置Listener * <lis ...

  8. JavaSE编码试题强化练习5

    1.不使用函数实现字符串的翻转 /** * 1.不使用函数实现字符串的翻转 */ public class TestStringReverse { public static void main(St ...

  9. Vue—非父子组件间的传值(Bus/发布订阅模式/观察者模式/总线)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. Kubeadm安装Kubernetes 1.15.1

    一.实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.198.200 >=2c >=2G master 192.168.198.201 >=2c ...