1.1定义
- application:中文意思是应用程序,就好比手机上的app。应用程序能够利用计算机操作系统的某些服务,也可以利用其它应用程序所支持的服务。
- jsp内置对象之一。
1.2作用
- 存储数据和访问来自任何页面的变量,类似于session。不同之处在于,所有用户分享一个application。而session是一个对象一个session对象
- 在一起协同工作以完成某项任务的一组 ASP 文件称作应用程序(application)
- 因为application持有会被应用程序中的许多页面使用信息(比如数据库连接信息),所以可以从任何页面访问这些信息。同时也意味着你可在一个地点改变这些信息,任何这些改变会自动反应在所有的页面上
1.3 创建
服务器启动时候创建
1.4 销毁
服务器关闭时销毁
1.5 案列演示
1.5.1使用application实现统计在线用户个数(低配版)
<%
//实现用户在线数量
Integer count = 0;
//从application作用域里面获取当前的在线用户数量
Integer c =(Integer)application.getAttribute("count");
//如果用户数量不为空,赋给变量count
if( c != null){//有数据
count = c;
}
count++;//把当前的用户加进去
application.setAttribute("count", count);
%>
你是第:<%=application.getAttribute("count")%>
通过这个案列可以看出application可以多个用户操作同一作用域,session却不可以。application作用域最广
1.5.2富文本编辑器(需要下载插件)
1.5.2.1怎么使用(ckeditor4插件)。
如图所示:
- 1.把已经下好的插件复制到静态目录里面,如图所示:
2.ckeditor4——ckeditor.js。
列如word文档
<!-- 1.导入ckeditor.js插件 -->
<script type = "text/javacript" src="<%=request.getContextPath() %>/home/ckeditor4/ckeditor.js"/>
<!-- 2.在页面引入ckeditor.js文件 -->
<!--注意:name值随便取,但是不能没有name值,会报错-->
<textarea rows="" class = "ckedtor" name = "ckedtor1" cols=""></textarea>
效果如图所示:
1.5.3文件上传(需要架包smartupload.jar)
-
把已经下载的的插件导入lib里面,如图所示:
-
设置form表单的enctype属性:。
文件上传步骤(在servlet包操作):
String path;//保存图片路径
try {
// 1.创建SmartUpload对象
SmartUpload su = new SmartUpload();
// 2.设置SmartUpload对象的编码
su.setCharset("utf-8");
// 3.(上传初始化)初始化SmartUpload对象,里面传的是pageContext对象
su.initialize(this.getServletConfig(),req,resp);
// 4.设置文件上传类型
su.setAllowedFilesList("jpg,gif,png");
// 5.设置文件不能上传类型
su.setDeniedFilesList("exe,mp3,avi,mp4");
// 6.设置上传文件大小为50M
su.setMaxFileSize(50);
// 7.准备上传
su.upload();
// 8.得到第一个上传的文件(单文件)(多文件:su.getFiles。返回一个数组)
File file = su.getFiles().getFile(0);
// 9.如果选择了文件
if(!file.isMissing()) {//miss错过
/**
* 文件路径中间的间隔符:
* windows:\
* linux:/
* windows:c:\test\sa.jsp
* linux:c:/test/sa.jsp
*/
//10.拼接路径(不清楚是什么系统的1)java.nio.File.separator
path = "upload"+java.io.File.separator+file.getFieldName();
}
// 11.开始上传文件(是上传到服务器里面)
file.saveAs(path);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
2.session
2.1创建
reqeust.getSession();它是用于获取session.
//什么时候创建
//1.如果在服务器端,有一个session的id值与其一样,不创建,直接使用。
//2.如果在服务器端,没有这个session的。id值,或者有name值那么会创建。
2.2销毁
1.超过默认时间:30.销毁
2.设置session超时时间
setMaxInactiveInterval(int interval)
3.invalidate()手动销毁
3.requset
3.1创建
请求发生时候
3.2销毁
响应产生