运行 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. windows下使用密钥登录Linux及xshell代理转发

    1.密钥登录原理 一般我们使用xshell访问远程主机(Linux主机)时,都是先请管理员给我们开一个账户,即为我们设置一个一个用户名和对应的密码,然后我们就可以使用下面的方式登录到远程主机了: 在这 ...

  2. css3新特性---(border,Background部分)

    boder属性新特性: border-radius   设置或检索对象使用圆角边框 border-top-left-radius 设置或检索对象左上角圆角边框 border-top-right-rad ...

  3. HTML5 贝塞尔绘画 桃心

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 5th-个人总结(Alpha阶段)

    一. 总结自己的Alpha过程 1.团队的整体情况 在团队中这次担任队长的职务. alpha阶段完成情况还算理想,大家都完成了指定的任务.但是也少不了犯错,一些需求没有划分的足够细致,后来功能完成后发 ...

  5. Web编程:JSP环境安装与配置

    Web服务器:Tomcat 数据库服务器:暂时未使用 集成开发环境:eclipse 要运行JSP程序,首先要安装JDK(Java Developer Kit),并且还要配置运行Java程序的环境变量. ...

  6. 201521123076《Java程序设计》第2周学习总结

    1.本周学习总结 ①学会简单地管理原始码与位码文档(包的概念) ②了解了一些新的名词,如:完全限定(吻合)名 ③String类相关 ④in.nextInt(),in.next(),in.nextLin ...

  7. 201521123051 《Java程序设计》 第二周学习总结

    1. 本周学习总结 1.学会使用码云:学会如何将项目同步到码云中以及从码云上的项目保存到本地. 2.各数据类型的使用. 3.运算符和表达式的使用. 4.string创建之后不可在修改. 5.Java程 ...

  8. Java-Preferences用法-入门

    Properties提供的应用程序解决方案主要存在两个问题: (1)配置文件不能放在主目录中,因为某些OS(如Win9X)没有主目录的概念: (2)没有标准的文件命名规则,存在文件名冲突的可能性. J ...

  9. 201521123056 《Java程序设计》第9周学习总结

    1. 本周学习总结 1.1 思维导图如下: 2. 书面作业 本次PTA作业题集异常 1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要 ...

  10. linux加载与使用ko驱动

    linux驱动和有两种形式: 1:编译到内核 2:编译为ko模块 这里记录下ko模块使用方法. 首先cd到/var/lib/(内核版本)/drivers/ 在这里面找到要装载的模块ko文件 modpr ...