公司转Java开发,做的第一个项目是SpringMVC框架,因为底层是同事封装,等完成整个项目,对SpringMVC框架的搭建还不是很了解,所以抽时间不忙的时候自己搭建了一个SpringMVC框架。

本次搭建SpringMVC想实现的效果很简单,就是能够在浏览其中直接访问Controller层,实现HelloWord的展示。

1、框架的大体结构:

2.pom.xml主要是jar包引入

pom.xml:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>org.py</groupId>
  7. <artifactId>SpringMvcDemo</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <packaging>war</packaging>
  10. <build>
  11. <plugins>
  12. <plugin>
  13. <groupId>org.apache.maven.plugins</groupId>
  14. <artifactId>maven-compiler-plugin</artifactId>
  15. <configuration>
  16. <source>1.7</source>
  17. <target>1.7</target>
  18. </configuration>
  19. </plugin>
  20. </plugins>
  21. </build>
  22. <dependencies>
  23. <dependency>
  24. <groupId>org.springframework</groupId>
  25. <artifactId>spring-context-support</artifactId>
  26. <version>4.1.6.RELEASE</version>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework</groupId>
  30. <artifactId>spring-test</artifactId>
  31. <version>4.1.6.RELEASE</version>
  32. </dependency>
  33. <dependency>
  34. <groupId>junit</groupId>
  35. <artifactId>junit</artifactId>
  36. <version>4.12</version>
  37. <scope>test</scope>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework</groupId>
  41. <artifactId>spring-web</artifactId>
  42. <version>4.1.6.RELEASE</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>org.springframework</groupId>
  46. <artifactId>spring-webmvc</artifactId>
  47. <version>4.1.6.RELEASE</version>
  48. </dependency>
  49. <dependency>
  50. <groupId>javax.servlet</groupId>
  51. <artifactId>javax.servlet-api</artifactId>
  52. <version>3.1.0</version>
  53. </dependency>
  54. </dependencies>
  55. </project>

其中,build节点是很重要的节点,主要是程序编译组件的加载,如果没有该节点,项目启动不起来。

引入的必须jar包如上述代码所示。

3、web.xml配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  5. version="3.1">
  6. <!-- 配置前端控制器 -->
  7. <!--<servlet>-->
  8. <!--<servlet-name>web-dispatcher</servlet-name>-->
  9. <!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
  10. <!--<init-param>-->
  11. <!--<param-name>contextConfigLocation</param-name>-->
  12. <!--<param-value>classpath:spring-mvc.xml</param-value>-->
  13. <!--</init-param>-->
  14. <!--<load-on-startup>1</load-on-startup>-->
  15. <!--</servlet>-->
  16. <servlet>
  17. <servlet-name>SpringMVC</servlet-name>
  18. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  19. <!--加载前端控制器配置文件 上下文配置位置-->
  20. <init-param>
  21. <!-- 备注:
  22. contextConfigLocation:指定 SpringMVC 配置的加载位置,如果不指定则默认加载
  23. WEB-INF/[DispatcherServlet 的 Servlet 名字]-servlet.xml
  24. -->
  25. <param-name>contextConfigLocation</param-name>
  26. <param-value>classpath:spring-mvc.xml</param-value>
  27. </init-param>
  28. <!-- 表示随WEB服务器启动 -->
  29. <load-on-startup>1</load-on-startup>
  30. </servlet>
  31. <servlet-mapping>
  32. <servlet-name>SpringMVC</servlet-name>
  33. <!-- 备注:可以拦截三种请求
  34. 第一种:拦截固定后缀的url,比如设置为 *.do、*.action, 例如:/user/add.action 此方法最简单,不会导致静态资源(jpg,js,css)被拦截
  35. 第二种:拦截所有,设置为/,例如:/user/add /user/add.action此方法可以实现REST风格的url,
  36. 很多互联网类型的应用使用这种方式.但是此方法会导致静态文件(jpg,js,css)被拦截后不能正常显示.需要特殊处理
  37. 第三种:拦截所有,设置为/*,此设置方法错误,因为请求到Action,当action转到jsp时再次被拦截,提示不能根据jsp路径mapping成功
  38. -->
  39. <!-- 默认匹配所有的请求 -->
  40. <url-pattern>/</url-pattern>
  41. </servlet-mapping>
  42. </web-app>

4、spring-mvc.xml配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
  4. xmlns:c="http://www.springframework.org/schema/c" xmlns:cache="http://www.springframework.org/schema/cache"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
  7. xmlns:lang="http://www.springframework.org/schema/lang" xmlns:mvc="http://www.springframework.org/schema/mvc"
  8. xmlns:p="http://www.springframework.org/schema/p" xmlns:task="http://www.springframework.org/schema/task"
  9. xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util"
  10. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  11. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  12. http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd
  13. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
  14. http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
  15. http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd
  16. http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd
  17. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
  18. http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
  19. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  20. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
  21. <!-- 自动加载RequestMappingHandlerMapping和RequestMappingHandlerAdapter, -->
  22. <!-- 可用在xml配置文件中使用<mvc:annotation-driven>替代注解处理器和适配器的配置。 -->
  23. <mvc:annotation-driven/>
  24. <!-- 组件扫描器:可以扫描 @Controller、@Service、@Repository 等等 -->
  25. <context:component-scan base-package="org.py.heaton.controller">
  26. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
  27. </context:component-scan>
  28. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  29. <property name="prefix" value="/WEB-INF/jsp/"/>
  30. <property name="suffix" value=".jsp"/>
  31. </bean>
  32. </beans>

5、web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  5. version="3.1">
  6. <!-- 配置前端控制器 -->
  7. <!--<servlet>-->
  8. <!--<servlet-name>web-dispatcher</servlet-name>-->
  9. <!--<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>-->
  10. <!--<init-param>-->
  11. <!--<param-name>contextConfigLocation</param-name>-->
  12. <!--<param-value>classpath:spring-mvc.xml</param-value>-->
  13. <!--</init-param>-->
  14. <!--<load-on-startup>1</load-on-startup>-->
  15. <!--</servlet>-->
  16. <servlet>
  17. <servlet-name>SpringMVC</servlet-name>
  18. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  19. <!--加载前端控制器配置文件 上下文配置位置-->
  20. <init-param>
  21. <!-- 备注:
  22. contextConfigLocation:指定 SpringMVC 配置的加载位置,如果不指定则默认加载
  23. WEB-INF/[DispatcherServlet 的 Servlet 名字]-servlet.xml
  24. -->
  25. <param-name>contextConfigLocation</param-name>
  26. <param-value>classpath:spring-mvc.xml</param-value>
  27. </init-param>
  28. <!-- 表示随WEB服务器启动 -->
  29. <load-on-startup>1</load-on-startup>
  30. </servlet>
  31. <servlet-mapping>
  32. <servlet-name>SpringMVC</servlet-name>
  33. <!-- 备注:可以拦截三种请求
  34. 第一种:拦截固定后缀的url,比如设置为 *.do、*.action, 例如:/user/add.action 此方法最简单,不会导致静态资源(jpg,js,css)被拦截
  35. 第二种:拦截所有,设置为/,例如:/user/add /user/add.action此方法可以实现REST风格的url,
  36. 很多互联网类型的应用使用这种方式.但是此方法会导致静态文件(jpg,js,css)被拦截后不能正常显示.需要特殊处理
  37. 第三种:拦截所有,设置为/*,此设置方法错误,因为请求到Action,当action转到jsp时再次被拦截,提示不能根据jsp路径mapping成功
  38. -->
  39. <!-- 默认匹配所有的请求 -->
  40. <url-pattern>/</url-pattern>
  41. </servlet-mapping>
  42. </web-app>

6、Controller层:

  1. package org.py.heaton.controller;
  2.  
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.ResponseBody;
  6.  
  7. /**
  8. * Created by py on 2017/1/5.
  9. */
  10. @Controller
  11. @RequestMapping(value = "/Index/")
  12. public class IndexController {
  13.  
  14. @ResponseBody
  15. @RequestMapping(value = "HelloWord")
  16. public String HelloWord(){
  17. return "Hello Word!!!!";
  18. }
  19. }

7、访问Controller,有图可见,可以正常访问

Idea搭建SpringMVC框架(初次接触)的更多相关文章

  1. 脚手架快速搭建springMVC框架项目

    apid-framework脚手架快速搭建springMVC框架项目   rapid-framework介绍:   一个类似ruby on rails的java web快速开发脚手架,本着不重复发明轮 ...

  2. 搭建springmvc框架的另一种思路

    在一个完整的项目里搭建springmvc框架的时候, 通常情况下,初学者在配置的时候,总是会把"中央控制器的名字"-servlet.xml文件放到/Webroot/WEB-INF下 ...

  3. 大师养成计划之一:搭建springmvc框架

    搭建spring-mvc框架 搭建spring-mvc框架步骤: 1.搭建web项目spring-mvc1 2.引入jar包 3.配置web.xml 3.1拷贝头文件: <web-app xml ...

  4. 教你搭建SpringMVC框架( 更新中、附源码)

    一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...

  5. 简单搭建SpringMVC框架详解

    在公司待了两年,用的一直是Spring+SpringMVC+Hibernate框架,都是公司自己搭建好的,自己从来没有主动搭建过,闲来无聊,自己搭建试试.一下即我搭建的过程以及搭建所遇到的问题,有部分 ...

  6. 基于maven从头搭建springMVC框架

    0.准备工作 首先将eclipse和需要的插件准备好,例如maven插件,spring IDE插件. 1.建立maven下的webapp项目 1.新建一个maven项目,类型为webapp,如下图 2 ...

  7. 教你搭建SpringMVC框架( 附源码)

    一.项目目录结构 二.SpringMVC需要使用的jar包 commons-logging-1.2.jar junit-4.10.jar log4j-api-2.0.2.jar log4j-core- ...

  8. rapid-framework脚手架快速搭建springMVC框架项目

    rapid-framework介绍:   一个类似ruby on rails的java web快速开发脚手架,本着不重复发明轮子的原则,框架只是将零散的struts(struts2)+spring+h ...

  9. Eclipse利用Maven2搭建SpringMVC框架的Web工程

    一.准备工作: 下载apache-maven--> 配置Maven_home -->下载Eclipse Maven插件 二.新建工程:   选择新建Maven Project  arche ...

随机推荐

  1. H5使用codovar插件实现支付宝支付(支付宝APP支付模式,前端)

    H5打包的app实现支付及支付宝支付,本章主要详解支付宝支付,微信支付请查看另一篇“H5使用codovar插件实现微信支付(微信APP支付模式,前端)” ps:本文只试用H5开发的,支付宝 APP支付 ...

  2. python字符串的方法

    python字符串的方法 ############7个基本方法############ 1:join def join(self, ab=None, pq=None, rs=None): # real ...

  3. Activiti 框架学习

    1:工作流的概念 说明: 1)      假设:这两张图就是华谊兄弟的请假流程图 2)      图的组成部分: 人物:范冰冰 冯小刚 王中军 事件(动作):请假.批准.不批准 工作流(Workflo ...

  4. Vue note

    1.npm run build 时,font:xx/xx "xxxx" 这种样式打包后会无效,只能写成font-size:xxx; line-height:xxx; font-fa ...

  5. EL表达式与JSTL标签map遍历varStatus属性下标使用

    在JSP页面开发中,JSTL标签库迭代标签<c:forEach>为我们迭代遍历数组集合提供了一种选择. 遍历过程中varStatus属性为我们遍历集合提升了很大操作空间. 贴一下具体使用 ...

  6. AlphaGo的前世今生(二)AlphaGo: Countdown to AI Revolution

    这是本专题的第二节,在这一节我们将以David Silver等人的Natrue论文Mastering the game of Go with deep neural networks and tree ...

  7. jQuery中删除方法empty(),remove()和detach()的区别

    empty():清空匹配的元素集合中所有的子节点,自身节点和事件都未被删除. remove():这个方法不会把匹配的元素从jQuery对象中删除,因而可以在将来再使用这些匹配的元素.但除了这个元素本身 ...

  8. UniRX简述

    UniRX:是一个Unit3D的编程框架,专注于解决异步逻辑,使得异步逻辑的实现更加简单优雅. 例如:实现“只处理第一次鼠标点击事件”: Observable.EveryUpdate() .Where ...

  9. docker学习-lnmp+redis之搭建lnp容器服务

    nginx+php7.0容器服务 本来想用单独的容器(nginx和php分开),但是因为是初学,php容器安装扩展的时候一直失败,所以就把centos+nginx+php放一起搭建了,优点是扩展简单, ...

  10. 第二周博客作业 <西北师范大学| 周安伟>

    一,本周助教小结 逐步开始适应助教工作,对学生发布的博客进行点评,查看学生对软件工程前期的准备情况. 二,助教本人博客 https://home.cnblogs.com/u/zaw-315/ 三,学生 ...