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

带有Maven和Eclipse的Java动态Web项目

鄢英哲
2023-03-14
问题内容

关于使用Maven和Eclipse创建Java Web应用程序,我有几个问题:

  • 如何使用Maven创建带有servlet,jsp和其他类的Java Web项目?
  • 它创建一个简单的目录结构,src-> main-> java。我在哪里以及如何放置web-inf文件夹?
  • 我是否需要将jdbc-drivers手动添加到web-inf / lib内的文件夹中,还是可以指出依赖项?
  • 有没有办法用junit测试servlet?

问题答案:

哇,一次有很多问题。我承认使用Maven和Eclipse设置webapp项目可能很棘手,因此我将尽力回答所有这些问题。

使用Maven创建Web应用程序项目

如何使用Servlet JSP和Maven其他类创建Java Web项目?它创建一个简单的目录结构,src-> main-> java。

创建Java
Web项目时,最终产品应该是WAR或EAR文件。WAR和EAR文件是具有特定结构的JAR文件,可以将其部署在应用程序服务器或Servlet容器中。

如前所述,为Web应用程序设置Maven项目的最简单方法是使用原型:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp

如果我们使用此原型创建项目,则将生成一个简单的目录结构和pom.xml。该项目遵循您提到的标准Maven目录布局,并带有/src/main/java//src/test/java等等。Maven使用war:war目标从该结构生成WAR文件。

请注意,此原型适用于非常简单(过时)的Web应用程序,但这是最佳的起点。您可能要放弃web.xml文件,并创建一个支持Servlet 3.0的新文件。

WEB-INF位置

我在哪里以及如何放置web-inf文件夹?

默认情况下,Maven期望应放在WAR文件根目录中的资源(例如图像,html页面和WEB-INF目录)驻留在中/src/main/webapp/
因此,WEB-INF文件夹应位于/src/main/webapp/WEB-INF/如果您使用maven-archetype-
webapp,则会自动创建此目录以及一个示例web.xml文件。

Eclipse整合

您在问题标题中提到了Eclipse,确实可以使用m2eclipse插件在Eclipse中开发Mavenized
Web应用程序。Eclipse通过WTP(Web工具平台)对Web应用程序提供了良好的支持。

尽管Internet上有许多指南(错误地)都推荐这样做,但是 您不应使用mvn eclipse:eclipse命令来创建Eclipse项目
。该插件只能为非常老的Eclipse版本生成WTP项目(最大为WTP 2.0)。相反,请按此处所述使用m2eclipse插件。

依存关系

我是否需要将jdbc-drivers手动添加到web-inf / lib内的文件夹中,还是可以指出依赖项?

无需手动执行此操作,因为Maven的关键优势之一是依赖管理。如果在pom.xml中添加具有 编译运行时
范围的依赖项,则JAR文件将自动包含在WEB-INF/lib/WAR文件的目录中。例如,要添加Postgresql
JDBC驱动程序依赖项,请将其添加到pom.xml中:

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.1-901.jdbc4</version>
</dependency>

由于未指定范围,因此Maven将假定它在默认范围 compile中 。结果是Maven将包含WEB- INF/lib/postgresql-9.1-901.jdbc4.jar在WAR文件中。

测试中

有没有办法用junit测试servlet?

参考文献

  • 带有JSF 2.0,Glassfish 3,Maven,SVN和Eclipse的Hello World。


 类似资料:
  • 关于使用Maven和Eclipse创建Java Web应用程序,我有几个问题: 如何使用Servlet、jsp和其他Maven类创建Java web项目? 它创建了一个简单的目录结构,src->main->java。我如何将web-inf文件夹放在哪里? 我需要手动将jdbc-drivers添加到web-inf/lib中的文件夹中吗?还是只需要指出依赖关系就可以了? 有没有用JUnit测试serv

  • 问题内容: 摘要 在Eclipse中,当我“ Maven->更新项目配置”时,“ Maven依赖关系”从项目的“部署程序集”中删除。 细节 我从一个预先配置的Eclipse项目开始:File-> New-> Dynamic Web Project-> JavaServer Face v2.0 Project。为了删除“魔术”,然后将其转换为Maven项目:配置->转换为Maven项目。 pom.x

  • 问题内容: 我的问题是,即使将“ Deployment Assembly”设置为包括maven依赖项,这也导致找不到我的类,我也不知道该怎么办。 我只是注意到该类,因为其他类似乎已包含在我的软件包中。 我的文件pom.xml 我的文件web.xml 问题答案: 出现此问题的原因可能是: 某些库版本不匹配(例如,要编译的Java版本!= Web应用程序服务器上的Java版本)。 部署期间不包括必需的

  • 为了实现这一点,我遵循了简单的步骤。将Tomcat和Maven与eclipse集成。1.打开eclipse。新的-

  • 通过右键单击项目并选择“配置”,我将一个动态web项目转换为一个maven项目- 然后,右键点击项目- 现在所有的JAR和类都可以在Maven依赖项部分中找到。下面是我的项目结构截图。 项目结构 下面是maven dependency部分的屏幕截图。 Maven依赖项部分 但是,我无法导入任何包或类形式的依赖jars到我的任何Java类(例如:HttpServices.java)在src文件夹中。

  • 我目前正在使用WebSphere7.0应用服务器上部署的EAR(带有OpenFaces web项目)体验ClassNotFoundException。EAR的部署没有任何问题,但是当我从web项目(包括在EAR中)访问一个页面时,我会得到ClassNotFoundException(如下所示)。我已经导出了EAR以确保所有内容都在那里并且包含了WAR文件。当我查看WAR文件时,未找到的类包含在WE