创建一个springmvc项目(一)

还是写一个这样的博客吧.

Eclipse:4.3.2-jee.

tomcat:7

Maven:3-2-1

开始:

1  创建一个 Maven Project

2 选择一个工程路径

3 Maven插件带有很多的模板,这里选择 quickstart

4 输入Group Id,Artifact Id,Version .Maven会通过这几个预创建你的代码目录,所以注意下.

5 Maven项目到这里就创建好了,目录如下

6 从上图看见项目初始引入的jdk是1.5的,这里我们改成1.6的.

7 已经变为1.6了

8 quickstart为我们创建是非web项目,所以我们要在这里转换一下,

Project - properties - Project Facts - Convert to facted form.

9 勾选两项, Dynamic Web Module 3.0 ,Java 1.6 ,转换之.

10 转换后发现工程会自动创建WebContent目录.Maven工程里不需要这个目录.

我们将WebContent下的META-INF和WEB-INFO文件夹拷贝到src的main目录下(先复制过去,再删除原来的),

这是因为Maven会检测这个目录下的web.xml,如果不在这里会报错.

11 WEB-INFO目录结构如下,不够的补充之.

在添加两个xml文件和一个jsp文件.

web.xml:这个一会下面在详细解释(这个已经是我添加好之后了的.)

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
 3   <display-name>dubbo-provider</display-name>
 4   <context-param>
 5     <param-name>contextConfigLocation</param-name>
 6     <param-value>
 7             /WEB-INF/springmvc-servlet.xml
 8         </param-value>
 9   </context-param>
10   <listener>
11     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
12   </listener>
13           <filter>
14                 <filter-name>encodingFilter</filter-name>
15                     <filter-class>
16                         org.springframework.web.filter.CharacterEncodingFilter
17                     </filter-class>
18                 <init-param>
19                     <param-name>encoding</param-name>
20                     <param-value>UTF-8</param-value>
21                 </init-param>
22                 <init-param>
23                     <param-name>forceEncoding</param-name>
24                     <param-value>false</param-value>
25                </init-param>
26         </filter>
27         <filter-mapping>
28                 <filter-name>encodingFilter</filter-name>
29                 <url-pattern>/*</url-pattern>
30        </filter-mapping>
31   <servlet>
32     <servlet-name>springmvc</servlet-name>
33     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
34     <load-on-startup>1</load-on-startup>
35   </servlet>
36   <servlet-mapping>
37     <servlet-name>springmvc</servlet-name>
38     <url-pattern>/</url-pattern>
39   </servlet-mapping>
40 </web-app>

springmvc-servlet.xml:

 1 <beans xmlns="http://www.springframework.org/schema/beans"
 2        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3        xmlns:context="http://www.springframework.org/schema/context"
 4        xsi:schemaLocation="http://www.springframework.org/schema/beans
 5         http://www.springframework.org/schema/beans/spring-beans.xsd
 6         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
 7
 8     <context:component-scan base-package="com.demo.springmvc.controller"/>
 9
10     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
11         <property name="prefix" value="/WEB-INF/pages/"/>
12         <property name="suffix" value=".jsp"/>
13     </bean>
14
15 </beans>

hello.jsp:

1 <html>
2 <body>
3     <h1>${msg}</h1>
4 </body>
5 </html>

这里我要特别强调一下:

springmvc对springmvc的配置文件命令有一个默认的规则,

会取web.xml文件里的DispatchperServlet的servletname 为前缀,在加上"-servlet.xml"结尾.

web.xml的内容比较简单,就是一个spring默认的监听器和一个springmvc的servlet.

再在com.demo.springmvc下创建controller的package.并创建一个HemoController.Java.

HomeController.java:

 1 package com.demo.springmvc.controller;
 2
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.ui.ModelMap;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.RequestMethod;
 7
 8 @Controller
 9 public class HelloController {
10
11     @RequestMapping(value = "/hello", method = RequestMethod.GET)
12     public String hello(ModelMap model) {
13         model.addAttribute("msg", "Hello world!");
14         return "hello";
15     }
16 }

我们在controller 只需配置为 /hello 即可.

这里说一下路径问题:

这里<property name="prefix" value="/WEB-INF/pages/"/>设置为/WEB-INF/pages/

springmvc访问时 将会自动将/WEB-INF/pages/插入到我们在浏览器上输入的UML.

比如我们要浏览hello.jsp页面,我们应该在浏览器输入 : http://localhost:8080/springmvc/hello ,

这个地址会被一分为二 ,

第一部分为http://localhost:8080/springmvc

第二部分为/hello   ,这个为我们的jsp页面在tomcat下发布路径相对于/WEB-INF/pages/的路径.(hello.jsp的在tomcat下的发布路径是 /springmvc/WEB-INF/pages/hello.jsp)

其中第一部分 http://localhost:8080/springmvc 为 ip地址+端口+项目context  ,

这时springmvc会在 http://localhost:8080/springmvc 后面自动加上/WEB-INF/pages/ ,然后在加上第二部分.

在jsp页面上:

如果我们要在jsp上用form表单提交到hello.jsp(加上从页面A提交过来).

这时页面A的form应为:

<form action="/springmvc/hello" method="post">

"/springmvc/hello" 这样的形式,即 项目的context + 页面在发布路径下相对 /WEB-INF/pages/ 的路径.

<form action="/springmvc/hello" method="post">提交对应的controller 路径注解对应 为@RequestMapping(value = "/hello", method = RequestMethod.POST)即可.

12 现在我们下载springmvc需要的依赖包.

打开中央库,输入spring.

13 找到 Spring Web MVC.

14 选择一个 ,我选的是最新的.

15 拷贝之.

16  再在pom.xml中加入如下代码,限定Maven的编译版本:

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>${project.build.sourceEncoding}   </encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

17 最后得到的pom.xml文件夹如下:

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 3     <modelVersion>4.0.0</modelVersion>
 4
 5     <groupId>com.demo</groupId>
 6     <artifactId>springmvc</artifactId>
 7     <version>0.0.1-SNAPSHOT</version>
 8     <packaging>jar</packaging>
 9
10     <name>springmvc</name>
11     <url>http://maven.apache.org</url>
12
13     <properties>
14         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
15     </properties>
16
17     <dependencies>
18         <dependency>
19             <groupId>org.springframework</groupId>
20             <artifactId>spring-webmvc</artifactId>
21             <version>4.1.0.RELEASE</version>
22         </dependency>
23         <dependency>
24             <groupId>junit</groupId>
25             <artifactId>junit</artifactId>
26             <version>3.8.1</version>
27             <scope>test</scope>
28         </dependency>
29     </dependencies>
30     <build>
31         <plugins>
32             <plugin>
33                 <groupId>org.apache.maven.plugins</groupId>
34                 <artifactId>maven-compiler-plugin</artifactId>
35                 <version>2.0.2</version>
36                 <configuration>
37                     <source>1.6</source>
38                     <target>1.6</target>
39                     <encoding>${project.build.sourceEncoding}</encoding>
40                 </configuration>
41             </plugin>
42         </plugins>
43     </build>
44 </project>

好了,现在就可以编译项目了. Project-run as -maven install, 编译成功.

18 现在来配置一下发布目录.添加webapp目录和Maven依赖包.

19 得到这样一个发布结构.

至此,就完成了.

20 .创建Server,将项目添加至tomcat,publish一下,可以去webapps或者相应目录看一下发布后的结构,这是合理的web包结构.

运行之.

打开浏览器输入:http://localhost:8080/springmvc/hello

成功,ok.

PS:今早8点30到公司,自己先花十分钟把边创建项目,边截图.一直搞到现在,比较匆忙, 可能不太细.

代码已经上传 下载

时间: 2024-10-02 05:12:48

创建一个springmvc项目(一)的相关文章

创建一个android项目与创建一个android虚拟设备

创建一个android项目 Navigator面板区点击右键-->New-->Android Application Project,打开New Android Applicaton窗口.输入Application Name(应用程序的名称,就是显示在手机上的名称,比如:微信),Project Name(项目名称,一般显示在eclipse上的项目名称),Package Name(指定它的java包名,比如:com.qq.weixin).Minimum Required SDK表示运行应用程序所

windows系统下跨平台开发环境的搭建(cordova)+创建一个android项目

目的:在windows系统下,搭建跨平台的开发环境(cordova)创建一个安卓项目 前提:安装有java Jdk 1.8以上 Android SDK 23以上 1.安装node.js ,选择对应的版本下载安装,没什么好说的 官方网址:http://nodejs.cn/ 2.测试安装是否成功 win+r 键,打开运行窗口,输入cmd,然后确定,打开命令行窗口 输入node  -v 输出版本号,说明node.js安装成功,否则请查找原因,或者重新安装 输入npm -v 输出版本号说明npm可以使用

eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

在eclipse中创建一个Web项目的时候,虽然有web.xml生成,但是再添加Servlet类文件的时候总是看不见web.xml的更新,所以异常的郁闷!上网查了查,原来我们在创建Web项目的时候,会弹出一个对话框,“Dynamic web module version”这个选项默认成了3.0,按照老规范,应该是在eclipse的WebContent \ WEB-INF \ 目录下创建web.xml的.而新规范是可以不用web.xml的,如tomcat 7.0就支持新规范,这样相关的servle

《android 1: 创建一个安卓项目》

创建方式有两种: 通过Eclipse创建 在工具栏上选择New>android>android application project,或者在导航栏上选择file>new>project>android>android application project. 在出现的窗口上填上与选择你的 Application Name .Project Name.Package Name.Minimum Required SDK.Target SDK.Compile With.Th

创建一个Eclipse项目【Create a Project with Eclipse】

最近一个问题很困扰我,今天则得到了答案,也意味着我该选择了. 不知道大家有没有遇到过这样的情况,我是上年刚毕业,大四时进行过java培训,12年9月-13年4月,在这之前已经自学过java.7月份时进入一家公司工作,今年3月份辞职,4月份找到工作,来上班了.一开始就不太喜欢公司氛围,前台,hr,态度什么的都不太好,工作环境也极像客服部,整天电话不断,讨论声不断,第一个星期真是煎熬,去了两三天之后有辞职的想法,但是后面想想还是算了,公司待遇还可以. 但是进入到公司后leader让学PHP,学PHP

Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目

原文:Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目 前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS 来创建一个简单的项目,来看看项目的构成是怎样的,与C#,XAML 的项目有哪些异同. 首先我们在Visual Studio 2013中选择模板 -> JavaScript -> Windows 应用商店来创建一个空白应

创建一个Vue项目

Vue.js不支持IE8及其以下版本,因为Vue.js使用了IE8不能模拟的ECMAScript5特性. 在用Vue.js构建大型应用时推荐使用NPM安装,Npm能很好地和诸如Webpack或Browserify模块打包器配合使用.Vue.js也提供配套工具来开发单文件组件. vue的安装依赖于node.js,要确保你的计算机上已安装过node.js.可以进入cmd编辑器,输入node -v进行查看.node尽量要用一些新的版本,否则后续安装会提示node版本过低.去node官网下个新版node

Android官方入门文档[1]创建一个Android项目

Android官方入门文档[1]创建一个Android项目 创建一个Android项目 这节课教你1.创建与Android Studio中的一个项目2.创建使用命令行工具项目 你也应该阅读?管理项目 Creating an Android Project This lesson teaches you to1.Create a Project with Android Studio2.Create a Project with Command Line Tools You should also

IntelliJ IDEA 中配置Maven以及创建一个Web项目

IntelliJ IDEA 中配置Maven Step.1 File-Settings Step.2 使用Maven创建一个Web项目 Step.1 File-New-Project Step.2