JSP基础语法之九:application对象,网站计数器(BigInteger)、路径和文件操作、属性


一:网站计数器(BigInteger)

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.math.*"%>
<html>
	<head>
		<title> webSiteCount </title>
	</head>

	<body>  
<%!
	BigInteger count = null;
%>

<%!
	public BigInteger loadBCount(File file)
	{
		try
		{
			if(file.exists())//已有存档文件
			{
				Scanner scan = new Scanner(new FileInputStream(file));
				if(scan.hasNext())
				{
					count = new BigInteger(scan.next());
				}
				scan.close();
			}
			else//新建文件
			{
				count = new BigInteger("0");
				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("/") + "webSiteCount.txt";
	File file = new File(fileName);
	if(session.isNew())
	{
		synchronized(this)
		{
			count = loadBCount(file); //从文件读出
			count = count.add(new BigInter("1")); //自加
			save(file,count);
		}
	}
%>

<h2> 您是第<%=(count==null?0:count)%>位访客 </h2>

	</body>  
</html>



二:获取文件操作所需的路径

	<h3> application.getRealPath("/")结果:<%=application.getRealPath("/")%> </h3>
	<h3> getServletContext().getRealPath("/")结果:<%=getServletContext().getRealPath("/")%> </h3>	
	<h3> this.getServletContext().getRealPath("/")结果:<%=this.getServletContext().getRealPath("/")%> </h3>	




三:文件操作

提交页面

<form action="applicationDemo.jsp" method="post">  
			文件名:<input type="text" name="filename" value="">
			<br>
			文件内容:<textarea name="cont" rows="3" clos="30" >
			</textarea>
      
      <br>
      <input type="submit"  value="提交">  
      <input type="reset"  value="重置">

		</form>  

处理页面

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<html>
	<head>
		<title> applicationDemo </title>
	</head>

	<body>  
<%
	request.setCharacterEncoding("GBK");
	String name = request.getParameter("filename");
	String content = request.getParameter("cont");
	
	String path = this.getServletContext().getRealPath("/")+"writeTo"+"/"+name;

	File file = new File(path);
	
	if(! file.getParentFile().exists())
	{
		file.getParentFile().mkdir();
	}
	
	PrintStream ps = new PrintStream(new FileOutputStream(file));
	ps.println(content);
	ps.close();
%>
	 
<%
	Scanner scan = new Scanner(new FileInputStream(file));
	scan.useDelimiter("\n");
	StringBuffer buf = new StringBuffer();
	while(scan.hasNext())
	{
		buf.append(scan.next()).append("<br>");
	}
	scan.close();
%>

<%=buf%>

	</body>  
</html>




四:获得全部属性键值

<%
	Enumeration enm = this.getServletContext().getAttributeNames();//取得全部属性
	while(enm.hasMoreElements())
	{
		String name = (String)enm.nextElement();
%>
		<h4> 属性:<%=name%> ,值:<%=this.getServletContext().getAttribute(name)%></h4>
<%
	}
%>

















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值