`
congjl2002
  • 浏览: 215824 次
  • 性别: Icon_minigender_1
  • 来自: 辽宁
社区版块
存档分类
最新评论

缓存和资源文件路径

阅读更多
一、servlet的service()方法
回顾Servlet的生命周期,通过查看源代码了解init()及service()方法的设计思想;
问:
(1)我们在编写Servlet类时,为什么不覆盖它的service()方法,通常覆盖doGet()之类的方法?
如果用覆盖servlet的service()方法,那么servlet在处理表单提交时,就会去调用父类的service方法,父类的service方法会根据提交的方式做出判断,然后调用对应的doXX()方法。如果是覆盖doGet()之类的方法,servlet就会根据提交的方式直接调用相应的doXX()方法。
(2)如果要覆盖service()方法,通常会覆盖下列方法中的哪一个方法?
service(HttpServletRequest req, HttpServletResponse resp)
service(ServletRequest req, ServletResponse res)

二、浏览器缓存内幕及解决方案
在下面三种不同的情况下,浏览器的缓存情况不同:
1).Servlet没有覆盖getLastModified方法,响应消息中无LastModified头字段,在浏览器缓存的文档无“上次修改时间”.
2).有getLastModified方法,响应消息中有LastModified头字段,但返回时间晚于缓存文档“上次修改时间”
3).有getLastModified方法,响应消息中有LastModified头字段,但返回时间早于等于缓存文档“上次修改时间”
后退、前进、转到(手工输入后按回车) 通过超链接访问 刷新
1)不发请求,直接使用缓存 发出请求 发出请求
2)不发请求,直接使用缓存 不发请求 发出请求,返回200
3)不发请求,直接使用缓存 不发请求 发出请求,返回304
2、如何禁止Servlet的缓存?(张老师JavaWeb书第236页)
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
3、如何禁止JSP页面的缓存?
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">

4、如何禁止静态页面的缓存?(张老师JavaWeb书第238页)
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
静态页面被禁止后,刷新浏览器返回304
JSP页面被禁止后,刷新浏览器返回200
三、初始化参数
1、相对于单个Servlet:P178
在web.xml文件中配置
<servlet>
<servlet-name>ReadInitParam</servlet-name>
<servlet-class>servlet.ReadInitParam</servlet-class>
<init-param>
  <param-name>dbname</param-name>
  <param-value>mysql</param-value>
</init-param>
</servlet>
访问方法为:
getServletConfig().getInitParameter("keyname")
2、相对于整个Web应用程序:P201
在web.xml文件中配置
<context-param>
  <param-name>company</param-name>
  <param-value>itcast.cn</param-value>
</context-param>
访问方法为:
getServletContext().getInitParameter("keyname")

四、资源文件(.properties)的访问
1、使用Properties类来访问:
Properties prop = new Properties();

//方法一
//InputStream is = new FileInputStream("db.properties");
//db.properties要放在启动tomcat的bin目录中

//方法二
//InputStream is = new FileInputStream(this.getServletContext().getRealPath("/") + "WEB-INF/classes/config/db.properties");
//db.properties可以放在web工程的任意目录

//方法三
//InputStream is = this.getServletContext().getResourceAsStream("WEB-INF/classes/config/db.properties");
//db.properties可以放在web工程的任意目录,相对于工程的上下文路径

//方法四
//InputStream is = this.getClass().getClassLoader().getResourceAsStream("/config/db.properties");
InputStream is = ReadProp.class.getClassLoader().getResourceAsStream("/config/db.properties");
//db.properties只能放在类路径即classes目录中
prop.load(is);
is.close();
//读取key对应的value
prop.getProperty("keyname")

2、使用ResourceBundle类来访问:
//也只能放在类路径下
ResourceBundle rb = ResourceBundle.getBundle("config/db");
//读取key对应的value
rb.getString("keyname")
分享到:
评论

相关推荐

    unity 热更新Addressables修改资源缓存路径(下载路径).zip

    6. **测试与验证**:发布后,测试游戏以确认资源是否正确地下载到自定义的缓存路径,并且能够正常加载和运行。 通过以上步骤,我们成功地改变了Unity Addressables的资源缓存路径,实现了对下载路径的控制。这不仅...

    chrome文件缓存路径设置工具v3

    通过正确使用Chrome文件缓存路径设置工具v3,用户不仅可以优化系统性能,还能更好地管理浏览器的临时文件和缓存,提升浏览体验。同时,定期清理和整理缓存目录也是维护系统健康的重要步骤,可以防止浏览器运行缓慢,...

    android文件路径详解

    了解并熟练掌握Android文件路径和相关的存储机制,对于开发健壮且用户体验良好的应用至关重要。在实际开发中,还需要根据具体需求和Android版本选择合适的方法来处理文件。通过FilePathTest这个文件,可以进一步实践...

    缓存文件提取器-查看ie中缓存的资源

    本文将详细介绍这款名为“ie缓存文件提取”的绿色软件,以及如何利用它来查看和管理IE浏览器的缓存资源。 **一、什么是缓存及缓存文件** 1. **缓存的基本概念**:缓存是一种临时存储机制,用于存放频繁访问的数据...

    nginx静态文件缓存的解决方案1

    ### 第三步:配置 proxy_pass 跳转的 location 中的静态文件路径 确保 Nginx 知道静态文件的存储位置,可以在相应 `location` 中使用 `root` 指令: ```nginx location ~ .*\.(html)$ { default_type 'text/html'...

    获得指定的url在缓存中的路径(3KB)

    3. `GetURLlocalFileName.vbp` - 这是Visual Basic项目的文件,包含项目的基本信息和引用的库,很可能这个项目就是用来获取URL本地缓存路径的。 4. `GetURLlocalFileName.vbw` - 这是Visual Basic工作空间文件,保存...

    IE缓存文件提取器

    IE缓存是浏览器为了提高网页加载速度而存储的临时文件,这些文件通常包含了用户在浏览网页时所访问的各种资源。 ### IE缓存的工作原理 当用户访问一个网页时,IE会将页面上的图片、脚本、样式表等静态内容保存在...

    缓存文件万能提取器,可以闪电任意提取IE缓存中的文件至指定文件夹

    在互联网浏览过程中,浏览器为了提高加载速度和用户体验,会将网页上的部分资源如图片、JavaScript、CSS文件等暂时存储在本地的缓存目录中。这款工具的核心功能就是能够快速地从这个缓存中提取出用户感兴趣的文件,...

    处理文件缓存的方法

    根据"描述",我们可以编写一个程序,接受要清除的文件夹路径作为输入,然后删除其中的缓存文件。在编程中,这通常涉及文件操作,如`delete()`或`remove()`函数。需要注意的是,清除缓存时应谨慎操作,避免误删重要...

    Glide如何访问已经下载到本地的缓存文件(图片地址若过期自己选别的)

    在提供的压缩包文件`GlideHowToSaveFileWithMD5`中,可能包含了实现上述功能的完整代码示例、测试用例或者其他相关的资源。研究这些文件可以帮助更深入地理解如何自定义Glide的缓存行为,以及如何访问本地缓存的图片...

    UE4C盘缓存路径转移设置教程

    通过以上步骤,您可以成功地将UE4的缓存路径转移到其他磁盘分区,从而有效地利用更大的磁盘空间来存储缓存文件,减轻C盘的压力,同时提高工作效率。这对于那些硬盘容量有限但又希望充分利用UE4进行高质量游戏开发的...

    ThinkPHP文件缓存类

    - 使用文件缓存时,确保缓存路径具有写入权限。 - 考虑定期清理或设置过期时间,避免缓存文件过多导致磁盘空间问题。 - 在多进程环境下,文件缓存可能面临并发问题,需注意同步机制。 综上所述,ThinkPHP的文件缓存...

    ThinkPHP文件缓存类.zip

    ThinkPHP的文件缓存类在设计时考虑了缓存的更新策略,如LRU(Least Recently Used)最近最少使用,或者根据时间戳判断是否过期等,确保缓存数据的有效性和资源利用率。 通过使用ThinkPHP的文件缓存类,开发者可以...

    nginx TOMCAT 文件下载 上传 进度条 缓存

    标题 "nginx TOMCAT 文件下载 上传 进度条 缓存" 涉及到的是在Web服务器场景中,如何利用Nginx和Tomcat处理文件的下载、上传以及实现进度条显示和缓存优化的技术点。下面将详细介绍这些内容。 1. **Nginx与Tomcat的...

    获得指定的url在缓存中的路径(3KB)...

    在VB(Visual Basic)编程中,获取指定URL在缓存中的路径是一项常见的任务,这主要涉及到网络编程和文件系统操作。在标题“获得指定的url在缓存中的路径(3KB)”中,我们可以理解为这是一个小巧但功能强大的程序,它...

    禁用2008R2文件系统缓存

    然而,在某些特定情况下,例如服务器处理大量小文件或者内存资源紧张时,过大的文件系统缓存可能会导致内存耗尽,从而影响其他关键服务的运行。因此,“禁用2008R2文件系统缓存”是一个针对这种情况的解决方案。 ...

    有用的资源文件有用的资源文件

    1. **文件路径管理**:确保正确地引用和加载资源文件,考虑到相对路径和绝对路径的区别,以及在不同环境下的适应性。 2. **文件编码**:理解不同文件可能采用的不同字符编码,如ASCII、UTF-8、GBK等,避免编码不...

    强悍的IE缓存文件提取器

    1. **故障排查**:当网页加载异常时,可以检查IE缓存,找出可能存在问题的资源文件。 2. **数据恢复**:如果意外丢失了从网络下载的重要文件,可以从缓存中找回。 3. **数字取证**:在法律调查中,分析IE缓存有助...

    如何清除垃圾文件和缓存文.pdf

    ### 如何清除垃圾文件和缓存的关键知识点 #### 一、理解垃圾文件与缓存的重要性 在日常使用计算机的过程中,由于频繁的操作与网络活动,电脑内部会产生大量的垃圾文件和缓存数据。这些文件不仅占用宝贵的硬盘空间,...

    系统文件路径更改工具

    通过系统文件路径更改工具,用户可以根据自己的需求和硬盘布局优化系统文件的存储位置,从而提高电脑的性能和存储效率。这种自定义设置对于那些有大量文件需要管理或希望优化硬盘空间的用户尤其有用。

Global site tag (gtag.js) - Google Analytics