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

    xiaoxiao2021-12-14  17

    说明:本文章的内容转载至: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>

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

    激活一些注解

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

    激活springMVC的几个注解

    定义请求和视图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小白们不妨试试吧。

    转载请注明原文地址: https://ju.6miu.com/read-970081.html

    最新回复(0)