前言:
  真的是很久没搞java的web服务开发了, 最近一次搞还是读研的时候, 想来感慨万千. 英雄没落, Eclipse的盟主地位隐隐然有被IntelliJ IDEA超越的趋势. Spring从2.x到现在4.x, 一眨眼已是二代的积淀.
  本文想借助Idea, 来简单搭建一个基于springmvc的web程序, 一为体验, 二为技术积累.

环境配置:
  idea版本为14.0.2, tomcat版本为8.0.23, idea创建的springmvc为4.1.1.RELEASE.
  网上有很多图文并茂的搭建案例, 同时也有很多教学视频. 但我一直觉得: 纸上得来终觉浅,绝知此事要躬行. 权作学习笔记.

项目创建:
  1). idea中新建工程, 选择左侧的Spring项, 再右侧选择Spring MVC标签.
  
  2). 选中"Create project from template"标签, 使用默认模板.
  
  3). 填充Project Name以及Application server.
  
  4). springmvc项目创建完成
  
  其是由maven管理的web服务工程
  其web.xml自动填充为如下内容:

<web-app version="2.4"
  xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   <display-name>Spring MVC Application</display-name>
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>   <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping> </web-app>

  springmvc的DispatcherServlet会自动装载以mvc-dispatcher开头的xml配置文件.
  而mvc-dispatcher-servlet.xml配置文件, 其内容如下所示:

<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"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">   <context:component-scan base-package="com.springapp.mvcaa"/>   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/pages/"/>
    <property name="suffix" value=".jsp"/>
  </bean> </beans>

  这些配置文件和文件目录组织都是自动生成的, 大大降低了开发springmvc的门槛. 体验First, 然后才是熟悉和深入.

服务测试:
  • web应用服务配置
  1). 配置web应用服务, 点击Run->Edit Configurations菜单项
  
  选中tomcat服务器, 其HTTP port和JMX port端口会自动填充
  2). 在Deployment子Tab中, 添加工程的war包
  
  • 代码准备
  springmvc在创建时, 就已经带有了HelloController的sample类.

package com.springapp.mvcaa;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; @Controller
@RequestMapping("/")
public class HelloController {
  @RequestMapping(method = RequestMethod.GET)
  public String printWelcome(ModelMap model) {
    model.addAttribute("message", "Hello world!");
    return "hello";
  }
}

  具体的代码细节, 我们暂且搁置不细讲, 大致为填充key/value对 (message=>Hello World), 然后控制器转到名为hello的jsp文件进行渲染.
  • 浏览器测试
  1). 启动tomcat服务
  
  2). 浏览器访问
  
  遗憾的是出现Unable to compile class for JSP的错误.
  网上寻找资料后知晓, 该问题由maven引入的servlet-api和tomcat自带的servlet-api版本发生了冲突.
  解决方案如下:
  maven的pom文件中, 把servlet-api依赖项的scope改为provided(即参与compile和test, 但不参与package).

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

  改为如下所示:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>servlet-api</artifactId>
  <version>2.5</version>
  <scope>provided</scope>
</dependency>

  再次重启web服务, 浏览器访问, 这次正常.

  

总结:
  idea创建springmvc项目, 还是比较顺利, "Hello World"的sample样例也自动帮我们生成了. 唯一一个坑就是 servlet-api的版本冲突问题. 解决方案对maven的依赖理解可以更深入一步. 下文将讲解基于springmvc的restful项目的搭建, 希望越来越好.

写在最后:
  
如果你觉得这篇文章对你有帮助, 请小小打赏下. 其实我想试试, 看看写博客能否给自己带来一点小小的收益. 无论多少, 都是对楼主一种由衷的肯定.

  

springmvc学习笔记---idea创建springmvc项目的更多相关文章

  1. SpringMVC学习笔记之一(SpringMVC架构及与Mybatis整合)

    一.SpringMVC入门 1.1Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如 ...

  2. springmvc学习笔记--ueditor和springmvc的集成

    前言: 在web开发中, 富文本的编辑器真心很重要. 有电商店铺的打理, 新闻稿/博客文章/论坛帖子的编辑等等, 这种所见即所的编辑方式, 大大方便了非技术人员从事互利网相关的工作. 因为手头有个小项 ...

  3. yii学习笔记--快速创建一个项目

    下载yii框架 下载地址:http://www.yiiframework.com/ 中文网站:http://www.yiichina.com/ 解压文件

  4. SpringMVC学习笔记七:SpringMVC统一异常处理

    发现有位前辈写得比我从书上看到的还详细,我就不写了,前辈的博文地址如下:  http://blog.csdn.net/eson_15/article/details/51731567

  5. 史上最全的SpringMVC学习笔记

    SpringMVC学习笔记---- 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于Spring ...

  6. SpringMVC学习笔记之二(SpringMVC高级参数绑定)

    一.高级参数绑定 1.1 绑定数组 需求:在商品列表页面选中多个商品,然后删除. 需求分析:功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Cont ...

  7. springmvc学习笔记--REST API的异常处理

    前言: 最近使用springmvc写了不少rest api, 觉得真是一个好框架. 之前描述的几篇关于rest api的文章, 其实还是不够完善. 比如当遇到参数缺失, 类型不匹配的情况时, 直接抛出 ...

  8. springmvc学习笔记---面向移动端支持REST API

    前言: springmvc对注解的支持非常灵活和飘逸, 也得web编程少了以往很大一坨配置项. 另一方面移动互联网的到来, 使得REST API变得流行, 甚至成为主流. 因此我们来关注下spring ...

  9. springmvc学习笔记(简介及使用)

    springmvc学习笔记(简介及使用) 工作之余, 回顾了一下springmvc的相关内容, 这次也为后面复习什么的做个标记, 也希望能与大家交流学习, 通过回帖留言等方式表达自己的观点或学习心得. ...

随机推荐

  1. 安装Adobe Dreamweaver CS6 免序列号 官方破解版

    Adobe Dreamweaver CS6 免序列号 官方破解版 Adobe Dreamweaver CS6是世界顶级软件厂商Adobe推出的一套可视化的网页开发工具,Dreamweaver CS6最 ...

  2. 上传项目的更改 info.plist文件

    info.plistOpen AsSource As 添加<key>NSAppTransportSecurity</key>    <dict>        &l ...

  3. 如何在android项目中引用project作为类库引用

    前言: 在我们开发项目的时候,存在很多多个项目共有一个资源.逻辑代码的情况,这种情况一般我们采用在开发项目中导入别的项目作为引用的类库.资源等. 操作: 1.  新建一个android项目common ...

  4. GCJ 2015-Qualification-A Standing Ovation 难度:0

    https://code.google.com/codejam/contest/6224486/dashboard#s=p0 肯定把朋友们都设置在第0位,在第i位前面必须至少有i个人鼓掌,所以答案加上 ...

  5. hdu 4622 Reincarnation

    http://acm.hdu.edu.cn/showproblem.php?pid=4622 用字典树把每一个字符串对应成一个整数 相同的字符串对应到相同的整数上 把所用的串对应的整数放在一个数组里 ...

  6. 纯JS省市区三级联动

    代码下载

  7. matlab:clear,close,clc

    clear 删除工作空间中的项目,释放系统内存 语法: clear clear name clear name1 name2 name3... clear global name clear -reg ...

  8. [安卓]softap

    http://www.cnblogs.com/javawebsoa/archive/2013/05/29/3106758.html

  9. C# Inject

    using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Di ...

  10. win10下安装centOS 7 U盘

    前段时间我把朋友帮忙装的ubuntu15.10给玩坏了=.=虽然后来自己在另一台电脑上成功装了ubuntu16.04和win7双系统,但是...这台电脑也要装个别的系统才比较..不空.所以决定装个ce ...