当前位置: 首页 > 面试题库 >

阅读Web应用程序资源

耿珂
2023-03-14
问题内容

背景

开发一个简单的Web应用程序(Eclipse + JBoss + Apache Tomcat)以生成XML文件。

问题

“业务区域”列表针对数据库查询,而“列集群”列表使用所选的“业务区域”项目查询数据库。这两个都是存储外部文本文件的唯一查询。

这些文件当前存储在以下位置:

  • WebContent / META-INF / business-areas.sql
  • WebContent / META-INF / column-clusters.sql

然后将这些用作PreparedStatements的种子。

源代码

读取SQL代码的方法可能类似于:

  private String getSQL() {
    String result = "";

    try {
      BufferedReader br = open( "business-areas.sql" );
      String line = null;

      while( (line = br.readLine()) != null ) {
        result += line;
      }

      br.close();
    }
    catch( Exception e ) {
      e.printStackTrace();
    }

    return result;
  }

问题

我想知道:

  1. 将此类资产存储为Web应用程序的一部分的最佳实践是什么?(也就是说,是META-INF个好位置还是META-INF/resources首选?)
  2. 您会建议使用哪些API读取文件内容?(就是说,我如何编写open方法以便它找到要打开的文件?)

我已经有建立数据库连接的JNDI,但是如果可能的话,宁愿不使用JNDI获取文件的句柄。

相关网站

  • http://blogs.oracle.com/alexismp/entry/web_inf_lib_jar_meta
  • http://www.avajava.com/tutorials/lessons/where-do-i-put-resources-in-my-maven-project.html
  • http://docs.jboss.org/jbossweb/3.0.x/config/context.html
  • http://tomcat.apache.org/tomcat-4.0-doc/catalina/docs/api/org/apache/naming/resources/FileDirContext.html

谢谢!


问题答案:

正确的位置(也是常见的做法)是将它们放置在source目录下,然后将其编译到WEB- INF/classes目录中。我不确定您对@Dave的响应中的“类目录是否易变”,但这是大多数(如果不是全部)Java
Web应用程序存储内容的方式。WEB- INF/classes不只是针对Java类。通常会看到日志属性文件(如log4j),Hibernate和Spring
XML文件存储在source目录下,您可以使用以下方式安全地访问文件:

// in this case, the business-areas.sql is located right under "source/sql" directory
InputStream is = getClass().getClassLoader().getResourceAsStream("sql/business-areas.sql");
BufferedReader br = new BufferedReader(new InputStreamReader(is));

有关使用META-INF的一些有用信息:META-INF
的目的是什么?



 类似资料:
  • 问题内容: 我想阅读我的申请。如何找到其文件名? 问题答案: 如何找到其文件名? 您已经拥有了。也许您想找到绝对文件位置?您可以为此使用。 或者,如果您想直接获得它,请使用。

  • 我需要你的帮助:我必须读卡与RFID阅读器,在我的java应用程序。最后,当我点击按钮“Attributer Numéro RFID”时,它会读取我的RFID阅读器(型号:OCS ACRurw),然后将十六进制值插入jtextfield文本区域。(一开始,jTable会得到我数据库中每个用户的姓和名。这是我项目的代码。如果有人知道我点击“Attributer Numéro RFID”按钮时如何读取

  • 我有一个web应用程序,它将从jar文件动态加载其资源。 我必须如何重新编写加载和注册资源并启动服务器的主类,以便它在web应用程序内部工作? 我目前定义了一个,它在标记为的方法中加载资源。虽然这是有效的,但它会随着每个请求初始化。 我尝试将添加到应用程序中,但这导致了错误: 我的做法是完全错误的吗?或者如何创建这样一个系统,作为可部署的war运行? *编辑* 通过使用ServletContext

  • 本章将教您如何使用Maven管理基于Web的项目。 在这里,您将学习如何创建/构建/部署和运行Web应用程序。 创建Web应用程序 要创建一个简单的Java Web应用程序,我们将使用maven-archetype-webapp插件。 所以,让我们打开命令控制台,转到C:\MVN目录并执行以下mvn命令。 C:\MVN>mvn archetype:generate -DgroupId = com

  • 问题内容: 在Glassfish 4上部署“ myapp.war”之前,我必须 创建jdbc连接池(/WEB-INF/glassfish-resources.xml-> 本身不起作用…从asadmin正常) 为池创建jdbc资源(/WEB-INF/glassfish-resources.xml-> 与上述相同) 创建auth-realm(什么也不会自动,现在使用asadmin) 创建模式(peri

  • 前端篇 收集的前端面试题和答案 前端开发面试题 史上最全的web前端面试题汇总及答案 前端工程师手册 HTTP协议:工作原理 SSL/TLS协议运行机制的概述 协议篇 https 原理 HTTPS 原理解析 HTTPS 的工作原理 socket HTTP与WebSocket的区别 理解OAuth 2.0 后端篇 3年PHPer的面试总结 垃圾回收机制 S.O.L.I.D 面向对象设计 浅谈IOC—