在SpringMVC中,/ /*
/:只匹配所有的请求,不会去匹配jsp页面
/*:匹配所有的请求,包括jsp页面
深入了解SpringMVC(重写上次的代码,加深理解)
(1)建立子项目:
把依赖自动导入Artifacts:
(2)建立一个前端jsp页面:
(3)配置web.xml:
因为springmvc去代替之前javaweb中的servlet:
所以servlet需要配置的web.xml,在这里也同样需要作出差不多的配置:
我们在web.xml中有param-value属性:
我们要在resources中配置它的路径:
并且把名称赋值给它:
最后我们在<servlet>中加入启动级别就可以了:
(4)配置springmvc-servlet.xml文件 绑定跳转到的页面的位置
到此为止我们spring的配置就结束了。
接下来就开始写我们的业务流程就可以了。
(5)Controller
除了spring固定的部分,我们就只写了一个Controller类
最后我们把这个Controller配置到springmvc-servlet.xml中:
我们以后不需要写这步配置,有点low.
运行顺序:
web.xml-springmvc-servlet.xml-Controller
底层流程图:
运行结果:
使用注解开发SpringMVC
再做ssm的时候,我们最好把每一个pom.xml都加上资源过滤:
注意:
如果是用maven导包,一定要用最新版,不然可能运行不了。
给项目加web支持:
给Artifacts加lib:
(1)把springmvc配置到web.xml中:这个我们写完就再也不用去改了
(2)配置springmvc-servlet.xml文件 用来配置转发到的网页的地址 这个部分也是固定的
用注解的方式,我们不需要去写映射器和适配器
在工作中,一般这个文件我们是不去改动的。
(3)创建一个跳转到的,接收值的jsp:
(4)Controller
配置一下tomcat:
实现步骤其实非常简单:
1.新建一个web项目
2.导入相关jar包
3.编写web.xml,注册DispatcherServlet
4.编写springmvc配置文件
5.接下来就是去创建对应的控制类,controller
6.最后完善前端视图和controller之间的对应
7.测试运行调试
前4步都是固定的,我们只需要写一个controller和一个视图就好了
运行结果:
使用springMVC必须配置的三大件:
处理器映射器,处理器适配器,视图解析器
通常,我们需要手动配置视图解析器,而处理器映射器和处理器适配器只需要开启注解驱动即可,而省去了大段的xml配置
Controller配置总结
建立一个子项目,做好准备工作,添加web支持,手动给Atrifacts导包在lib文件夹下
(1)web.xml:
(2)springmvc-servlet.xml:
到这里我们springmvc的配置就已经结束了。再去写已经非常简单了。接下来我们只需要写jsp和controller就可以了。
jsp页面:
第一种Controller方式,利用Controller接口:
我们把controller的地址在spring.xml中配置一下:
我们把扫描包,过滤静态,适配器和映射器的内容都注释了
我们在spring.xml中只写了视图解析器和controller的bean 我们配置好web 去运行一下:
这个实现接口Controller定义控制器的方法是比较老的
缺点是:一个控制器中只有一个方法,如果需要多个方法则需要定义多个Controller;定义的方式比较麻烦;所以这个方法了解即可,实际开发中不会用到它的。
方法二:使用注解@Controller(推荐使用)
我们会经常用到3个和@Controller功能相同的注解:
@Component 组件
@Service service
@Controller controller
@Repository dao
改写spring.xml加入包扫描
运行:
@Controller代表这个类会被Spring接管,被这个注解的类中的所有方法如果返回值是Spring,并且有具体的页面可以跳转,那么就会被 视图解析器解析
我们用这种方式,我们的视图层jsp页面可以实现复用:
我们可以发现我们在这一个Controller中同时定义了两个方法,并且都指向同一个jsp页面:
我们运行第二个方法:
这样实现了jsp复用,这也是这个方式的一个优点,多个方法,我们只需要写一个controller。
控制器和视图是弱合关系。我们现在controller也是使用这种方式。