-
- 请求流程
http://localhost:8080/Servlet_01/hello
当客户端浏览器发送请求 的时候
通过 localhost可以找到当前电脑
:8080 就找到 tomcat的webapps

Servlet_01 就是我们要执行的项目
/hello 就是我们要请求的servlet_01项目中的功能
此时 /hello就会去和Servlet_01项目中 的web.xml中定义的路由进行匹配(或者是注解定义的路由)


找到这个对应的类之后,就会去执行该类中的init方法,service方法等
或者是根据注解方式的路由 就可以执行定位到类

- 跳转
- 请求转发
只会发送一条请求
只发送一条请求,地址栏不变,还是index,客户端无感知跳转
因为只发送了一条请求,所以request中数据共享
适合向页面传递数据,比如数据展示,可以通过后端把数据获取,然后设置到request中
并转发到对应的jsp页面,在jsp页面进行操作


可以看到 地址栏请求的还是/a/b/c 但是 页面却是其他页面(发生了转发)
并且在该页面中,可以获取request设置的数据 张三
-
- 重定向

重定向跳转 客户端发送两条请求,地址栏变为login
并且 request数据不共享,适合做普通的页面跳转


通过测试发现 重定向跳转 会发送两条请求
而地址栏 也是最后一个请求,并且request数据不共享,所以不能做数据传递
- JSP内置对象
不用创建,直接使用

本质 就是service方法中的局部变量
Request 请求对象
Response 响应 对象
Session 会话
Out 输出流,用于向页面打印
Application servletContext 全局环境
Config servletConfig

- EL表达式
- 概述
EL表达式 主要用于获取数据 等于 request.getAttribute(“xxxx”)
-
- 为什么使用EL表达式
MVC应该是轻量级的框架,但是在JSP中 通过 <%%> 这种写法,功能太强,不符合MVC设计理念
甚至你可以直接把操作数据库的JDBC代码在JSP中编写,完全脱离了后端java类
所以 为了尽可能的在视图层出现java逻辑代码,提出了EL表达式和JSTL
-
- 语法
${xxx} 等于 request.getAttribute(“xxx”) 这两句话是等价的
可以通过\ 忽略el表达式
- JSTL表达式
- 概述
JSTL : JSP Standard Tag Library JSP标准标签库
使用JSTL必须先导入对应的jar包
-
- 为什么用JSTL
上述我们分析了JSP带来的问题及解决方案
但是EL表达式只能解决数据获取的问题,比如用户列表等循环遍历操作或者是流程控制操作
EL表达式是做不到的,此时就需要依赖JSTL完成这件事.但是JSTL不能获取数据
所以 一般EL表达式会和JSTL一起使用,功能才更加强大
最初的设计目的是解决两个问题,
1 上述分析的问题,不符合MVC模式
2 写JSP的人,应该是前端或者是美工,不需要有java编程基础
简单来说 它们就是用来简化JSP中的java代码的,使JSP代码更简短美观
-
- 标签库
1 核心标签库 : 最常用的部分,比如流程判断,循环遍历等
2 I18N 格式标签库 : 对数据显示进行格式化,比如时间格式化,数字格式化
核心标签库

-
-
- 循环结构
-

后端已经传递了一个集合数据

分支结构

格式化I18N标签库

![]()


本文详细介绍了HTTP请求的工作流程,包括客户端如何通过localhost和端口号找到服务器上的Servlet。讲解了Servlet的init和服务方法的执行过程,以及通过web.xml或注解定义的路由匹配。接着讨论了请求转发和重定向的区别:转发在地址栏不变的情况下共享request数据,适合传递数据;而重定向导致新的请求,地址栏改变且request数据不共享,适合普通页面跳转。此外,还探讨了JSP内置对象的作用,EL表达式和JSTL标签库简化JSP代码的功能,以及它们在数据获取和页面操作中的应用。
340

被折叠的 条评论
为什么被折叠?



