Struts2和SpringMVC主要区别 SpringMVC和SpringBoot的区别
SpringMVC和MyBatis区别:
(1)SpringMVC和Struts2的加载机制不同
Struts2和核心是基于一个Filter即StrutsPrepareAndExecuteFilter
SpringMVC的核心是基于一个Servlet即DispatcherServlet(前端控制器)
(2)SpringMVC在性能上会稍微比struts2快
Struts2是类级别的拦截,每次来了请求就创建一个Action,然后调用get和set方法把request中的数据注入
Struts2中一个action对应一个request上下文,action是多例模式(singiton),需要将scope设置为原型模式(prototype)
<bean id="managerDao" class="com.xalo.daoImpl.ManagerDaoImpl"> <property name="sessionFactory" ref="sessionFactory"></property> <property name="manager" ref="manager"></property> </bean> <bean id="managerService" class="com.xalo.serviceImpl.ManagerServiceImpl"> <property name="managerDao" ref="managerDao"></property> </bean> <!-- action的配置,action是多例模式,需要将scope设置为原型模式 依赖service层的bean --> <bean id="managerAction" class="com.xalo.action.ManagerAction" scope="prototype"> <!--name为依赖注入的变量名 --> <property name="managerService" ref="managerService"></property> </bean> <!-- 将class改成Spring配置文件中的bean的id,将spring交给struts.xml进行管理 --> <package name="Manager" extends="json-default" namespace="/manager"> <!--增加员工 --> <action name="addManager" class="managerAction" method="addManager"> <result name="success" type="json"> <param name="root">result</param> </result> </action> </package>
SpringMVC是方法级别的拦截,过滤后去Controller中找对应于@RequestMapping注解的url绑定的方法
@Controller public class TeacherController { @Autowired private TeacherService teacherService; @RequestMapping(value="/addTeacher",method={RequestMethod.POST}) @ResponseBody //接收前端传送过来的json数据 public String addTeacher(Teacher teacher){ System.out.println(teacher); teacherService.addTeacher(teacher); return "success"; } }
(3)参数传递
Struts在接收参数时,可以用成员属性来接收参数,参数是可以让多个方法共享的
public class ManagerAction extends ActionSupport { //接收前端传递过来的参数,参数是可以让多个方法共享的 private Manager manager; //返回给前端结果 private HashMap<String, Object> result; //setter依赖注入ManagerServiceImpl对象 private ManagerServiceInter managerService; public void setManagerService(ManagerServiceInter managerService) { this.managerService = managerService; } //给接收和返回数据提供setter和getter方法 // 增加员工 public String addManager() { result = managerService.addManager(manager); System.out.println(result); return SUCCESS; } }
SpringMVC的方法基本上是独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量
<!--ModelMap 既可以使用map形式添加数据,也可以使用Model形式添加数据 添加数据 mm.addAttribute(“属性名”, “属性值”)--> <!--方法的参数为Map类型 设置返回给前端的数据:map.put(key, value)将要返回给界面的数据添加到map即可 当前方法的返回值,是视图逻辑名称--> <!--(1)FirstController.java--> @Controller <!--将当前实体交给spring进行管理--> @RequestMaping("/fc") <!--修饰类--> public class FirstController { @RequestMapping("/tm") public String testMap(Map<String, Object> map) { map.put("money",1000); return "hello"; } } <!--(2)hello.jsp--> <h1>Map</h1> <h1>${requestScope.money}</h1> <!--(3)index.jsp--> <a href = "fc/tm">Map测试</a> <!--Model 和Map一样,只是添加数据model.addAttribute(“属性名”,”属性值”)--> <!--(1)FirstController.java--> @Controller <!--将当前实体交给spring进行管理--> @RequestMapping("/fc") <!--修饰类--> public class FirstController { @RequestMapping("/tmo") public String testModel(Model model) { model.addAttribute("aa","我是aa") return "hello" } } <!--(2)hello.jsp--> <h1>Model</h1> <h1>${requestScope.aa}</h1> <!--(3)index.jsp--> <a href = "fc/tmo">Model测试</a>
(4)Ajax交互
spring mvc处理ajax的请求十分方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可
Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便;
(5)拦截机制的实现
spring mvc用的是独立的AOP方式实现,而struts2有自己的interceptor机制,这样导致了struts2的配置文件量又比spring mvc大;
SpringBoot和SpringMVC的区别
1.SpringBoot是一个配置工具(快速开发整合包),SpringMVC是基于Spring的一个MVC框架
2.SpringBoot可以建立独立的Spring应用程序
3.内嵌了如Tomcat,Jetty和Undertow这样的容器,用不着再做部署工作
4.SpringBoot可以自动配置Spring,降低了项目塔键的复杂度
5.提供了POM文件可以就爱你华Maven配置
6.SpringBoot提供了基于Http,SSH,telnet对运行时的项目进行监控
- javaweb随笔(四)------SpringMVC与Struts2的主要区别
- SpringMVC与Struts2的主要区别
- SpringMVC与Struts2的主要区别
- SpringBoot上传文件跟传统的SpringMVC的区别
- SpringMVC框架与SpringBoot框架引入文件区别——PC端
- SpringMVC与Struts2的主要区别
- SpringMVC与Struts2的主要区别
- Spring 、SpringMVC 、Struts2之间的区别
- SpringMVC框架和spring Boot的区别
- Spring学习——SpringMVC和Struts2的区别
- Spring、SpringMVC和Struts2的区别
- 【Spring】springMVC和struts2的区别
- Spring 、SpringMVC 、Struts2之间的区别
- Spring、SpringMVC和Springboot的区别(网摘)
- Spring,SpringMVC 的区别 和 SpringMVC,Spring Boot 的区别 (网摘)
- SpringMVC和Struts2的区别
- 控制层SpringMVC和Struts2的区别
- Spring和SpringMVC的区别
- SpringMVC 和Struts2的区别
- SpringMVC的Controller和Struts2的Action的区别