SpringMVC支持使用注解方式配置,比配置文件方式更加的灵活易用,是SpringMVC使用的主流模式。

传统的servlet是单例,如果业务复杂,存在很多的servlet,就会创建很多对象,造成内存浪费等一系列问题,SpringMVC就很好的解决了这些问题。

1.项目创建文件目录结构及导包

A.创建项目

新建立的项目在WEB-INF目录下没有lib包和classes包的话,手动创建一下。

WEB-INF 文件夹下的文件是被保护的,不能被外部访问,所以编译好的class文件,jar包web.xml放到这里比较安全(web.xml这种配置文件很重要肯定不能暴露出去,让用户访问到)。

B.在WEB-INF目录下创建lib包、classes包

C.导入相关的jar包

注意:此时导入的jar包不能采用之前javase项目添加jar包的方式Add as Library,因为这是web项目,到时编译发布的都是WEB-INF下的,将jar包添加到项目中是没有用的,到时发布到tomcat中会导致不能正常运行

D.配置classes和lib目录

在右上角1位置点击按钮进入到Project Structure

然后选择位置2的Paths

然后选择位置3的Use module compile output path

在位置4选择刚刚创建的classes文件目录,用来保存编译好的class文件

最后在5位置先选择apply,此时不要点击OK

选择Dependencies,然后点击”+”,在弹出框中选择到刚刚创建的lib包然后OK

此时可以看到lib包已经添加成功,点击Apply---OK 完成jar包的导入

此时可以看到之前创建的classes文件夹已经变为了橙色,lib文件夹中的jar包已经可以展开,说明WEB项目创建成功

web项目的结构层级关系

|--静态web资源,html,css,js,图片,音频。视频,动画等

|--WEB-INF

|--classes //动态web资源class文件

|--lib //动态web资源依赖的jar包

|--web.xml //web应用的核心配置文件

|--xxxxx //其他不希望外界直接访问的文件

2.创建SpringMVC项目

方式一:

A.在web.xml中配置前端控制器

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"

version="4.0">

springmvc

org.springframework.web.servlet.DispatcherServlet

springmvc

*.action

B.创建SpringMVC核心配置文件

因为SpringMVC默认会自动在web应用的WEB-INF目录下去寻找[前端控制器ServletName]-servlet.xml作为当前SpringMVC的核心配置文件,所以就在WEB-INF目录下创建文件。

关于文件名:

上面web.xml中配置的前端控制器的是springmvc,所以按照要求正确的文件名应该是(springmvc-servlet.xml)

创建springmvc-servlet.xml这个文件,这个文件本身其实就是Spring的配置文件,所以导入Spring相关的约束信息,包括 beans、context、mvc

创建如下:

目录结构如下

在springmvc-servlet.xml中配置,配置注解方式MVC开关时主要选择后缀为mvc的

springmvc-servlet.xml中具体配置如下:

视图解析器中prefix为前缀,suffix为后缀

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 https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

C. 在src目录下创建控制器类MyController,并返回视图test01

D.根据前缀中配置的路径及控制器中返回的视图名称,创建如下目录及文件

在test01.jsp中通过EL表达式获取Controller中设置的值

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

Title

控制器中设置的值为:

${k1}

${k2}

E. 部署运行程序

根据@RequestMapping中的配置可知,访问的地址为

http://localhost/springmvctest01_war_exploded/web01/test01.action

访问验证成功

方式二

对于上面的步骤B,

SpringMVC默认会自动在web应用的WEB-INF目录下去寻找[前端控制器ServletName]-servlet.xml作为当前SpringMVC的核心配置文件,也可以在servlet的配置中自己指定核心配置文件位置,这样就可以改变这个核心配置文件的路径及名称了。

具体的操作:在web.xml中的servlet标签中加入标签实现,一般习惯于将该配置文件放置在src根目录下

修改后的web.xml内容如下,可以自由命名:如:springmvc-my.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"

version="4.0">

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springmvc-my.xml

springmvc

*.action

修改后的目录结构如下:

其他与方式一保持一致,部署项目,测试如下,访问成功