博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用springMVC的详细步骤
阅读量:6041 次
发布时间:2019-06-20

本文共 3830 字,大约阅读时间需要 12 分钟。

hot3.png

使用springMVC的详细步骤

 

  使用springMVC也可以代替struts2,当然只是代替业务分发的功能,struts2的一些其他功能它是没有的,不然要struts2有什么用。

  下面我用springMVC代替struts2去整合hibernate实现简单的员工查询功能。
  使用springMVC有两个配置文件需要配置,一个是applicationContext.xml、另一个是web.xml,在applicationContext.xml里面配置事务管理器以及属性注入等。web.xml里面要添加一个springMVC的servlet的注册和映射(DispatcherServlet),这个servlet是springMVC的核心控制器,专门处理各个请求的,然后根据相应的参数分发给相应的业务控制器处理,业务控制器处理完之后就会返回一字符串给核心控制器,核心控制器再根据该字符串重定向或者转发到相应的页面。还必须给该核心控制器建一个配置文件,其形式为:核心控制器servlet名-servlet.xml,如springMVC-servlet.xml.该配置文件放在WEB-INF下面。
 applicationContext.xml的内容如下:

    
        
                    
        
            
                
        
            
                
        
        
            
    
        
        
    
        
            
        
        
    
        
    
    

 

web.xml的内容如下:

 
 
  
contextConfigLocation
  
/WEB-INF/classes/app*.xml
 
 
 
  
openSession
  
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
 
 
  
openSession
  
/*
 
 
 
  
org.springframework.web.context.ContextLoaderListener
 
 
 
  
springMVC
  
org.springframework.web.servlet.DispatcherServlet
 
 
  
springMVC
  
*.do
 
 
  
index.jsp
 
 
  
BASIC
 

 

springMVC-servlet.xml的内容如下:

        
    

 

EmpAction类代码如下:

package com.action;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.service.EmpService;@Controller@RequestMapping("/emp.do")public class EmpAction {    @Autowired    private EmpService empService;        @RequestMapping(params="p=getAll")    public String getAll(HttpServletRequest request,HttpServletResponse response){        List list = empService.getAllEmp();        request.setAttribute("list", list);        return "/WEB-INF/view/show.jsp";    }        }

 

@Controller指该方法是一个业务控制器;@RequestMapping("/emp.do")是指请求emp.do则核心控制器就会分发给该业务控制器去处理;

@RequestMapping(params="p=getAll")是指当请求参数为p=getAll时调用业务控制器的这个方法;将"/WEB-INF/view/show.jsp"返回给核心控制器,核心控制器再转发到WEB-INF/view/show.jsp页面去显示所有员工信息。

springMVC与struts2的区别:
1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。

2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。spring3 mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。

3. 参数传递:struts是在接受参数的时候,可以用属性来接受参数,这就说明参数是让多个方法共享的。

4. 设计思想上:struts更加符合oop的编程思想, spring就比较谨慎,在servlet上扩展。

5. intercepter的实现机制:struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC确实比struts2高。spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3 mvc就容易实现restful url。struts2是类级别的拦截,一个类对应一个request上下文;实现restful url要费劲,因为struts2 action的一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。spring3 mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量,而struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。

6. 另外,spring3 mvc的验证也是一个亮点,支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。

我喜欢,驾驭着代码在风驰电掣中创造完美!我喜欢,操纵着代码在随必所欲中体验生活!我喜欢,书写着代码在时代浪潮中完成经典!每一段新的代码在我手中诞生对我来说就象观看刹那花开的感动!

 

转载于:https://my.oschina.net/u/1450300/blog/477248

你可能感兴趣的文章
「镁客·请讲」VR的拓荒者,幻境视界让VR内容拥有艺术之美
查看>>
xUtils类库的使用
查看>>
iOS使用锁屏监听的私有API被拒 com.apple.springboard.lockcomplete
查看>>
Ubuntu 16.04安装网络流量监控工具Netspeed(附带10款最佳的指示器工具)
查看>>
redis主从复制
查看>>
uboot中start.s源码指令
查看>>
支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示
查看>>
Linux 负载均衡一基本概念
查看>>
Windows Phone 7 开发小技巧
查看>>
容器花絮:什么时候应该将应用程序切分为多个容器?
查看>>
火车WiFi春天已到来?
查看>>
赛普拉斯推出业内首款专为IoT设计的微控制器架构PSoC 6
查看>>
银行业大数据变现的三大关键
查看>>
Redis中的事件处理模型
查看>>
AMD选择Mellanox以太网和InfiniBand作为首选互连解决方案加速全新EPYC数据中心平台...
查看>>
开源无线WiFi入侵检测&防护系统——WAIDPSphper
查看>>
OpenStack初心不变 T2Cloud云途腾描绘“云途”计划
查看>>
数据赢未来 看紫光西数Univer系列存储
查看>>
《算法技术手册》一1.3.2 分治算法
查看>>
构建云生态,深化云应用 ——第九届中国云计算大会启幕
查看>>