Servlet学习笔记05——什么是jsp?
1. jsp (java server page)
(1)jsp是什么?
sun公司制订的一种服务器端动态页面技术规范。
注:
因为虽然使用servlet也可以生成动态页面,
但是过于繁琐(需要使用out.println),并且难以
维护(修改页面,就需要修改java代码),所以,sun
才制订了jsp规范。
jsp是一个以.jsp为后缀的文件,该文件被容器
转换成一个对应的Servlet然后执行。也就是说,jsp
的本质就是一个Servlet!
(2)如何写jsp?
1)step1.添加一个以.jsp为后缀的文件。
2)step2.在该文件里面,可以添加如下内容:
a. html(css,javascript) : 直接写。
b. java代码:
b1. java代码片断
<% java代码 %>
b2. jsp表达式
<%= java表达式 %>
c. 隐含对象
c1.什么是隐含对象?
可以直接使用的对象,比如out,request,
response。
c2.为什么可以直接使用这些隐含对象?
容器会添加获得这些隐含对象的代码。
d. 指令
d1.什么是指令?
通知容器,在将jsp转换成servlet时,
做一些额外的处理,比如导包。
d2.语法
<%@ 指令名 属性=值 %>
d3.page指令
import属性:用于导包,比如
<%@ page import="java.util.*"%>
<%@ page import="java.util.*,java.text.*"%>
contentType属性:设置response.setContentType方法的参数值。
pageEncoding属性:告诉容器,在读取
jsp文件的内容时使用指定的字符集去解码。
(3)jsp是如何运行的?
1)step1. 容器要将jsp转换成servlet。
html(css,js) ----> service方法里面,使用
out.write输出。
注: out.write方法会将null转换成""输出,
而out.println方法会将null直接输出。
<% %> -----> service方法里面,照搬。
<%= %> -----> service方法里面,使用
out.print输出。
2)step2. 容器调用该servlet。
2.转发
(1)什么是转发?
一个web组件将未完成的任务转交给另外一个
web组件继续做。
注:
web组件指的是servlet或者是jsp。
常见的情况是servlet将数据转发给jsp来
展现。
(2)如何转发?
step1.绑订数据到request。
request.setAttribute(String name,Object obj);
比如:
request.setAttribute("users",users)
step2.获得转发器。
RequestDispatcher rd = request.getRequestDispatcher(String uri);
注:
RequestDispatcher是一个接口。
uri:转发的目的地,通常是一个jsp。
step3.转发
rd.forward(request,response);
注:
转发的本质,是一个web组件通知容器
去调用另外一个web组件。
Object request.getAttribute(String name);
注:如果绑订对应的值不存在,返回null。
Servlet学习笔记05——什么是jsp?的更多相关文章
- # jsp及servlet学习笔记
目录 jsp及servlet学习笔记 JSP(Java Server Page Java服务端网页) 指令和动作: servlet(小服务程序) jsp及servlet学习笔记 JSP(Java Se ...
- Servlet学习笔记(四)
目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...
- 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归
机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...
- C++ GUI Qt4学习笔记05
C++ GUI Qt4学习笔记05 qtc++正则表达式 QIntValidator -- 只让用户输入整数 QDoubleValidator -- 只让用户输入浮 ...
- Servlet学习笔记(三)
目录 Servlet学习笔记(三) 一.HTTP协议 1.请求:客户端发送欸服务器端的数据 2.响应:服务器端发送给客户端的数据 3.响应状态码 二.Response对象 1.Response设置响应 ...
- Servlet学习笔记(二)
目录 Servlet学习笔记(二) Request对象 1.request和response对象: 2.request对象继承体系结构: 3.什么是HttpServletRequest ? 4.Htt ...
- jsp&servlet学习笔记
1.路径引用问题 一个css.jsp.html.或者javascript文件从从一个工程复制到另一工程,如果引用的时候使用的时相对路径,看似没有错误,但是却一直引用不进来,这时候要使用绝对路径,这样才 ...
- [原创]java WEB学习笔记05:Servlet中的ServletConfig对象
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Servlet 学习笔记
Servlet 运行在服务器上的 java 类: Servlet 容器为 javaWeb 应用提供运行时环境,负责管理 servlet 和 jsp 生命周期,以及管理他们的共享数据. 现在我们知道了 ...
随机推荐
- 工作采坑札记:2. Hadoop中MultipleInputs的使用陷阱
1. 背景 近日在一个Hadoop项目中使用MultipleInputs增加多输入文件时,发现相同路径仅会加载一次,导致后续的统计任务严重失真.本博文旨在记录异常的排查及解决方案. 2. 情景重现 ( ...
- 连接Mysql时出现java.math.BigInteger cannot be cast to java.lang.Long问题
今天遇见这样一个坑.在连接数据库进行查询数据时,大家可能会遇见这样一个问题:java.math.BigInteger cannot be cast to java.lang.Long,然后去检查代码中 ...
- ab (ApacheBench)命令
ab (ApacheBench)命令 参数 -n 在测试会话中所执行的请求个数.默认时,仅执行一个请求 -c 一次产生的请求个数.默认是一次一个 -t 测试所进行的最大秒数 -k 启用HTTP Kee ...
- python--Time(时间)模块
要使用一个模块,首先要把模块导入进来 import time 我们先把这一篇文章需要用的模块导入进来 首先说一下time模块,time模块中的函数 --sleep:休眠指定的秒数(可以是小数) imp ...
- (三)JavaScript之[事件]与[字符串]
5].事件**JavaScript事件:HTML事件 * HTML事件是发生在HTML元素上的事情 * HTML事件可以是[浏览器的行为],也可以是[用户的行为] * * 实例: * HTML页面完成 ...
- php 编译安装指导
php 编译安装 下载源码 安装 安装后配置 下载源码 php下载地址:http://php.net/downloads.php php-7.1.11.tar.bz2 安装 安装依赖包 yum ins ...
- AOP术语分析
初看这么多术语,一下子都不好接受,慢慢来,很快就会搞懂. 通知.增强处理(Advice) 就是你想要的功能,也就是上说的安全.事物.日子等.你给先定义好,然后再想用的地方用一下.包含Aspect的一段 ...
- 笨办法学Python(二十五)
习题 25: 更多更多的练习 我们将做一些关于函数和变量的练习,以确认你真正掌握了这些知识.这节练习对你来说可以说是一本道:写程序,逐行研究,弄懂它. 不过这节练习还是有些不同,你不需要运行它,取而代 ...
- 笨办法学Python(九)
习题 9: 打印,打印,打印 # Here's some new strange stuff, remember type it exactly. days = "Mon Tue Wed T ...
- 概念:RPG游戏中两个兵种互相攻击的逻辑
直接上题目: 解析题目: 根据题目的解析,进行代码的实现: 输出结果: 心得: (1) 当我们面对‘公式结果不是我们想要的’时,应该在脑海里将一个完整的攻击流程进行想象,就会对流程有个更清晰的思路 ( ...