web中ServletContext对象统计网页访问次数


在学习web后端的过程中 对该对象访问次数统计的思考

1、工程创建

先创建一个web工程:Dymanic Web Project :
File->new->other->Web->Dynamic Web Project
Dynamic Web Project创建页面
自定义工程名,并自选定工程存储路径,我设定的工程名为ex_4_2,结果如下:
创建好的web工程
在src中创建一个package:右键src文件夹->new->package:
自己定义一个package的名称:
我设定的package名称为servlet,结果如下图:
创建package
然后在package中创建servlet:
在new->other中搜索:
找到servlet
在创建该文件的窗口中输入对应的文件名后,生成该文件
如此servlet文件创建完成,接下来运行下方的文件内容

2、统计页面访问次数的代码内容

创建好后

package servlet;    //自定义的包
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 说明:用于 统计网站的访问次数
 */
@WebServlet("/visit_counter")
public class visit_counter extends HttpServlet {
	private static final long serialVersionUID = 1L;
     
    public visit_counter() {
        super();
        // TODO Auto-generated constructor stub
    }
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		System.out.println("doGet()函数的使用");

		ServletContext context = this.getServletContext();
		//从context中获取count,并且自增加一
		//取出servletContext对象中的变量count
		Integer count = (Integer) context.getAttribute("count");
		
		if(count == null)
			count = 1;
		else
			count++;
		//覆盖之前count的值
		context.setAttribute("count", count);
		//将count的值显示到页面上
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().write("访问次数:"+count);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

右击该java程序文件,Run As ->Run on Server
在服务器上运行
运行servlet文件

运行成功后:
运行成功
刷新该页面:
每刷新一次,访问次数就会加1
每刷新一次,访问次数就会加1

关闭本地的服务器:重新启动该程序
右键服务器
右键服务器,可关闭当前的服务器,再次操作进行启动服务器,
访问次数再次从1开始记
访问次数再次从1开始记

说明这个ServletContext对象是作为服务器上临时生成的一个对象,在关闭服务器后,并未保存到数据库,若想某个参数一直保持变化最好是将其保存到数据库中避免数据丢失

自己对一个web工程的目录理解:

对一个Dynamic web Project工程的解释,一般servlet(java文件)存储在src文件夹下,在现实中是存储在云服务器上的,而WebContent目录下一般存储jsp文件及与网页文件html后缀的文件有相似之处

附:要实现通过jsp文件跳转到servlet文件,执行相关操作后,再通过servlet文件跳转至相应的jsp文件(即客户端网页向服务器发送请求,服务器响应它的请求,返回信息给客户端的过程)需注意url的指定,404错误多数是因为指定url不正确的原因,而导致找不到文件。

附录:参考文献

这篇文章的作者把打码内容给直接粘贴了出来,有一定基础的能够看懂,但是对于部分初学者来说可能不知道是如何构建的,代码的编写过程有参考他的部分内容
https://blog.csdn.net/Tommy5553/article/details/85237082

  • 5
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿,葱来了-C is coming

老板大气

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值