第二章 Maven 构建 Java Web项目
本教程中,我们将教给大家如何创建一个基于Spring MVC 的 Maven Web Project。
用到的技术/工具:
1、Eclipse 4.9
2、Maven 3.6.2
3、Tomcat 8.5.34
4、JDK 1.8
5、Spring 4.3.14.RELEASE
2.1 新建Maven Project
打开Eclipse IDE,新建Maven Project,步骤:File->Project->Maven->Maven Project

在此不要勾选“Create a simple project(skip archetype selection)”,勾选了将会跳过模板选择,框架结构就需要自己手动去建了,不要勾选。接下来选择一下项目工程的路径

我们给项目命名“maven_webapp”,如果这个目录不存在,可以自己创建一个,选择这个文件目录


选择模板“maven-archetype-webapp”:

配置:Group Id一般指项目所属的组织机构,Artifact Id指项目名称,Package会根据前面的两项自动生成,接着下一步完成,一个Maven的Web项目就创建完毕了。

创建完成后,可以看一下项目的目录结构:

上图发现了两个问题:
1、 项目目录出现了错误红叉
2、 而且目录结构缺少java和test的结构目录
原因:打开index.jsp文件后,鼠标移到左边的红叉上,提示没有找到javax.servlet.http.HttpServlet ,这是没有Java Build Path 中没有引入Tomcat Server的原因。

2.2 添加Tomcat Server
两种方式:
1、右键->项目名称->Build Path->Configure Build Path->Java Build Path
2、菜单:Project->Properties->Java Build Path

Libraries中并没有Tomcat,所以需要“Add Library...”来添加



现在Libraries中已经添加了Tomcat。再来看一下项目的结构目录中不但红叉的错误消失了,而且增加了java和test的结构目录,让项目结构完整了。

2.3 配置pom.xml
引入依赖包:spring-web、spring-webmvc、commons-logging、servlet、jsp.jstl、taglibs
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gg</groupId>
<artifactId>maven_webapp</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>maven_webapp Maven Webapp</name>
<url>http://maven.apache.org</url> <!-- 公共属性,方便控制,可通过类似于表达式EL一样引用 -->
<properties>
<spring.version>4.3.14.RELEASE</spring.version>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency> <!-- 搭建Springmvc框架只需要引用spring-web,spring-webmvc两个包即可Maven会自动引用他们的依赖包 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<!-- Maven中通过类似与EL表达式一样可以引用上方配置公共属性 -->
<version>${spring.version}</version>
</dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency> <dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency> <dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency> </dependencies>
<build>
<finalName>maven_webapp</finalName>
</build>
</project>
2.4 配置web.xml
设置spring-mvc的配置文件路径/WEB-INF/mvc-dispatcher-servlet.xml,mvc-dispatcher-servlet.xml文件可以在后面创建。
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>Archetype Created Web Application</display-name>
<!-- The front controller of this Spring Web application, responsible for handling all application requests -->
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param>
<!-- 配置springmvc配置文件的加载位置,如果不配置的话默认加载WEB-INF目录下的
[servlet-name]-servlet.xml
这里没配置的话将加载目录下的springDispatcherServlet-servlet.xml
-->
<param-name>contextConfigLocation</param-name>
<!-- 这里需要注意项目中的classpath并不是/src目录下,而是存放编译后的代码的地方,
通常默认为/classes目录下
-->
<!--<param-value>classpath:springmvc-servlet.xml</param-value>-->
<param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</init-param> <load-on-startup>1</load-on-startup>
</servlet> <!-- Map all requests to the DispatcherServlet for handling -->
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<!-- 配置DispatcherServlet需要拦截配置,共有 *.[xx], /*, /, /xx/* 几种方式
这里我们配置为/ 即为拦截所有的资源,后面我们会在springmvc配置文件中单独配置
静态资源让其不拦截
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
2.5 spring-mvc配置
根据上一步web.xml中的spring-mvc的文件路径配置,需要在WEB-INF目录下手动创建一个名字为mvc-dispatcher-servlet.xml的文件,添加配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
> <!-- 开启springmvc的注解 下面就不需要手动注册注解类型的处理器映射器与处理器适配器 -->
<mvc:annotation-driven/> <!-- 扫描注解,配置到需要扫描的包即可 -->
<context:component-scan base-package="com.gg.maven_webapp"></context:component-scan> <!-- 设置静态资源路径,这样就不会被前端控制器拦截处理 -->
<mvc:resources location="/resources/" mapping="/resources/**"></mvc:resources> <!-- 注册视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- jsp中会使用到jstl,所以设置为jstlView -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- 视图路径前缀 -->
<property name="prefix" value="/resources/jsp/" /> <!-- 视图后缀 -->
<property name="suffix" value=".jsp" />
</bean>
</beans>
2.6 创建spring mvc的控制器类
创建一个spring mcv控制器类BaseController:

源代码:BaseController.java
package com.gg.maven_webapp; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView;
import org.springframework.ui.Model;
@Controller
@RequestMapping("/say")
public class BaseController {
@RequestMapping("/hello")
public String hello(ModelAndView modelAndView,Model model,HttpServletRequest request) {
String context = " say hello"; modelAndView.addObject("modelview", "modelview"+context);
model.addAttribute("model", "model"+context);
request.setAttribute("request", "request"+context); System.out.println(context);
return "result";
}
}
代码中的return “result”表示对应的视图result.jsp文件,根据mvc-dispatcher-servlet.xml文件中的配置,视图的文件放置在/webapp/resources/jsp/,对应文件result.jsp。
稍后通过 http://localhost:8080/maven_webapp/say/hello 访问。
2.7 创建jsp视图文件
在对应目录下创建result.jsp视图文件

html源代码:
<html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <body>
<h2>Hello World!</h2>
<body>
<p>modelAndView结果${modelview}</p>
<p>model结果${model }</p>
<p>request结果${request }</p>
</body>
</body>
</html>
2.8 Tomcat运行项目
如果项目中已经添加了Tomcat Server的话,可以 右键->Add And Remove…,将项目添加到启动配置中。


启动运行tomcat,打开浏览器访问:http://127.0.0.1:8080/maven_webapp/say/hello

第二章 Maven 构建 Java Web项目的更多相关文章
- 使用IntelliJ IDEA和Maven构建Java web项目并打包部署
爱编程爱分享,原创文章,转载请注明出处,谢谢! http://www.cnblogs.com/fozero/p/6120375.html 一.背景 现在越来越多的人使用IntelliJ IDEA工具进 ...
- Myeclipse 10 Maven 构建 Java Web 项目
主要介绍如何使用 Myeclipse 10 构建 Maven Web 项目,关于 Maven 的介绍就略过了. 工具/原料 myeclipse apache-maven-3.1.0 方法/步骤 1 下 ...
- 使用Maven构建Java Web项目时,关于jsp中引入js、css文件路径问题。
今天有点闲,自己动手搭建一个Java Web项目,遇到jsp中引入js.css文件时路径不正确的问题,于是在网上查阅了很多资料,最终都无法解决问题,于是,上stackoverflow找到了解决方法,这 ...
- Eclipse的maven构建一个web项目,以构建SpringMVC项目为例
http://www.cnblogs.com/javaTest/archive/2012/04/28/2589574.html springmvc demo实例教程源代码下载:http://zuida ...
- [原]Jenkins(七)---jenkins项目编译测试发布由maven构建的web项目
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
- 解决使用maven的java web项目导入后出现的有关问题 -cannot be read or is not a valid ZIP file
解决使用maven的java web项目导入后出现的有关问题 -cannot be read or is not a valid ZIP file 错误问题:虽然查找repository目录下是有 ...
- 使用maven构建一个web项目
使用maven构建一个web项目 首先建立一个maven项目(关于环境配置上节有详细过程): 1)-->右键new,-->project ...
- maven 构建一个web项目
maven已经大型的Java项目的管理工具,其功能非常强大,这里简单总结一下maven构建web项目的过程.本文介绍的是集成环境下的maven构建web项目. 一.准备 1.安装maven. 2.把m ...
- IntelliJ IDEA + Maven创建Java Web项目
1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...
随机推荐
- CPU中断的工作原理,从最底层讲起
前言 中断的概念属于硬件层.虽然我们在进行软件编程时不会直接使用中断,但理解它对我们来说依然重要. 我们在使用线程切换及状态管理.异常处理.硬件与处理器的交互.I/O操作等指令时,中断都在默默的为我们 ...
- 8个SpringBoot精品项目
8个SpringBoot精品项目 https://gitee.com/52itstyle/spring-boot-seckill 秒杀 https://gitee.com/52itstyle/spri ...
- Layui Iframe页面间 方法的相互调用
就是普通的iframe之间方法的调用,只是注意一下src就像 var childWindow = $(window.parent.document).find("iframe[src='/A ...
- Python实现网络图形化界面多人聊天室 - Linux
网络图形化界面多人聊天室 - Linux Windows版本:https://www.cnblogs.com/noonjuan/p/12078524.html 在Python实现网络多人聊天室基础上, ...
- Django 1.11 使用命令makemigrations命令无法执行表修改动作
由于在学习过程中,遇到models模型变动,变动后合并发生问题,故当时做了删除应用文件夹下migrations文件,由于数据库里无较多新数据,故删除后重建,但重建后执行模型合并操作结果为No Chan ...
- 第03组 Beta冲刺(1/4)
队名:不等式方程组 组长博客 作业博客 团队项目进度 组员一:张逸杰(组长) 过去两天完成的任务: 文字/口头描述: 制定了初步的项目计划,并开始学习一些推荐.搜索类算法 GitHub签入纪录: 暂无 ...
- spark基础知识一
1. spark是什么 Apache Spark™ is a unified analytics engine for large-scale data processing. spark是针对于大规 ...
- 配置keepalived支持nginx高可用
实验环境 序号 主机名 IP地址 1 nginx1 192.168.204.11 2 nginx2 192.168.204.12 安装nginx 安装nginx yum install -y epel ...
- 《Linux就该这么学》培训笔记_ch05_用户身份与文件权限
<Linux就该这么学>培训笔记_ch05_用户身份与文件权限 文章最后会post上书本的笔记照片. 文章主要内容: 用户身份与能力 文件权限与归属 文件的特殊权限 文件的隐藏属性 文件访 ...
- Python【每日一问】29
问: [基础题]:给一个不多于 5 位的正整数,要求:一.求它是几位数,二.逆序印出各位数字[提高题]:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加 ...