扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1.三层架构:表现层(SpringMvc),业务层(Spring),持久层(Mybatis)
所以简单来说SpringMvc所干的事就是关于:
请求参数
响应结果
2.SpringMvc是基于MVC设计模型
M:model模型 如: javaBean
V:view视图如: jsp
C:controller控制器 如: Servlet
3.SpringMVC和struts2的异同:(面试可能会被问道)
共同点:
他们都是表现层的MVC模型框架来写的
他们得分底层都离不开ServletAPI
他们处理请求的机制都是一个核心控制器(SpringMvc是Servlet实现的Struts2是Filter实现的)
异同点:
SpringMVC的入口是Servlet,而Struts2是Filter(过滤器);
SpringMVC是基于方法实设计的,而struts2是基于类来设计的,Struts2每次执行都会去创建一个动作类,所以SpringMVC效率会比Struts2快一些。
SpringMVC使用更加简洁,同时还支持JSR303,处理ajax更加方便
Struts2的OGNL表达式是页面的开发效率相比SpringMVC更高一些,但执行效率并没有比JSTL提升,尤其是Struts2的表单标签,远没有html执行效率高
1.选择Maven工程的webapp模板,这里就不说啦,嘻嘻,提醒一点:
加上archetypeCatalog :internal会解决项目加载较慢的问题
2.补全目录:
3.导入依赖:
UTF-8
1.8
1.8
5.1.3.RELEASE
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.apache.tomcat
servlet-api
6.0.29
org.apache.tomcat
jsp-api
6.0.29
4.在web.xml配置前端控制器
Archetype Created Web Application
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
dispatcherServlet
/
5.创建一个springmvc.xml的配置文件放在resources下
6.配置tomcat,把项目加载进来
郑州妇科医院 http://www.120zzkd.com/
我编写一个index.jsp页面,当我点击标签的时候,我就跳转到某个Controller的某个方法里面去执行功能,执行完就跳转到success.jsp页面
1.首先我写了这个Controller类中的一个方法
2.我在index.jsp中写一个标签
入门程序
当我点击的时候跳转到sayhello()这个方法里面
2.1
首先我要把HelloController这个类变成一个对象啊,那我借助于spring的配置文件来进行,在类上加一个@Controller,此时借助于我们刚才的springmvc.xml来扫描这个包,进而创建Spring容器,创建HelloController对象。
2.2
命名空间:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
开启扫描
2.3
此时你是否注意到sayhello()方法上的注解@RequestMapping("/hello")呢?
它又是什么作用呢?
它用于建立请求URL和处理请求方法之间的联系:
有了它入门程序前端控制器就可以通过处理器映射器找到HelloController下的sayhello()方法了。
2.4
为什么你的返回值是“success”呢,我之前说过等执行完就可以跳转到success.jsp,可是怎么跳转呢?这个SpringMvc的视图解析器就已经帮我们解决了
在springmvc.xml中配置视图解析器:
路径名有了,后缀名也有了,我只需要提供一个jsp的名称就好了,而sayhello()方法的返回值默认为路径的名称,这样我就可以执行完跳转到success.jsp页面了。
2.5
可是在我的代码中可以看到HelloController这个类上也有@RequestMapping(path = “/user”),难道类上也可以加这个注解???
YES!在类上加注解就相当于一级路径,所以jsp中的访问路径:
入门程序
2.6
SpringMvc框架就是各个组件构成的,这样更加灵活。
SpringMvc的各个组件中,处理器映射器,处理器适配器,视图解析器称为SpringMvc的三大组件,上一张老师的图吧
但是从这张图中我们可以看出来,还有其他的组件在发挥作用了呀,
当才视图适配器就进行配置,让起生效,为什么不配置处理映射器和处理器适配器呀?
上代码,hhhhhhhhhhhhhhh
是开启SpringMvc的注解配置,它默认为映射器,适配器进行了配置,也就是说这行代码让映射器,适配器也生效了。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流