Maven快速创建SpringMVC web工程详解
2016-08-11 17:30
417 查看
一、前言
在工作当中,我们有时需要创建一个全新的工程,而基于spring-mvc web的工程较为常见,本文将讲解通过maven来快速创建Spring mvc工程。
二、环境
三、步骤
1、新建maven web工程
1.1、在eclipse左侧空白区点击鼠标右键,然后选中New->Other
1.2、在弹出的新窗口中,选中 Maven Project,然后点击Next>
1.3、Next>
1.4、选中webapp那一项,Next>
1.5、输入Group Id、Artifact Id(package会自动填充),Finish>
1.6、创建好的工程目录结构如下图所示:(JSP页面报错是因为没有引入servlet-api.jar、jsp-api.jar这2个包,引入即可)
1.7、添加src/test/resources资源目录;修改JDK引用为本机安装的1.7;引入tomcat中的servlet-api.jar、jsp-api.jar这2个包
修改后的目录结构如下:
1.8、修改maven工程的编译JDK版本为1.7、打包时的目录、工程属性(选中工程,鼠标右键->Properties)
注意:修改Dynamic Web Module为2.5或3.0时,弹窗下方若报“Cannot change version web module 2.5”异常:
解决方法:
然后,工程目录里会生成WebContent目录,将其目录下的文件替换原webapp目录下的文件,再删除WebContent目录(此处需再次删除Deployment Assembly选项下的部分目录,添加webapp目录)
1.9、修改后的工程目录结构如下
至此,整个maven创建web工程就算完成了。
2、配置Spring MVC工程
基于maven的web工程创建完成后,就需要进行一些spring所需的配置,以构建Spring MVC工程。
1、修改pom.xml文件,引入相关jar包
我们使用spring3.2.17版本,修改后的配置文件如下:
2、添加spring配置文件
在WEB-INF目录下添加配置文件applicationContext.xml、springmvc-servlet.xml,文件内容分别如下:
applicationContext.xml:
springmvc-servlet.xml:
3、修改web.xml文件
基本的文件配置就这些了,spring会默认去加载WEB-INF目录下的文件名为applicationContext.xml、springmvc-servlet.xml的配置文件;下面添加代码:
4、添加代码
UserinfoController.java
index.jsp
result.jsp
至此,文件配置、代码编写完毕,最终的工程目录结构为:
5、启动运行工程
至此,通过maven快速创建SpringMVC web工程就算完成了。当然,这只是一个最基本的工程,更多相关配置使用,如字符编码、资源路径、拦截器、db连接等,限于篇幅,另一篇文章再详讲。
四、可能出现的问题
1、jsp页面报错;(查看没有引入servlet-api.jar、jsp-api.jar)
2、中文登录乱码;(需另配置字符编码,或获取请求参数时指定编码)
3、启动后,找不到前端页面;(查看Deployment Assembly目录下,是否添加了maven包、webapp目录等)
4、登录结果页面不能正确显示结果;(可能是jsp不能解析el表达式,在result.jsp页面添加
5、为啥maven只引用了一个jar?(其实maven会自动将相关的jar也引用进来的,这就是maven的好处之一)
6、其它问题。(请查看eclipse下方Problems窗口里的错误提示信息,对症解决)
五、总结
1、创建maven工程步骤细节较多,且不同的环境会有一些细微差别,需保持细心与耐心。
2、Spring MVC工程有许多默认配置,如:默认的配置文件加载目录,实例的默认注入方式等,同时也提供非常灵活的自定义参数配置。
3、Spring的老版本源代码包中提供例子(包括applicationContext.xml示例配置文件内容等),新版本不再提供例子了。我们可以去官网或者github上下载Spring包,但官网只能下载较新版本,而github可以下载到更多较老版本,且有源码;
官网下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
github下载地址:https://github.com/spring-projects/spring-framework/tags
六、源码
CSDN下载链接:http://download.csdn.net/download/cndmss/9652514
百度云下载链接: http://pan.baidu.com/s/1nuXApZz 密码: fr86
在工作当中,我们有时需要创建一个全新的工程,而基于spring-mvc web的工程较为常见,本文将讲解通过maven来快速创建Spring mvc工程。
二、环境
序号 | 环境 | 版本 |
---|---|---|
1 | IDE | Eclipse Jave EE (Luna) |
2 | JDK | 1.7 |
3 | tomcat | 7.0 |
1、新建maven web工程
1.1、在eclipse左侧空白区点击鼠标右键,然后选中New->Other
1.2、在弹出的新窗口中,选中 Maven Project,然后点击Next>
1.3、Next>
1.4、选中webapp那一项,Next>
1.5、输入Group Id、Artifact Id(package会自动填充),Finish>
1.6、创建好的工程目录结构如下图所示:(JSP页面报错是因为没有引入servlet-api.jar、jsp-api.jar这2个包,引入即可)
1.7、添加src/test/resources资源目录;修改JDK引用为本机安装的1.7;引入tomcat中的servlet-api.jar、jsp-api.jar这2个包
修改后的目录结构如下:
1.8、修改maven工程的编译JDK版本为1.7、打包时的目录、工程属性(选中工程,鼠标右键->Properties)
注意:修改Dynamic Web Module为2.5或3.0时,弹窗下方若报“Cannot change version web module 2.5”异常:
解决方法:
然后,工程目录里会生成WebContent目录,将其目录下的文件替换原webapp目录下的文件,再删除WebContent目录(此处需再次删除Deployment Assembly选项下的部分目录,添加webapp目录)
1.9、修改后的工程目录结构如下
至此,整个maven创建web工程就算完成了。
2、配置Spring MVC工程
基于maven的web工程创建完成后,就需要进行一些spring所需的配置,以构建Spring MVC工程。
1、修改pom.xml文件,引入相关jar包
我们使用spring3.2.17版本,修改后的配置文件如下:
<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.cndmss</groupId> <artifactId>SpringMVCDemo</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>SpringMVCDemo Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <!-- spring mvc需引用的jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>3.2.17.RELEASE</version> </dependency> </dependencies> <build> <finalName>SpringMVCDemo</finalName> </build> </project>
2、添加spring配置文件
在WEB-INF目录下添加配置文件applicationContext.xml、springmvc-servlet.xml,文件内容分别如下:
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> </beans>
springmvc-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <!-- 默认扫描的包路径(扫描整个根目录) --> <context:component-scan base-package="com.cndmss" /> </beans>
3、修改web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="3.0" 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_3_0.xsd"> <!-- 初始化Ioc容器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
基本的文件配置就这些了,spring会默认去加载WEB-INF目录下的文件名为applicationContext.xml、springmvc-servlet.xml的配置文件;下面添加代码:
4、添加代码
UserinfoController.java
package com.cndmss.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; /** * @desc 用户信息操作Controller * * @author xiaojiang * * @date 2016年8月15日 下午2:54:43 * */ @Controller @RequestMapping(value = "/user") public class UserinfoController { /** * 用户登录 * * @param request * @param response * @return */ @RequestMapping(value = "/login") public ModelAndView userLogin(ModelAndView modelAndView,HttpServletRequest request,HttpServletResponse response){ String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("开始执行登录操作," + "用户名:" + username + ",密码:" + password); String login_result = ""; if("xiaojiang".equals(username) && "123456".equals(password)){ login_result = "登录成功"; }else{ login_result = "登录失败"; } modelAndView.addObject("login_result", login_result); modelAndView.setViewName("forward:/WEB-INF/pages/result.jsp"); return modelAndView; } }
index.jsp
<%@ 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>Insert title here</title> </head> <body> <p>spring mvc 测试-登录页</p> <div> <form action="user/login" method="post"> 用户名:<input name="username"/> <br> 密 码:<input name="password"/> <br> <input type="submit" value="登录"/> </form> </div> </body> </html>
result.jsp
<%@ 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>Insert title here</title> </head> <body> <p>spring mvc 测试-登录结果页</p> <div> 登录结果:${login_result} </div> </body> </html>
至此,文件配置、代码编写完毕,最终的工程目录结构为:
5、启动运行工程
至此,通过maven快速创建SpringMVC web工程就算完成了。当然,这只是一个最基本的工程,更多相关配置使用,如字符编码、资源路径、拦截器、db连接等,限于篇幅,另一篇文章再详讲。
四、可能出现的问题
1、jsp页面报错;(查看没有引入servlet-api.jar、jsp-api.jar)
2、中文登录乱码;(需另配置字符编码,或获取请求参数时指定编码)
3、启动后,找不到前端页面;(查看Deployment Assembly目录下,是否添加了maven包、webapp目录等)
4、登录结果页面不能正确显示结果;(可能是jsp不能解析el表达式,在result.jsp页面添加
<%@ page isELIgnored="false" %>)
5、为啥maven只引用了一个jar?(其实maven会自动将相关的jar也引用进来的,这就是maven的好处之一)
6、其它问题。(请查看eclipse下方Problems窗口里的错误提示信息,对症解决)
五、总结
1、创建maven工程步骤细节较多,且不同的环境会有一些细微差别,需保持细心与耐心。
2、Spring MVC工程有许多默认配置,如:默认的配置文件加载目录,实例的默认注入方式等,同时也提供非常灵活的自定义参数配置。
3、Spring的老版本源代码包中提供例子(包括applicationContext.xml示例配置文件内容等),新版本不再提供例子了。我们可以去官网或者github上下载Spring包,但官网只能下载较新版本,而github可以下载到更多较老版本,且有源码;
官网下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/
github下载地址:https://github.com/spring-projects/spring-framework/tags
六、源码
CSDN下载链接:http://download.csdn.net/download/cndmss/9652514
百度云下载链接: http://pan.baidu.com/s/1nuXApZz 密码: fr86
相关文章推荐
- Maven快速创建SpringMVC web工程详解(2)
- IntelliJ IDEA快速创建Maven工程的WEB项目
- 详解eclipse创建maven项目实现动态web工程完整示例
- maven工程创建详解:java、javaweb
- elcipse 中利用maven创建web工程
- maven创建java工程及web工程
- IDEA Community(社区版) 使用Maven创建Web工程 并部署tomcat
- Maven 创建springmvc工程
- eclipse 创建maven 项目 动态web工程完整示例
- myeclipse创建Maven工程及web工程
- Maven控制台创建web工程出错
- eclipse 集成maven插件后使用maven插件创建web工程
- 使用maven在命令行下创建web工程
- 关于Maven中的常见命令,通过命令的方式快速创建一个空的maven工程,将jar包打到maven仓库中
- Maven控制台创建web工程,mvn命令
- MyEclipse 创建基于maven的Web Project工程的若干问题解决方法
- maven创建web工程,并导入到eclipse中
- Maven命令详解 模块导入 MyEclipse + Maven开发Web工程的详细配置过程
- 关于Maven创建动态 web工程
- maven 创建的工程 或是从Svn上导出的maven工程不能被eclipse识别为web工程