`

jsp值application

阅读更多

1,什么是application?

application对象是javax.servlet.ServletContext接口的实例化对象,单从词义上翻译是:servlet上下文;ServletContext代表了整个容器的操作,常用的方法有:

No 方法 类型 描述
1 String getRealPath(String path) 普通 得到虚拟目录对应的绝对路径
2 public Enumeration getAttributeNames() 普通 得到所有属性的名称
3 public String getContextPath() 普通 得到当前的虚拟路径名称

2,取得虚拟目录对应的绝对路径?

  	<%String realpath=application.getRealPath("/"); %>
  	<%= path %>

 会输出项目的根目录的路径,在使用中应该尽量使用this.getServletContext()来代替applicatioin;

实例:在一个文本输入一些数据,然后让其在项目的根目录下生存文件:

input.jsp:

	<form action="inputContent.jsp" method="post">
		输入文件名称:<input type="text" name="fileName"><br />
		输入文件内容:<textarea rows="3" cols="14" name="filecontent"></textarea><br />
		<input type="submit" value="提交">
		<input type="reset" value="重写">	
	</form>

 执行并显示的页面content.jsp:

<body>
	<%
		request.setCharacterEncoding("utf-8");
		String name = request.getParameter("fileName");
		String content = request.getParameter("filecontent");
                //拼凑文件名称
		String fileName = this.getServletContext().getRealPath("/")+"note"+File.separator+name;
                //实例化File类对象
		File file = new File(fileName);
                //判断父文件夹是否存在
		if(!file.getParentFile().exists()){
                        //创建文件夹
			file.getParentFile().mkdir();
		}
                //定义打印流对象
		PrintStream ps = null;
                //准备向文件中的保存
		ps = new PrintStream(new FileOutputStream(file));
                //输出内容
		ps.println(content);
                //关闭输出流
		ps.close();
	 %>
	 
	 <%
                //使用scanner读取文件
	 	Scanner scan = new Scanner(new FileInputStream(file));
                //设置读取分隔符
	 	scan.useDelimiter("\n");
                //将所有内容都读取进来
	 	StringBuffer buf = new StringBuffer();
                //取出所有数据
	 	while(scan.hasNext()){
                        //读取内容,保存在StringBuffer类中
	 		buf.append(scan.next()).append("<br>");
	 	} 
                //关闭输出流
	 	scan.close();
	  %>
	  <%=buf %>
</body>

 大家可以在tomcat的webapps下的工程下生成一个文件;

实例:网站计数器:

必须注意以下3点:

  • 来访人数会很多,必须用大整数类---BigInteger完成;
  • 用户每次在第一次访问时才需要进行计数的操作,在执行计算之前必须使用isNew()判断;
  • 在进行更改,保存时需要进行同步操作;
	<body>
		<%!BigInteger count = null;%>
		<%!//直接在方法中处理异常,实际应用中应该交给调用处处理
	//读取计数文件
	public BigInteger load(File file) {
		//接收读取的数据
		BigInteger count = null;
		try {
			//如果文件存在,则读取
			if (file.exists()) {
				//定义scanner对象
				Scanner scan = null;
				//从文件中读取
				scan = new Scanner(new FileInputStream(file));
				//存在内容
				if (scan.hasNext()) {
					//将内容放到BigInteger类中
					count = new BigInteger(scan.next());
				}
				//关闭输入流
				scan.close();
			} else {
				//第一次访问
				count = new BigInteger("0");
				//调用save()方法,保存新文件
				save(file, count);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		//返回读取后的数据
		return count;
	}
	//保存技术文件
	public void save(File file, BigInteger count) {
		try {
			//定义输出流对象
			PrintStream ps = null;
			//打印输出流
			ps = new PrintStream(new FileOutputStream(file));
			//保存属数据
			ps.println(count);
			//关闭
			ps.close();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}%>
	
	<%
		//文件路径
		String fileName = this.getServletContext().getRealPath("/")+"count.txt";
		//定义File类对象
		File file = new File(fileName);
		//如果是新的session表示允许进行操作
		if(session.isNew()){
			//必须进行线程同步
			synchronized(this){
				count = load(file);
				//自动操作
				count = count.add(new BigInteger("1"));
				save(file,count);
			}
		}
	 %>
	 <h2>您是第<%=count == null?0:count %>位访客</h2>
	</body>

 查看application范围的属性:

页面必须引入:

<%@page import="java.util.*" %>
 
<%
	Enumeration enu = this.getServletContext().getAttributeNames();
	while(enu.hasMoreElements()){
	String name = (String)enu.nextElement();
 %>
 <h2><%=name %>---><%=this.getServletContext().getAttribute(name) %></h2>
 <%} %>
 

 

 

 

 

 

 

分享到:
评论

相关推荐

    JSP_jsp_application实例

    【JSP_jsp_application实例】是一个关于Java Server Pages (JSP) 技术的应用实践案例。JSP是一种在服务器端运行的动态网页技术,它允许开发者使用HTML、XML或者其他标记语言来创建动态网页,同时结合Java代码实现...

    jsp留言版-application

    每当有新的留言,开发者可以调用`application.setAttribute()`方法将留言内容作为键值对存储,键通常是变量名,值则是用户输入的数据。这样,所有的留言都会被持久化,即使用户刷新页面或者关闭浏览器,这些信息也...

    JSP 内置对象:application 对象.pptx

    **JSP内置对象:Application对象** 在Java Server Pages (JSP) 技术中,内置对象是预定义的对象,可以直接在JSP页面中使用,无需显式声明或实例化。这些对象提供了对服务器功能和环境的便捷访问。其中,`...

    jsp利用application统计在线人数的方法

    这可以通过JSP内置对象application实现,具体方法是利用application对象的属性进行共享数据存储,以此来统计所有用户访问的次数。下面,我们详细说明这一方法的关键知识点。 首先,JSP中的application对象是代表...

    jsp利用application统计在线人数的方法.docx

    本文将详细阐述如何利用JSP中的`application`对象来实现在线人数的统计。 `application`对象在JSP中代表的是整个Web应用程序的范围,它的生命周期从Web应用启动到Web应用停止,所有用户都可以访问`application`对象...

    7. jsp内建对象之application

    本文主要探讨的是JSP内建对象之一——`application`对象。 `application`对象代表了Servlet的`javax.servlet.ServletContext`接口,它提供了对整个Web应用程序的访问。这个对象在整个Web应用的生命周期中只存在一个...

    JSP内置对象 session application的应用

    这个实验展示了如何利用JSP的`session`和`application`对象来实现用户状态管理和跨用户数据共享。`session`对象提供了用户特定的持久性,而`application`对象则实现了全局的数据存储。了解和熟练使用这两个对象对于...

    Java Web应用开发 27 课堂案例-使用application读写属性值.docx

    案例中的`applicationdemo1.jsp`文件用于设置属性值。第9行至第10行,使用`application.setAttribute()`方法设置两个属性,即`user`和`pass`,它们分别被赋值为"liuzc"和"liuzc518"。这个方法接受两个参数,第一个...

    jsp实用教程 jsp电子教程 jsp 从入门到精通 jsp

    4. jsp:setProperty和jsp:getProperty:用于设置和获取JavaBean的属性值。 七、MVC模式与JSP 在Web开发中,JSP通常作为View层,与Controller(Servlet或Action)和Model(JavaBean或业务逻辑组件)配合实现MVC架构...

    springboot-jsp示例项目

    - **表达式**(Expressions):`&lt;%=...%&gt;`用于输出变量的值到HTML页面。 - **声明**(Declarations):`!...%&gt;`用来声明变量或方法。 - **JSP标签**(Tags):自定义或标准的JSP标签,如`&lt;c:forEach&gt;`,用于循环遍历...

    jsp实用教程上机实验

    5. **JSP内置对象**:包括request、response、session、application、out、pageContext、page、config等,它们提供了对HTTP请求、响应、会话和应用程序范围内的数据操作的直接访问。 6. **EL(Expression Language...

    JSP学习资料大全(JSP教程)

    JSP提供了九个内置对象,如请求对象(request)、响应对象(response)、会话对象(session)、应用对象(application)等,它们简化了开发过程,无需手动创建。 **4. JSP标签** JSP标准标签库(JSTL)提供了一系列...

    jsp中存取session值简单介绍

    在JSP页面中,我们通常使用page、request、session和application这四个作用域来存储数据,其中session是最常用的,因为它能够跨越多个请求保持数据状态,非常适合存储用户相关的数据。 在JSP页面中使用session来...

    多项式jsp.ppt

    - **application**:全局应用程序对象,跨所有用户共享数据。 - **out**:输出流对象,用于将内容写入HTTP响应。 - **pageContext**:页面上下文对象,提供对当前页面所有对象的访问。 4. **EL(Expression ...

    JSP笔记,JSP笔记

    JSP的使用通常涉及以下几个关键知识点: 1. **JSP指令和脚本元素** - `&lt;% %&gt;`:这是JSP的脚本元素,用于在页面中直接插入Java代码。这些代码会被转换为Servlet的方法,然后在服务器上执行,其结果直接输出到浏览器...

    jsp内置对象及jsp复用

    **JSP内置对象及JSP复用** 在JavaServer Pages(JSP)技术中,内置对象是预定义的、可以直接在页面中使用的对象,无需通过`&lt;jsp:useBean&gt;`标签或者`new`关键字来创建。这些内置对象极大地简化了JSP页面的编程,提供...

    Jsp的经典例题大全

    - `application`:全局应用范围内的对象,可供所有用户共享。 - `out`:用于向客户端输出数据。 - `pageContext`:提供对页面上下文的访问,包含其他对象。 - `exception`:捕获页面抛出的异常。 7. **EL...

    《JSP+Web应用开发案例教程》教学课件_JSP课件_

    JSP提供了九个内置对象,包括请求(request)、响应(response)、会话(session)、应用程序(application)、页面上下文(pageContext)、页面(page)、例外(exception)、输出流(out)和配置(config),它们...

    jsp的四个作用域

    例如,applicationScope中的变量可以被所有用户共用,如果用户甲的操作修改了application中的变量,用户乙访问时得到的是修改后的值。 jsp的四个作用域是mastering jsp技术的基础,正确地选择和使用这些作用域是...

Global site tag (gtag.js) - Google Analytics