关于JSP中的四大作用域
欢迎使用Markdown编辑器
application:
全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
session:
会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。
request:
请求作用域,就是客户端的一次请求。
page:
一个JSP页面。
以上作用范围使越来越小, request和page的生命周期都是短暂的,他们之间的区别就是:
一个request可以包含多个page页(include,forward以及filter)。
举个简单的例子:
jsp1.jsp
jsp2.jsp
运行jsp1.jsp可以正常显示数据,因为作用范围(scope设置的值)是request,相当于调用了request.setAttribute()方法,jsp2.jsp通过request.getAttribute来获得这个bean。如果把request改为page,就会抛出NullPointerExceptioin。
一个请求可以跨好几个JSP(include和forword)和Servlet(如filter)。不过这里有一个需要注意的就是区别 和< include %>。如果上面的改为< include file=“jsp2.jsp” %>,即使scope为page也是正确的,< include %>是编译时包含,是运行时包含。前者就相当于宏,编译时替代,后者相当于函数,运行时返回。
JSP的四种范围,分别为page,request,session,application。
这四者都可以用setAttribute(“”,”"); getAttribute(“”,”");其中用page时,为pageContext.setAttribute(“”,”");它只能在同一个页面中有效。
Request 的作用范围在一次请求间有效,请求完毕则失效。一次请求可以从一个页面跳转到另一个页面或者servlet,只有响应返回到客户单浏览器,则本次请求结束。只要将数据存入request对象,数据的范围就为Request。
Session 的作用范围为一段用户持续和服务器所连接的时间,但与服务器断线 ,这个属性就无效。只要将数据存入session对象,数据的范围就为Session。
Application 的作用范围在服务器一开始执行服务,到服务器关闭为止Application 的范围最、停留的时间也最久,所以使用时要特别注意,不然可能会造成服务器负载越来越重。只要将数据存入application对象,数据的范围范围 (Scope) 就为Application。
---------------------
作者:a-freeman
来源:优快云
原文:https://blog.youkuaiyun.com/u014352356/article/details/24769799
版权声明:本文为博主原创文章,转载请附上博文链接!
链接: [link](https://mp.youkuaiyun.com).
图片: 
带尺寸的图片: 
居中的图片: 
居中并且带尺寸的图片: 
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
## 如何插入一段漂亮的代码片
去[博客设置](https://mp.youkuaiyun.com/configure)页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 `代码片`.
```javascript
// An highlighted block
var foo = 'bar';
```
## 生成一个适合你的列表
- 项目
- 项目
- 项目
1. 项目1
2. 项目2
3. 项目3
- [ ] 计划任务
- [x] 完成任务
## 创建一个表格
一个简单的表格是这么创建的:
项目 | Value
-------- | -----
电脑 | $1600
手机 | $12
导管 | $1
### 设定内容居中、居左、居右
使用`:---------:`居中
使用`:----------`居左
使用`----------:`居右
| 第一列 | 第二列 | 第三列 |
|:-----------:| -------------:|:-------------|
| 第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
### SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
| TYPE |ASCII |HTML
|----------------|-------------------------------|-----------------------------|
|Single backticks|`'Isn't this fun?'` |'Isn't this fun?' |
|Quotes |`"Isn't this fun?"` |"Isn't this fun?" |
|Dashes |`-- is en-dash, --- is em-dash`|-- is en-dash, --- is em-dash|
## 创建一个自定义列表
Markdown
: Text-to-HTML conversion tool
Authors
: John
: Luke
## 如何创建一个注脚
一个具有注脚的文本。[^2]
[^2]: 注脚的解释
## 注释也是必不可少的
Markdown将文本转换为 HTML。
*[HTML]: 超文本标记语言
## KaTeX数学公式
您可以使用渲染LaTeX数学表达式 [KaTeX](https://khan.github.io/KaTeX/):
Gamma公式展示 $\Gamma(n) = (n-1)!\quad\forall
n\in\mathbb N$ 是通过欧拉积分
$$
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
$$
> 你可以找到更多关于的信息 **LaTeX** 数学表达式[here][1].
## 新的甘特图功能,丰富你的文章
```mermaid
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
section 现有任务
已完成 :done, des1, 2014-01-06,2014-01-08
进行中 :active, des2, 2014-01-09, 3d
计划一 : des3, after des2, 5d
计划二 : des4, after des3, 5d
```
- 关于 **甘特图** 语法,参考 [这儿][2],
## UML 图表
可以使用UML图表进行渲染。 [Mermaid](https://mermaidjs.github.io/). 例如下面产生的一个序列图::
```mermaid
sequenceDiagram
张三 ->> 李四: 你好!李四, 最近怎么样?
李四-->>王五: 你最近怎么样,王五?
李四--x 张三: 我很好,谢谢!
李四-x 王五: 我很好,谢谢!
Note right of 王五: 李四想了很长时间, 文字太长了<br/>不适合放在一行.
李四-->>张三: 打量着王五...
张三->>王五: 很好... 王五, 你怎么样?
```
这将产生一个流程图。:
```mermaid
graph LR
A[长方形] -- 链接 --> B((圆))
A --> C(圆角长方形)
B --> D{菱形}
C --> D
```
- 关于 **Mermaid** 语法,参考 [这儿][3],
## FLowchart流程图
我们依旧会支持flowchart的流程图:
```mermaid
flowchat
st=>start: 开始
e=>end: 结束
op=>operation: 我的操作
cond=>condition: 确认?
st->op->cond
cond(yes)->e
cond(no)->op
```
- 关于 **Flowchart流程图** 语法,参考 [这儿][4].
## 导出与导入
### 导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 **文章导出** ,生成一个.md文件或者.html文件进行本地保存。
### 导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
[1]: http://meta.math.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference
[2]: https://mermaidjs.github.io/
[3]: https://mermaidjs.github.io/
[4]: http://adrai.github.io/flowchart.js/
1268

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



