JSP,EL表达式,JSTL表达式

本文深入探讨了JSP与Servlet的工作原理及应用,解析了两者之间的区别,包括它们在页面展示、请求处理及数据响应方面的不同。同时,文章还讲解了JSP中的三大指令:include、page与taglib的作用与使用方法,以及EL表达式和JSTL表达式的语法与功能。

Response 冲定向之后,页面为什么获取不到转发的数据?

因为重定向有两次请求,而http协议是无状态的,所有获取不到上一次请求的数据

request

在服务器内部执行
一次请求
url 地址不会发生改变
可以携带参数
安全与效率高
不可以跳转到另一个项目
可以访问到web-inf 下的资源

response

在客户端执行
二次请求
url地址是会发生改变
可以携带参数(一般不会使用)
安全与效率低
跳转到另一个项目
不可以访问到 web-inf 下的资源

使用转发的前提:
效率高 安全性 传递参数的时候 就使用转发 查询 使用转发

使用重定向的前提:
上一次连接 与本次连接没有任何关系的时候的,不需要携带参数,需要跳转到其它项目 增加 删除 修改 使用重定向
在这里插入图片描述

JSP:

是运行在服务器的页面 servlet 是运行在服务器的java代码 (有关系)(页面的展示) (html+Java代码)
静态的网页:
前后端交互比较麻烦
动态的页面 :
是可以写html标签 :但是比较麻烦,html 与java代码混合,所有说不使用servle写网页

因为是运行在服务器的页面,所有需要进行编译

编译后的代码在安装的idea的配置目录里
C:\Users\Administrator.IntelliJIdea2018.1\system\tomcat_二阶段\work\Catalina\localhost_

jsp属于一个特殊的servlet
index_jsp extends org.apache.jasper.runtime.HttpJspBase HttpJspBase是HttpServle的一个子类
out.write("\n");out.write(" \n"); jsp 中所有html代码都是通过write()来写入到浏览器里

jsp 被访问的时候的流程:

在这里插入图片描述

jsp 与servlet 的区别:

jsp就是一个 servlet

区别:
jsp 主要页面的显示(不做转发到某个界面,或者是到那个地方请求) ==>
jsp ==>
servlet ==>
service ==>
dao ==>
数据库

servlet(controller) 负责处理请求与相响应

model1与model2的区别:

model1: 模式的缺点: java代码 html 代码混合 ,不方便修改与维护
model2 : jsp 在做页面展示 servlet(controller) 负责处理请求与相响应

jsp:新建一个jsp页面

jsp 的组成部分:
java的片段 <% 中间去写就java代码,不能够写html标签%>
输出语句 <%=%>
注释: 快捷键:alt+shift+/
声明:<%! %> 如果这里有变量是成员变量,一般是申明方法

jsp 中的三大指令:

(1)include指令

作用: 在当前页面用于包含其他页面
语法: <%@include file=”common/header.jsp”%>

静态:<%@ include file=“head.jsp”%> 静态引入:适合引用纯html代码 先加载 再编译
动态: jsp提供的动态标签库:动态的引入 边加载 边编译 (适合于引入动态的界面) <jsp:include page=“head.jsp”></jsp:include>
在这里插入图片描述

(2)page指令

作用: 告诉tomcat服务器如何翻译jsp文件
语法: <%@ page
language=”java” –告诉服务器使用什么动态语言来翻译jsp文件
import=”java.util.*” –告诉服务器java文件使用什么包,导入包时,多个包之间用逗号分割
pageEncoding=”utf-8” –告诉服务器使用什么编码翻译jsp文件(成java文件)
contentType=”text/html; charset=utf-8” 服务器发送浏览器的数据类型和内容编码
设置pageEncoding即可解决中文乱码问题
errorPage=”error.jsp”
isErrorPage=”false”
buffer=”8kb”
session=”true”
isELIgnored=”false”
%>
<%@ page import=“java.text.SimpleDateFormat” %>导包

(3)taglib指令

作用:导入标签库
语法:<%@taglib uri=”tld文件的uri名称” prefix=”简写” %>

EL表达式:

作用是简化jsp里的代码,用于获取存与内置(request, respone servletContext)对象的值

语法:

${或者的变量的值}
使用el表达式来获取对象,必须给这个对象set get 方法 获取的语法 ${对象名称.属性的名称}

el 作用:

1.可以避免简单的错误
2.可以做一些简单的算术
3.可以获取内置对象作用域下的值
在这里插入图片描述
在这里插入图片描述

JSTl表达式:

一般是与el搭配使用,简化jsp里的代码

1.导入jar (添加依赖)
2.引用相应的标签库 jstl
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
prefix=“c” 表示前缀 一般取名为c 可以进行修改(但是不建议)
uri=“http://java.sun.com/jsp/jstl/core” 表示引入的核心库(也就是网址) 固定写法

在这里插入图片描述

遍历集合的标签:
items 表示需要遍历的集合
var=“register” 表示每次遍历的对象
varStatus 表示其索引
begin 表示从几开始遍历
end 到什么时候结束
step 波长 每次遍历的间隔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值