先来介绍一下SpringMVC的使用步骤,接下来我们就按照这个步骤来写一个小demo。
使用步骤:
①创建Dynamic Web Project
②添加jar包
③在web.xml中配置dispatcherServlet
④添加Spring MVC配置文件
⑤编写请求处理器(根据url来找到用哪个方法来处理请求?)
⑥编写视图(找到了方法,那这个方法到底是怎么处理请求的啊?)
【注意】这里有个小建议哦,建议Eclipse是Java EE版本的,就是在安装的时候选择EE版本,我之前用了SE版本,项目中会有许多未知错误,也不知道是哪里出了问题,为了省心还是换成了EE版本,也就是下图中左上角那个样子的图标。
打开Eclipse,选择File->New->Dynamic Web Project:
注意下面!记得选择Apache Tomcat,这里我选择的是8.5。Tomcat的安装配置网上很多(或者我过段时间补充一下Tomcat的安装配置教程~)
选择下一步,记得勾选下面Generate web.xml……
创建完成,应该是这个样子的:
所有用到的jar包都在这里了,大家可以在这里搜索下载!
把所有的jar包复制到WEB-INF文件夹下的lib文件夹中,然后全选所有jar包,右击选择Build Path->Configure Build Path.
然后它们就都到这里去了:
将你的WEB-INF文件夹下的web.xml文件中的内容替换为下面的内容(已经配置好了):
web.xml文件代码(注意servlet-name那个地方,后面会有用!):
springmvc
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
1
dispatcherServlet
/
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
在WEB-INF文件夹下新建一个xml文件(或者是你可以创建一个文本文件,把后缀改成xml,拖到这个文件夹下),文件名命名为:dispatcherServlet-servlet.xml,这个配置文件的命名和web.xml中的servlet-name的值是对应的!
看到“可以修改”的注释那里,我这里配置的servlet-name是dispatcherServlet,那我创建的配置文件名就要叫dispatcherServlet-servlet.xml,也就是:这里定义的文件名格式。
再总结一下:web.xml文件中
完成之后的配置文件:
都在WEB-INF文件夹下!
dispatcherServlet-servlet.xml文件代码(注意配置自定扫描包和视图解析器那里,后面会用到!!):
application/json;charset=UTF-8
在创建一个包,包名cn.techaction,这个包名和dispatcherServlet-servlet.xml文件中的配置自动扫描包的base-package值是对应的!!
在dispatcherServlet-servlet.xml文件中:
配置自动扫描的包和你创建的包的名字要一致!!
在src文件夹下,创建名为cn.techaction.controller的包(悄咪咪的说,只要在src文件夹下创建即可,不必非要在cn.techaction包中创建,因为它会自动到cn.techaction包中,我也不知道为啥),然后创建一个类,如下图:
写一个方法:
package cn.techaction.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
//@RequestMapping("/test")
public class HelloSpringMVC {
@RequestMapping("/hello")
public String helo() {
return "hello";
}
}
注解解释:
@Controller:负责注册一个bean到spring上下文中,用于定义控制器类。所以这里的HelloSpringMVC就是一个控制器类,它根据url来决定用哪个方法来处理请求、确定到底返回哪一个视图。
@RequestMapping:用于映射请求,为控制器指定可以处理哪些url请求。
当我们在地址栏输入:http://localhost:8080/TestSpringMVC/hello(TestSpringMVC是项目名)就会映射到我们写的这个hello()方法,这个方法来处理请求。方法和url就是这么映射的,你可以理解成,这个url就是要告诉后台:“我这个请求要让TestSpringMVC项目中的hello方法来处理!”
上面我们说到,现在我们已经知道了要用哪个方法来处理请求了,那么这个方法要怎么处理这个请求呢?
我们看到dispatcherServlet-servlet.xml文件的这个地方:
hello方法的返回值是hello,它将被解析为对应的视图(也就是对应的jsp文件)。由配置文件我们可以知道视图解析器会将返回值的前缀设置成:/WEB-INF/views/,后缀设置成:.jsp。比如,hello方法的返回值是hello,那么对应的视图就是:/WEB-INF/views/(前缀)+hello(返回值)+.jsp(后缀),即/WEB-INF/views/hello.jsp,也就是/WEB-INF/views文件夹下的hello.jsp文件,这就是hello方法的处理结果,它返回了hello值以此来找到对应的视图文件。
聪明的你这个时候就应该知道了,为了与我们的配置文件对应起来,我们要在WEB-INF文件夹下,新建一个名为views的文件夹,然后新建一个名为hello的jsp文件:
这个jsp文件就是hello方法对应的视图文件了!
我们在hello.jsp文件中写点儿东西:
记得把编码改成utf-8。
保存之后,我们在刚才写的那个Java类的HelloSpringMVC.java文件中,右击运行,选择Run on server。
运行结果如下:
SpringMVC的基本使用就完成了!