[java][47]maven + SpringMVC入门 Demo

1. 建立maven web project

右键 new -> other -> 





finish后,新建了工程,但上面有红叉



2. 添加servlet,以解决上面的红叉

我们需要添加Servlet依赖。到Maven中央仓库获取。http://www.mvnrepository.com/,搜索Servlet:


选择3.1.0 -> 复制下面代码:


代码如下:

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

粘贴到pom.xml,保存:


右键工程 Maven -> Update Project

  ok,红叉消失


3. 我的目的是学习@RequestMapping @ResponseBody 和 @RequestBody 注解的用法,查询到需要通过Maven添加2个包,其他的依赖包会自动下载。

1)修改pom.xml,添加如下代码:

  <dependency>  
       <groupId>org.springframework</groupId>  
       <artifactId>spring-webmvc</artifactId>  
       <version>3.1.2.RELEASE</version>  
       <type>jar</type>  
       <scope>compile</scope>  
</dependency>  
	
<dependency>  
        <groupId>org.codehaus.jackson</groupId>  
        <artifactId>jackson-mapper-asl</artifactId>  
        <version>1.9.8</version>  
        <type>jar</type>  
        <scope>compile</scope>  
</dependency>

右键工程 Maven -> Update Project。

工程中的包如下:



2)修改如下3个文件,注意建立的目录树结构,需要完全一致。

2.1) web.xml是自带的,其内容 用 如下代码代替:

web.xml

<!DOCTYPE web-app PUBLIC  
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
 "http://java.sun.com/dtd/web-app_2_3.dtd" >  
  
<web-app>  
  
  <!-- ================spring mvc 适配器================ -->  
    <servlet>  
        <servlet-name>springMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath*:/applicationContext/application_spring_mvc.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>springMVC</servlet-name>  
        <url-pattern>/</url-pattern>  
    </servlet-mapping>  
    
  <!-- ================================================== -->  
    <servlet-mapping>          
        <servlet-name>default</servlet-name>         
        <url-pattern>*.html</url-pattern>        
    </servlet-mapping>     
  
    <welcome-file-list>  
        <welcome-file>index.html</welcome-file>  
    </welcome-file-list>  
</web-app>  

2.2)在src的main下面建立3层目录结构,二级目录mavenDemo的名字与工程名一致

HelloController.java代码:

package mavenDemo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/")

public class HelloController
{
	@RequestMapping(value = "/something", method = RequestMethod.GET)
	@ResponseBody
	public String helloWorld() {
	return"Hello World";
	}
}

2.3)src的resources下建立2层目录结构

application_spring_mvc.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:tx="http://www.springframework.org/schema/tx"  
    xmlns:context="http://www.springframework.org/schema/context"    
    xmlns:mvc="http://www.springframework.org/schema/mvc"    
    xsi:schemaLocation="http://www.springframework.org/schema/beans   
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd   
    http://www.springframework.org/schema/tx   
    http://www.springframework.org/schema/tx/spring-tx-3.2.xsd  
    http://www.springframework.org/schema/context  
    http://www.springframework.org/schema/context/spring-context-3.2.xsd  
    http://www.springframework.org/schema/mvc  
    http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">  
  
    <!-- 自动扫描的包名 -->  
    <context:component-scan base-package="mavenDemo"/>  
  
    <!-- 默认的注解映射的支持,自动注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter -->  
    <mvc:annotation-driven />  
   
</beans> 


3) 右键项目 -> Run as -> Run on server ->

输出了想要的内容!!!ok


问题:1)为什么 HelloController.java 和  application_spring_mvc.xml 非要建成上面的目录结构 ?

          2)许多具体原理不懂?这只是一个画瓢的例子


参考:

1. eclipse创建maven项目

2. SpringMVC最基础配置 (重要)

3. Maven管理JavaWeb项目

4. SpringMVC中的@Controller和@RequestMapping到底什么鬼? (第一个代码)

5. 浅谈@RequestMapping @ResponseBody 和 @RequestBody 注解的用法与区别





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值