springMVC笔记系列(17 特别篇的开始)——springMVC要点回顾及idea开发环境搭建

说明:本文章的内容转载至:https://my.oschina.net/happyBKs/blog/690926
如有侵权的地方,请联系本人,本人将会立即删除!

这次文章是springMVC笔记系列时隔一年之后的继续,但是我想先就其中的数据绑定写一串博文。

首先,这里做个插曲。之前的博客文章用的IDE是STS(eclipse的子子孙孙),这次springMVC数据绑定的几篇博客文章,我的示例用的是intellj idea,所以,给不熟悉这个IDE工具的同学做个把屎把尿的插曲介绍。

这里需要特别注意的是,idea和eclipse在一些概念上有区别,十分容易混淆,这里做个说明:

eclipse idea
workspace project
project module
idea中的project相当于eclipse中的workspace,而idea中的module相当于eclipse中的project。但是在组织形式上也会有些许的不同,这个我们后面再说。

我们先在idea下把Maven webapp项目建好,步骤如图,文字自行脑补。

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

(这里说明一下,由于当中idea版本升过级,重新建了个项目所以这里截图看到的是ideaSpringMVC,其实应该是ideaSpringMVC2。)

idea新建maven webapp没有src,要自己建,T T。

这里写图片描述

这里写图片描述
这里写图片描述

这里写图片描述

这里写图片描述

idea建立的文件夹可以做用处标记,源文件文件夹、资源文件夹等等。不然右击文件夹新建的时候会找不到相应的模板。

这里写图片描述

方便还是挺方便的。

这里写图片描述

这里写图片描述

这里写图片描述

我们在com.happyBKs.controller下定义一个类TestController,用@Controller注解标记为一个控制器。我

package com.happyBKs.controller;

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

/**
 * Created by happyBKs on 2016/5/24.
 */

@Controller
@RequestMapping("/hello")
public class TestController {

    //localhost:8080/home/mvc或localhost:8080/web应用名称/home/mvc
    @RequestMapping("/world")
    public String helloMVC(){
        return "first";
    }

}

当然,springMVC在搜索控制器的时候需要定义搜索包的范围,所以,我们需要定义一个springMVC的配置文件。而定义springMVC的配置文件之前,需要在中定义好前端控制器DispatcherServlet,以及相应的配置文件路径。

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>
  <display-name>Archetype Created Web Application</display-name>

  <!-- DispatcherServlet, Spring MVC的核心 -->
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class> org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- DispatcherServlet对应的上下文配置, 默认为/WEB-INF/$servlet-name$-servlet.xml
     -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <!-- mvc-dispatcher拦截所有的请求-->
    <url-pattern>/</url-pattern>
  </servlet-mapping>

</web-app>

注意:虽然springMVC的配置文件(其实是定义的相应的DispatcherServlet的对应的配置文件)是可以通过初始化参数contextConfigLocation来指定的,如果不配置指定,那就按照约定:DispatcherServlet对应的上下文配置, 默认为/WEB-INF/ servletname -servlet.xml

DispatcherServlet对应的上下文配置

/WEB-INF/configs/spring/mvc-dispatcher-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"
       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
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 本配置文件是工名为mvc-dispatcher的DispatcherServlet使用, 提供其相关的Spring MVC配置 -->

    <!-- 启用Spring基于annotation的DI, 使用户可以在Spring MVC中使用Spring的强大功能。 激活 @Required
        @Autowired,JSR 250's @PostConstruct, @PreDestroy and @Resource 等标注 -->
    <context:annotation-config />

    <!-- DispatcherServlet上下文, 只管理@Controller类型的bean, 忽略其他型的bean, 如@Service -->
    <context:component-scan base-package="com.happyBKs.controller">
        <context:include-filter type="annotation"  expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <!-- HandlerMapping, 无需配置, Spring MVC可以默认启动。 DefaultAnnotationHandlerMapping
        annotation-driven HandlerMapping -->

    <!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 -->
    <mvc:annotation-driven />

    <!-- 静态资源处理, css, js, imgs -->
    <!--<mvc:resources mapping="/resources/**" location="/resources/" />-->


    <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsps/" />
        <property name="suffix" value=".jsp" />
    </bean>


</beans>

这里注意,该配置文件其实归结起来做了四件事情:

  1. 激活一些注解

  2. 定义DispatcherServlet上下文,即刚才所说的搜索哪些包

  3. 激活springMVC的几个注解

  4. 定义请求和视图View资源之间映射

接下来,定义视图View,我们在\WEB-INF\jsps\下定义了first.jsp
这里写图片描述

\WEB-INF\jsps\first.jsp如下:

<html>
<body>
<h2>Hello! I am developing a springMVC project with intellj idea!</h2>
<h2>HappyBKs</h2>
</body>
</html>

最后,我们在idea下配置如何将webapp发布到tomcat上运行:

点击【Run | Edit Configurations…】
这里写图片描述

点击左上角的绿色加号。选择Tomcat server 的 local
这里写图片描述
然后配置Server
这里写图片描述

然后选择选项卡Deployment,配置部署方式
这里写图片描述
点加号,选择Artifact。
这里写图片描述

注意,这里我们还可以为应用配置一个请求中的web应用名称,默认是 “/”

如果我们不配置,请求的是localhost:8080/【Controller映射路径】

这里,我们为应用去个名字叫/mvc。一台服务器毕竟一般会部署很多个应用嘛!

请求的url则是localhost:8080/【web应用配置的名称】/【Controller映射路径】,即localhost:8080/mvc/hello/world

好,最好保存,点击运行。
这里写图片描述
这里写图片描述
webapp的首页会自动在默认浏览器中打开(用哪个浏览器,idea也可以配置的)。

之后我们请求http://localhost:8080/mvc/hello/world

这里写图片描述

好了,这篇博文虽然是承接springMC笔记系列,但是毕竟时隔一年了,我将springMVC的原理性的东西,尤其是前端控制器等重新整理了一遍。还有便是,算是把在intellj idea下如何配置你的第一个springMVC方法一步一步讲清楚了,用惯了eclipse的idea小白们不妨试试吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值