jsp值application

1,什么是application?

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

No方法类型描述
1String getRealPath(String path)普通得到虚拟目录对应的绝对路径
2public Enumeration getAttributeNames()普通得到所有属性的名称
3public 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>
 <%} %>
 

 

 

 

 

 

 

项目模块提取生成jar包上传到nexus供其他项目使用 项目场景: 微服务项目当中的某一个模块其他项目进行复用,资源管理搭建的有私服 nexus。 问题描述: 如果把功能用到其他项目,代码重复量太大,不想些重复的代码。 原因分析: 如果把这个模块单独提取出来进行复用,至于操作数据库的功能,使用远程调用进行数据库操作,这样就能解决相同模块重复编写的工作。量。 解决方案: 首先对模块代码进行封装提取,把一些用到的参数提取出来,以传参的形式来对参数进行传递。这个需要根据具体的情况进行代码提取,提取之后把这个模块的代码进行打包,打包可以借助开发工具进行打包(记得使用 d 阅读详情

相关推荐

模拟IC设计笔记:拆解一个经典的时钟占空比校正(DCC)电路模块,从理论到SPICE仿真

本文深入解析了时钟占空比校正(DCC)电路在模拟IC设计中的关键作用,特别是在高速ADC应用中。通过晶体管级拆解,详细介绍了基于电荷泵和积分器的模拟反馈型DCC电路设计,包括占空比检测、误差放大与校正执行单元的实现。文章还提供了SPICE仿真验证方法,确保电路在100MHz时钟下的稳定性和性能。

weixin_33725722的博客 428

JSP中使用application对象获取Web应用配置参数(三)

《javeee企业应用实战笔记》:   JSP内置对象application的作用:   1.让多个Jsp、servlet共享数据; &lt;!-- 将i的值自动+1后放入application的变量中 --&gt; &lt;%! int i = 0; %&gt; &lt;% application.setAttribute("counter",String.value...

yxwang0615的专栏 749

告别裸机SPI!用HAL库和CubeMX重新玩转STM32与MAX6675温度传感器

本文详细介绍了如何利用STM32CubeMX和HAL库高效驱动MAX6675温度传感器,实现稳定可靠的热电偶温度监测系统。通过图形化配置SPI接口和封装专用驱动函数,开发者可以快速构建嵌入式温度测量方案,适用于工业控制、物联网设备等多种应用场景。

weixin_42525632的博客 234

JSP中pageContext、request、session、application域中存取值

request->session->application -->   request->session->application -->   存值页面TheValue.jsp   %pageContext.setAttribute("name", "mhl-page");%>   h3>获取pageContext的name值h3>br/>   方法1:%=pageContext.get

1629

实战STM32G0驱动DRV8870/AT8870:PWM+DMA精准调速与H桥衰减模式详解

本文详细介绍了如何使用STM32G0单片机结合DRV8870/AT8870电机驱动芯片实现直流有刷电机的精准控制。重点讲解了PWM与DMA结合实现高效调速的硬件配置与软件驱动方法,并深入剖析了H桥快衰减与慢衰减模式的工作原理及应用场景,为嵌入式电机控制项目提供了完整的实战解决方案。

c7d8e9的博客 595

(一)ANSYS WORKBENCH实践入门

ANSYS-workbench 有限元分析应用基础教程 (张晔)学习笔记

qq_51767372的博客 1万+

jsp内置对象值application对象

使用application 实现计数器效果,在application中保存整型变量num,需要调用application对象的setAttribute方法,以下选项正确的是( AsetAttribute(”counter”,num);)。 application内置对象 <% application.setAttribute("city", "北京");

5759

Qt/C++音视频开发1-vlc解码播放

一、前言 最开始接触视频监控这块的时候,用的就是vlc作为解码的内核,主要是因为vlc使用简单方便,直接传入一个句柄即可,简单几行代码就可以实现一个视频流播放,很适合初学者使用,也推荐初学者用qt+vlc来做播放器,提供的接口还是非常友好的,而且门类特别多,想要获取媒体文件的各种信息比如宽高,设置宽高比等,直接调用接口函数传入参数就能设置。 所有用vlc做视频监控解码的人都会遇到一个问题,那就是鼠标事件被接管拦截了,不能识别鼠标事件,比如双击最大化等,这就很憋屈了,明明很好用的一个东西,怎么突然之间鼠标事件

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 4939

jsp内置对象值application

application对象 application对象是一个特别重要的JSP对象,它存在于服务器的内存空间中,服务器一旦启动,就会自动产生一个application对象,除非服务器被关闭,否则这个application对象将一直保持下去。在application对象的生命周期中,在当前服务器上运行的每一个JSP程序都可以任意存取和这个application对象绑定的参数(或者Java对象)的值...

huayuerli的专栏 219

零基础学习CANoe Panel(17)—— Panel CAPL Function

CANoe内置了几个CAPLFunction,允许我们在CAPL运行时动态的更改Panel控件的属性,比如打开某个panel,禁用某个控件,更改控件颜色等。

蚂蚁小兵 3516

0 基础学前端:100 天拿 offer 实战课(第 16 天)—— JS 数组高级方法:数据处理效率翻倍,代码更简洁

方法名核心作用回调函数返回值返回结果适用场景map数据转换转换后的新元素新数组(长度与原数组一致)格式转换、新增字段、生成 DOM 字符串filter数据筛选true(保留)/false(过滤)新数组(符合条件的元素)筛选符合条件的元素(如未完成计划、今天的评论)reduce数据汇总新的累加值任意类型(数字、对象等)求和、计数、分组、多数据汇总find查找元素true(匹配)/false(不匹配)第一个匹配的元素 /undefined。

苏打水.X的博客 134

JSP/FTL 中获取param、request、session、application中的值

Java JSP(EL表达式) FTL ① <% page.getAttribute("attr") %> ${pageScope .attr} - ② request.getParameter("attr")...

WGH100817的博客 413

2026 拉勾网:JA4+指纹绕过 + sign逆向 + 动态城市参数,月采集10万+数据实战

2026年拉勾网反爬技术全面升级,采用JA4+ TLS指纹识别、动态sign签名等多维度防护体系。本文提供工业级爬虫解决方案,通过curl_cffi模拟浏览器指纹、逆向sign加密算法、动态生成城市参数三大核心技术,实现高效稳定的数据采集。系统采用分层架构设计,包含任务调度、签名生成、多线程引擎等模块,单月可获取10万+条招聘数据。重点解析了JA4+指纹识别原理、传统方法的局限性,以及通过HMAC-SHA256算法逆向sign参数的完整过程。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2394

Servlet(二)— — Servlet中操作session、application;JSP与Servlet传值

注:jsp中的9大内置对象只是在jsp中可以直接使用,在Servlet中要用到out、session、application等等都需要创建。1、操作session对象1.1、获取一个session对象,例:HttpSession session = request.getSession();1.2、给session对象赋值,例:session.setAttribute("name","pkd");...

zl_StepByStep的博客 1711

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Jsp传值方式(乱码问题的解决)

JSP是一项老技术了,但不厌其烦,它是千里之堤。针对html元素的取值。

while(True): print('adorable') 1196

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jsp 隐含对象

1.引言 为了方便程序员对常用对象的访问,在JSP中规范了就中隐含对象,这些对象不用声明可以直接拿来使用,在从JSP转换为servlet时,他们会转换为对应的servlet类型。 out:表示输出,相当于servlet中的PrintWriter,对应的类型是javax.servlet.jsp.JspWriter request:表示请求信息,对用的类型是javax.servlet.http.

limengmeng9006的专栏 604

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

application实现简单的网页计数器--01

  ——  ———————————— index.jsp页面——————————————    —— &lt;%@ page language="java" import="java.util.*" pageEncoding="gbk"%&gt; &lt;% String path = request.getContextPath(); String basePath = request...

jianson_wu 679

JSP-内置对象

内置对象 在_jspServervice方法中 javax.servlet.http.HttpServletRequest request;//setAttribute() getAtribute() javax.servlet.http.HttpServletResponse response;//addCookie() getwriter() javax.servlet.jsp.Page...

u011301372的博客 207

 jsp有哪些内置对象?作用分别是什么?

jsp 有9个内置的对象: 1)request 用户端请求,此请求会包含来自GET/POST请求的参数 2)response 网页传回用户端的回应 3)pageContext 网页的属性是在这里管理 4)session 与请求有关的会话期 5)application servlet正在执行的内容 6)out 用来传送回应的输出 7)config servlet的构架部件 8)page JSP网页本身 9)exception 针对错误网页,未捕捉的例外 四大作用域: pageCon...

yTommy的专栏(加关注,不迷路哦) 244

JSP定制标记——通过pageContext访问Attribute值

Tag9.javapackage tag9;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.JspException;import javax.servlet.jsp.tagext.TagSupport;import java.io.IOException;import java.util.Enumeration;public

Jim Yang 2175

struts框架问题六之从值栈中获取值

  6. 问题六: 在JSP中获取值栈的数据 * 总结几个小问题: > 访问root中数据 不需要# > 访问context其它对象数据 加 # > 如果向root中存入对象的话,优先使用push方法。 > 如果向root中存入集合的话,优先要使用set方法。 * 在OgnlCo...

weixin_30702887的博客 124

jsp中${xxx}代表什么

{user.name}<====>User user = (User)request(搜寻范围).getAttribute(user);其搜寻的范围依次是:page、request、session、application。从当前页面起开始搜寻 user对象,然后获取改对象的name属性值。目的是为了获取{}中指定的对象(参数、对象等)的值。jsp中${}----是EL表达式的常规表示方式。它在jsp+servlet的编程中经常使用。如果未搜索到,即会返回null值。

马不腾的博客 1083

jsp:useBean(application)

[code="java"] CounterBean scope="application" Example Count: [/code] [code="java"] CounterBean scope="application" Example Count: [/code] [code="java"]//====...

junjielkj的专栏 159

如何写JSP

作者:邹爱红,撰写时间:2019年05月28日 Jsp三大指令 <%@ page language="java" import="java.util.*" pageEncoding=" utf-8"%> 当前编程的语言是java,,,,需要导入的语言是java.util 当前编码的格式是utf-8 taglib指令:使用标签库定义显得自定义标签,在jsp页面中启用...

weixin_44600235的博客 2867

Jsp内置对象application之统计浏览网页的次数

<% Object obj = application.getAttribute("count"); if(obj !=null){ Integer sum = (Integer)obj; sum++; application.setAttribute("count",sum); }else{ application.setAttribute("count",...

weixin_30821731的博客 253
上一篇: 高效程序员
下一篇: jsp之阶段性总结
keithJava
博客等级 码龄16年 2粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值