Maven创建一个Servlet项目(五)中

简介: Maven创建一个Servlet项目(五)

二. Maven 创建一个简单 WEB 项目 如Servlet项目


二.一 创建一个war 类型的项目


打开eclipse, 文件–>新建—>其他–>Maven 选择 Maven Project,跳过原型,进入到下一步:

2019102417374011.png

注意,这个时候 packaging 选择的是 war 类型。


二.二 添加web.xml 文件


新创建好 ServletMaven 的 Web 项目之后,发现项目 pom.xml 文件报错了。


20191024173756343.png


显示错误文字是: web.xml is missing and <failOnMissingWebXml> is set to true


我们就需要添加一个 web.xml 文件了。


点击src/main/ 目录下,发现相比较 Jar项目,多了一个 webapp 文件夹。 其实这个 webapp 文件夹就相当于以前的 WebContent 文件夹。


构建标准的 web 目录结构。


在webapp 目录下,创建 一个 META-INF 文件夹 和 WEB-INF 文件夹。在 WEB-INF 文件夹,需要再添加一个web.xml 文件


web.xml 内容为:


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://java.sun.com/xml/ns/javaee"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
  version="2.5">
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>


20191024173839931.png


然后,再更新 Maven 项目, Alt+F5, 点击确定即可。


2019102417382670.png


20191024173850809.png


也可以利用工具完成 ,不需要手动添加。


选中 ServletMaven 项目, 右键 Java EE Tools——>Generate Deployment Descriptor Stub, 系统便会自动创建 web.xml 文件了。


20191024173924970.png


推荐使用工具完成。


二.三 添加 servlet-api 和jsp-api 的依赖


 <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
  </dependencies>


二.四 创建 Servlet 类


在 src/main/java 下,创建一个 HelloServlet 类


package com.yjl;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * @author 岳泽霖
 */
public class HelloServlet extends HttpServlet{
  private static final long serialVersionUID = 1L;
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String message="你好啊,岳泽霖";
    req.setAttribute("message",message);
    req.getRequestDispatcher("/index.jsp").forward(req,resp);
  }
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // TODO 自动生成的方法存根
    doGet(req, resp);
  }
}


二.五 在web.xml 下,添加 servlet的映射


<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.yjl.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>


二.六 在webapp 文件夹下 添加 index.jsp 文件


前台展示 message的值


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>第一个Web类型的Maven 项目</title>
</head>
<body>
  ${message}
</body>
</html>


二.七 在pom.xml 文件里面配置 tomcat 插件


Maven 项目,可以启动 Tomcat, 然后运行项目,不需要再单独将项目部署到 Tomcat上,进行运行了。 也就是说, Maven 内置了Tomcat 。


既然内置了 Tomcat,那么就可以设置在 Maven 内置的Tomcat上的端口号,项目名等信息了,非常方便。


<build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <!--tomcat的插件名, tomcat7-maven-plugin, 用的是tomcat7版本-->
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <port>8026</port>  <!--tomcat的端口号-->
          <path>/maven</path> <!--tomcat的项目名-->
        </configuration>
      </plugin>
    </plugins>
  </build>


老蝴蝶的 JDK版本是 JDK1.8, 注意版本号, tomcat7 用的是2.2, 不是2.0. 2.0版本的话,可以会版本不匹配。


如果Tomcat启动时报错,注意看一下,是否是版本不匹配导致 的。


相关文章
|
7天前
|
Java Apache Maven
Maven 项目文档
在`C:/MVN/consumerBanking`中创建Maven Java项目,使用命令`mvn archetype:generate`生成基础结构。确保`pom.xml`包含`maven-site-plugin`和`maven-project-info-reports-plugin`,版本至少为3.3和2.7,以避免`NoClassDefFoundError`。运行`mvn site`生成文档。
|
13天前
|
Java 编译器 Maven
使用intellij idea搭建SSM架构的maven项目 详细
使用intellij idea搭建SSM架构的maven项目 详细
33 4
|
7天前
|
Java Apache Maven
Maven 项目文档
在`C:/MVN/consumerBanking`,使用`mvn archetype:generate`命令创建Java项目后,确保更新`pom.xml`,添加`maven-site-plugin`和`maven-project-info-reports-plugin`,至少版本3.3和2.7。运行`mvn site`时遇到`NoClassDefFoundError`,需升级`maven-site-plugin`至3.3以上以解决。
|
2天前
|
存储 安全 Java
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
12 4
2024ide构建maven项目是总是卡在解析Maven依赖项目 加速方案
|
12天前
|
Java Apache Maven
Maven 项目文档
在C:/MVN下,使用`mvn archetype:generate`命令创建`consumerBanking`项目,设置相关参数。确保`pom.xml`包含最新`maven-site-plugin`(至少3.3版本)和`maven-project-info-reports-plugin`(至少2.7版本),以避免`NoClassDefFoundError`。若未配置,执行`mvn site`会出错。
|
9天前
|
Java Apache Maven
Maven 项目文档
使用 Maven 创建 `consumerBanking` 项目
|
2天前
|
Java Apache Maven
Maven 项目文档
使用Maven创建`consumerBanking`项目,执行`mvn archetype:generate`命令初始化。确保`pom.xml`包含`maven-site-plugin`至少版本3.3和`maven-project-info-reports-plugin`至少版本2.7,以避免NoClassDefFoundError。升级插件解决文档构建问题。
|
2天前
|
Java Maven
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
9 0
|
2天前
|
缓存 Java Maven
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
8 0
|
7天前
|
Java 数据库连接 Apache
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)
JavaWeb基础第二章(Maven项目与MyBatis 的快速入门与配置)

推荐镜像

更多