运行 SpringMVC

首先要理解 SpringMVC 应用程序的入口是配置文件 web.xml,其路径为“src/main/webapp/WEB-INF/web.xml”,通过它再去关联 SpringMVC 的配置文件 springmvc-config.xml。

所涉及文件如下图:

此处列举了 web.xml 最精简的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="
http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
"
id="WebApp_ID"
version="3.1"> <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*:/config/springmvc-config.xml,
classpath*:/config/datasource.cfg.xml,
classpath*:/config/activiti.cfg.xml,
classpath*:/config/mybatis.cfg.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> </web-app>

此处列举了最精简的 springmvc-config.xml:

<?xml version="1.0" encoding="UTF-8"?>

<!-- 在 xsi:schemaLocation 配置中 -->
<!-- 有些 XML 属性会要求.xsd 文件带上版本号。 -->
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mybatis="http://mybatis.org/schema/mybatis-spring"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd
"> <!-- 编译时扫描必要的包 -->
<!-- 控制器 -->
<context:component-scan base-package="com.ruanxi.controller"/>
<!-- 业务逻辑层,自动装配(业务逻辑实现) -->
<!--<context:component-scan base-package="ruanxi.queen.service"/>-->
<!-- 自定义配置类(XML配置) -->
<!--<context:component-scan base-package="ruanxi.queen.config"/>--> <!-- 处理指定目录下的静态资源,指定哪些资源不要走控制器。需注意:若不定义 mvc:resources,则也不需要 mvc:annotation-driven -->
<mvc:annotation-driven/>
<mvc:resources mapping="/resources/**" location="/resources/"/>
<mvc:resources mapping="/*.html" location="/"/> <!-- 视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/View/"/>
<property name="suffix" value=".jsp"/>
</bean> </beans>

配置 Tomcat 服务器

基本的创建参考:【me】IDEA 配置 Tomcat 精要.note,或者(链接分享)

针对“Server”选项卡的配置需要确定几个值:

  • web pom.xml 中 finalName 的值,比如叫“MonkeyPackage”
  • 端口号,比如叫“8501”

如图所示:

针对“Deployment”选项卡的配置:

一方面注意选择带 exploded 的 war 包选项,另一方面要填写 Application context,其值等于 web pom.xml 的 finalName。

热部署:在开发阶段,务必确保这里选择的是 exploded 格式,这样在“Server”栏的“On frame deactivation”处才有选项“Update classes and resources”,从而开启热部署,它主要表现在当 JSP 页面有变更时能及时通过刷新反映到页面上,否则就要重新编译一次,这就太浪费时间了。

创建控制器

在 web 组件里,于 src/main/java 中创建 java package,包名为:com.ruanxi.controller,需提醒的是这个包名需要在 springmvc-config.xml 的 component-scan 中注册的。

创建一个控制器,比如名称为:BaseController。

@Controller
@RequestMapping(value = "/Base")
public class BaseController { @RequestMapping(value = "/Index", method = RequestMethod.GET)
public String Index() {
return "Base/Index";
}
}

创建视图页面

在 web 组件里,于 src/main/webapp/WEB-INF/View 中创建 JSP 页面,按照一定的约定:以控制器的映射名作为文件夹名称,以方法的映射名作为 JSP 文件名称。

客户端的请求要想得到服务端的响应,就必须与映射名相对应,既如此,不如干脆把 jsp 页面的命名也和映射名统一起来,勉得额外去思考其他的名字。

运行页面

需要注意,JSP 页面的加载并不是直接请求而来,在 MVC 框架里是先通过控制器的解析再转发呈现的。

IDEA Maven 三层架构 2、运行 springMVC的更多相关文章

  1. IDEA Maven 三层架构 1、基本的Archetype 搭建

    JDK:1.8 Maven:3.3.9 三层架构:基于 SpringMVC 的 UI 层.业务逻辑层以及数据访问层 从对 Maven 的了解可以看出,三层架构的创建在于对文件夹的合理安排,他们通常是主 ...

  2. 三层架构,Struts2,SpringMVC实现原理图

    三层架构,Struts2,SpringMVC实现原理图 三层架构实现原理 Struts2实现原理 SpringMVC实现原理

  3. Java全栈程序员之06:IDEA中MAVEN项目依赖及运行

    MAVEN已经成为事实上的企业项目开发中的项目类型.无论是IDEA还是Eclipse,都已经默认支持创建MAVEN项目.严格意义上来说,MAVEN不是一种新的JavaEE项目类型.它凌驾于所以的项目类 ...

  4. 基于IDEA的bs三层架构

    1.在大学的老师讲课中,可能会用到myeclipse或者eclipse来进行编译运行.其中的缺点就是要自行去下载开发所需要的一些jar包,要考虑都版本的不同造成的影响,且ORACLE和MYSQL的链接 ...

  5. asp.net mvc 加三层架构 完美搭配

    http://www.hysql.org/aspnet/20180630/5712.html 先来一张项目的层级结构图: Model:模型层,主要是各种类型.枚举以及ORM框架,框架完成数据库和实体类 ...

  6. JavaWeb核心篇(3)——JSP,MVC,三层架构

    JavaWeb核心篇(3)--JSP,MVC,三层架构 在本篇文章中我们会学习到JSP,MVC,三层架构 虽然JSP已经快被时代所淘汰,但是在一些老旧的工作场所还是有在使用,所以了解一下也不为过 至于 ...

  7. 有了门面,程序会更加体面!- pos软件基于三层架构 -09

    续上篇)        大鸟说道:“实际上没有学过设计模式去理解三层架构会有失偏颇的,毕竟分层是更高一级别的模式,所谓的架构模式.不过在程序中,有意识的遵循设计原则,却也可以有效的做出好的设计.”   ...

  8. Java Web 三层架构详解

    java 三层架构ssh 一个spring2.5+hibernate3.2+struts2.0组合框架,使用spring的 IoC来管理应用的 所有bean,包括struts2的 action,充分发 ...

  9. MVC模式与三层架构和表示层

    1.MVC模式     - Model-View-Controller     - 模型-视图-控制器     - Model(模型)         > 模型分为业务模型,和数据模型     ...

随机推荐

  1. 作业2——需求分析&原型设计

    需求分析: 软件的最终目的是用来解决用户的某些问题,需求分析就是要理解要解决的问题,真正明确用户需求.下面是我们初步的需求分析: 1.访问软件项目的真实用户(至少10个),确保软件真正体现用户的需求, ...

  2. 201521123026 《Java程序设计》第5周学习总结

    1. 本章学习总结 尝试使用思维导图总结有关多态与接口的知识点 使用常规方法总结其他上课内容 1.接口的出现时为了实现多态,多态的实现不一定依赖于接口. 2.接口的常见成员有:全局常量和抽象方法. 3 ...

  3. 201521123109《java程序设计》第三周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识组织起来.请使用纸笔或者下面的工具画出本周学习到的知识点.截图或者拍照上传. 2. 书面作 ...

  4. 201521123071 《JAVA程序设计》第二周学习总结

    1. 本周学习总结 在本周的学习中,主要学习了书上的String类以及Math类等知识,但是书上学到的东西只是理论,实际打起代码来的时候会学习到更多,比如在PTA上就有学习到StringBuilder ...

  5. 201521123037 《Java程序设计》第1周学习总结

    #1.本章学习总结 了解java的发展历程 能够区分JVM.JRE.JDK之间的关系 了解文件名.类名要相同,且文件名大小写代表不同的名称 初步了解java编程语句 学会用控制台编译java程序 #2 ...

  6. 201521123035《Java程序设计》第十四周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  7. 201521123018 《Java程序设计》第11周学习总结

    1. 本章学习总结 你对于本章知识的学习总结 2. 书面作业 一.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchronized修饰方法实现互斥同步访问, ...

  8. linux(CentOS5.8)环境下搭建Radius

    本文记录了freeRadius在CentOS5.8环境下的基本搭建过程,未涉及mysql的加入及配置 freeradius官方地址:http://freeradius.org/ 环境:CentOS5. ...

  9. 万物皆对象的JavaScript

    写在前面: 经过前段时间对于H5语言的学习,开始慢慢适应现在的生活节奏和代码语言.从一开始的毫无头绪到现在可以大概地写出部分的网站静态页面,用了两个周的时间.作为一个之前从未接触过计算机语言的初学者来 ...

  10. 市场主流5款HTML5开发框架详解

    我们经常听见的前端框架是一个非常大的范词,因为前端框架都是基于JS.CSS.HTML5技术开发实现的,不过选择一个HTML5开发框架需要考虑哪些方面,首先就是需要什么样的功能,其次就是技术实现,不过当 ...