精华内容
下载资源
问答
  • struts和springmvc

    2014-08-16 12:25:53
    1. 机制:spring mvc的入口是servlet,而struts2是filter 2

    spring mvc  PK  struts2

    1. 机制:spring mvc的入口是servlet,而struts2是filter

    2. 性能:springmvc会稍微比struts快。

    spring mvc是方法级别的拦截,拦截到方法后根据参数上的注解,把request数据注入进去,在spring mvc中,一个方法对应一个request上下文。

    struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;

    struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。



    Hibernate  VS  iBATIS


    1  Hibernate对数据库结构提供了较为完整的封装,实现了POJO和数据库表之间的映射,以及SQL的自动生成和执行。

    程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate提供的方法完成持久层操作。


    2  iBATIS的着力点,则在于POJO与SQL之间的映射关系。也就是说,iBATIS并不会为程序员在运行期自动生成SQL执行。具体的SQL需要程序员编写,然后通过映射配置文件,将SQL所需的参数,以及返回的结果字段映射到指定POJO


    3  iBatis 可以进行细粒度的优化, 比如说我有一个表,这个表有几个或者几十个字段,

    我需要列出一个表的部分内容,用iBatis的时候,这里面的好处是可以少从数据库读很多数据,节省流量


    Hibernate缓存包括两大类:Hibernate一级缓存和Hibernate二级缓存。
    1.Hibernate一级缓存又称为“Session的缓存”。
    Session内置不能被卸载,Session的缓存是事务范围的缓存(Session对象的生命周期通常对应一个数据库事务或者一个应用事务)。
    一级缓存中,持久化类的每个实例都具有唯一的OID。
    2.Hibernate二级缓存又称为“SessionFactory的缓存”。
    由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此Hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,因此

    Hibernate默认使用EHCache作为二级缓存的实现。(二级缓存由第三方实现)

    需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。
    第二级缓存是可选的,是一个可配置的插件,默认下SessionFactory不会启用这个插件。
    Hibernate提供了org.hibernate.cache.CacheProvider接口,它充当缓存插件与Hibernate之间的适配器。
    什么样的数据适合存放到第二级缓存中?   
    1) 很少被修改的数据   
    2) 不是很重要的数据,允许出现偶尔并发的数据   
    3) 不会被并发访问的数据   
    4) 常量数据   
    不适合存放到第二级缓存的数据?   
    1) 经常被修改的数据   
    2) 绝对不允许出现并发访问的数据,如财务数据,绝对不允许出现并发   
    3) 与其他应用共享的数据。







    展开全文
  • Struts和SpringMVC的区别

    2016-03-25 17:54:28
    Struts和SpringMVC的区别
    1.  核 心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求 (控制器)统一的进行处理(字符编码、文件上传、参数接受、异常处理等等),spring mvc核心控制器是Servlet,而Struts2是Filter。
    
    

    2.控制器实例:Spring Mvc会比Struts快一些(理论上)。Spring Mvc是基于方法设计,而Sturts是基于对象,每次发一次请求都会实例一个action,每个action都会被注入  属性,而Spring更像Servlet一样,只有一个实例,每次请求执行对应的方法即可(注意:由于是单例实例,所以应当避免全局变量的修改,这样会产生线程安全问题)。

    3. 管理方式:大部分的公司的核心架构中,就会使用到spring,而spring mvc又是spring中的一个模块,所以spring对于spring mvc的控制器管理更加简单方便,而且提供了全 注解方式进行管理,各种功能的注解都比较全面,使用简单,而struts2需要采用XML很多的配置参数来管理(虽然也可以采用注解,但是几乎没有公司那 样使用)。

    4.参数传递:Struts2中自身提供多种参数接受,其实都是通过(ValueStack)进行传递和赋值,而SpringMvc是通过方法的参数进行接收。

    5.学习难度:Struts更加很多新的技术点,比如拦截器、值栈及OGNL表达式,学习成本较高,springmvc 比较简单,很较少的时间都能上手。

    6.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变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。

    7.spring mvc处理ajax请求,直接通过返回数据,方法中使用注解@ResponseBody,spring mvc自动帮我们对象转换为JSON数据。

    展开全文
  • struts和springmvc区别 1、 核心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求(控制器)统一的进行处理(字符...

    struts和springmvc区别

    1、 核心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求(控制器)统一的进行处理(字符编码、文件上传、参数接受、异常处理等等),spring mvc核心控制器是Servlet,而Struts2是Filter。

    2、 控制器实例:Spring Mvc会比Struts快一些(理论上)。Spring Mvc是基于方法设计,而Sturts是基于对象每次发一次请求都会实例一个action,每个action都会被注入   属性,而Spring更像Servlet一样,只有一个实例,每次请求执行对应的方法即可(注意:由于是单例实例,所以应当避免全局变量的修改,这样会产生线程安全问题)。

    3、 参数传递Struts2中自身提供多种参数接受,其实都是通过(ValueStack)进行传递和赋值,而SpringMvc是通过方法的参数进行接收。

    4、 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

    5、SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

    6.spring MVC和spring是同一家公司出的,所以整合时无需配置,而struts2则需要编写整合配置。

    7.struts2 更符合OOP编程思想,spring MVC 则是再servlet上扩展功能。

    struts2工作原理

    在Struts2框架中的处理大概分为以下几个步骤 
    1 客户端初始化一个指向Servlet容器(例如Tomcat)的请求 
    2 这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin) 
    3 接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action 
    4 如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy 
    5 ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类 
    6 ActionProxy创建一个ActionInvocation的实例。 
    7 ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 
    8 一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及到ActionMapper 

    struts2工作流程

    1、客户端浏览器发出HTTP请求.

    2、根据web.xml配置,该请求被FilterDispatcher接收

    3、根据struts.xml配置,找到需要调用的Action类和方法, 并通过IoC方式,将值注入给Aciton

    4、Action调用业务逻辑组件处理业务逻辑,这一步包含表单验证。

    5、Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面

    6、返回HTTP响应到客户端浏览器

    展开全文
  • struts和springmvc默认均是使用的请求转发进行参数传递 SpringMVC: jsp代码: 1.jsp <div> <form action="/login"> <input type="text" placeholder="用户名" name="username"><br/>...

    struts和springmvc默认均是使用的请求转发进行参数传递

    SpringMVC:

    jsp代码:

    1.jsp

    <div>
    	<form action="/login">
    		<input type="text" placeholder="用户名" name="username"><br/>
    		<input type="text" placeholder="密码" name="password"><br>
    		<input type="submit" value="登录">
    	</form>
    </div>

    2.jsp

    <div>
    	<form action="/login">
    		<input type="text" placeholder="用户名" name="user.username"><br/>
    		<input type="text" placeholder="密码" name="user.password"><br>
    		<input type="submit" value="登录">
    	</form>
    </div>

    1、方法参数直接传递

    	@RequestMapping("login1")
    	public String demo02(String username,String password){
    		System.out.println(username+"-----"+password);
    		return "success.jsp";
    	}

    2、方法对象传递时,1.jsp和2.jsp均可(与struts的强制要求不同)

    	@RequestMapping("login1")
    	public String demo02(User user){
    		System.out.println(user.getUsername()+"-----"+user.getPassword());
    		return "success.jsp";
    	}

    3、Model传递

    	@RequestMapping("login3")
    	public String demo04(Model model,User user){
    
    		model.addAttribute("user", user); 
    		return "success.jsp";

    4、ModeAndView传递

    @RequestMapping("login2")
    	public ModelAndView demo03(User user){
    		ModelAndView mav = new ModelAndView("success.jsp");
    		mav.addObject(user);
    		return mav;
    	}

     

    Struts:

    1、基本参数属性传递

          在Action中设置相关属性,默认和请求传递参数名相同,使用set方法对相关属性进行设值

    Action代码:

    public class DemoAction {
    	private String username;
    	private String password;
    	
    	public String getUsername() {
    		return username;
    	}
    
    	public void setUsername(String username) {
    		this.username = username;
    	}
    
    	public String getPassword() {
    		return password;
    	}
    
    	public void setPassword(String password) {
    		this.password = password;
    	}
    
    	public String login(){
    		System.out.println("执行login");
    		return "login";
    	}
    }

    jsp代码:

    <div>
    	<form action="/formLogin">
    		<input type="text" placeholder="用户名" name="username"><br/>
    		<input type="text" placeholder="密码" name="password"><br>
    		<input type="submit" value="登录">
    	</form>
    </div>

    2、对象属性传递

          在Action中设置相关对象属性,默认对象属性和请求传递参数名(对象名.属性名)必须对应(请求参数名不能直接是对象的属性,需要主动实现类型转换器,此处和springmvc不同),使用set方法对相关属性进行设值

     

    Action代码:

    public class FormAction{
    	private User user;
    	public User getUser() {
    		return user;
    	}
    
    	public void setUser(User user) {
    		this.user = user;
    	}
    	
    	public String login(){
    		return "main";
    	}
    	
    }

    jsp代码:

    <div>
    	<form action="/formLogin">
    		<input type="text" placeholder="用户名" name="user.username"><br/>
    		<input type="text" placeholder="密码" name="user.password"><br>
    		<input type="submit" value="登录">
    	</form>
    </div>

    3、Action实现ModelDriven接口传递,需要实现getModel()方法

    Action代码:

    public class FormAction implements ModelDriven<User>{
    	private User user = new User();
    	public User getUser() {
    		return user;
    	}
    
    	public void setUser(User user) {
    		this.user = user;
    	}
    	
    	public String login(){
    		return "main";
    	}
    
    	@Override
    	public User getModel() {
    		return user;
    	}
    	
    }

    jsp代码:

    <div>
    	<form action="/formLogin">
    		<input type="text" placeholder="用户名" name="user.username"><br/>
    		<input type="text" placeholder="密码" name="user.password"><br>
    		<input type="submit" value="登录">
    	</form>
    </div>

     

    展开全文
  • 对比Struts和SpringMVC

    热门讨论 2017-02-26 20:51:04
     现在用的比较多的是Struts2、SpringMVC, Struts1官方已经停止更新,现在用的也比较少,Struts2其实并不是Struts1的升级,而是继承了WebWork的血统,集成了二者的优点,是在 struts 1WebWork的技术基础上
  • 1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的...
  • Struts和SpringMVC的比较

    2017-10-03 19:22:30
    Struts的特点 1.struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入 2.struts2实际上是通过setter getter方法与request打交道的 3.struts2中,一个...
  • 1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2...
  • struts ○ 搭建过程 ■ 加载web.xml 、 ● 配置struts核心控制器 ● 1:拦截 规定后缀请求 ● 2:加载struts.xml(读取配置扫描注解) ○ 常用注解 ● @action ○ 实例化action ,规定访问url ● ...
  • springmvc可以精确控制到方法上,controller可以单例开发,Struts2的action则是多例prototype开发,基于类进行拦截请求的。 springmvc的速度一般比Struts2要快,主要是s标签的原因。所以建议使用jstl表达式。 Struts...
  • 目前比较好的MVC,老牌的有Struts、Webwork。新兴的MVC框架有Spring MVC、Tapestry、JSF等。这些大多是著名团队的作品,另外还有一些边缘团队的作品,也相当出色,如Dinamica、VRaptor等。这些框架都提供了较好的...
  • SpringMVC和Struts2的区别 1核心控制器(前端控制器,预处理控制器);对于使用过MVC框架的人来说这个词应该不会陌生。核心控制器的主要用途处理所有的请求。然后对那些特殊的请求。统一的进行处理(字符编码,文件...
  • ServletContextServletActionContext,ActionContext有什么区别 1.servletContext提供了标准的Servlet运行环境,其实就是一些servletweb 容器进行通信的方法。 2.ServletActionContext 其实是ActionContext的子类...
  • 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比较, 今天闲着没事干, 从网上找了一些资料, 再加上平时使用Spring MVC的感触来总结一下。 Spring MVC ...
  •  Struts和SpringMVC是MVC这种软件架构模式的两种不同的实现方式,是框架,是可重用的代码。这两个框架都实现了MVC软件架构思想,但是两种框架又不是完全相同的,两种框架各有特色,现在一般认为SpringMVC相对于...
  • Struts 整合 SpringMVC

    2017-07-19 22:52:33
    Struts 整合 SpringMVC 过程:这篇文章是我在整合过程中所做的记录笔记 web.xml :筛选器机制过滤 原机制是拦截了所有 url ,即 <url-pattern>/*</url-pattern> 新机制为了将 structs2 的 url 与 ...
  • 本人新手一枚,有没有android Studio和Struts+SpringMVC+Mybatis结合使用的Domo
  • 1.struts1和struts2比较   Struts1 Struts2 Action类的实现方式 扩展Action类或者Action的子类 不用实现任何类接口,虽然Struts2中提供一个ActionSupport类,但是,不是...
  • struts+springmvc+hibernate有没有页面登陆注册的代码数据库??有没有实现增删改的代码啊?网上的不能实现运行![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/9.gif)
  • struts,springMVC 上传文件需要的jar包 commons-fileupload-1.2.1.jarcommons-io-1.3.2.jar
  • StrutsspringMVC的比较

    2016-07-30 17:45:35
    Struts2 Web.xml中配置struts的核心过滤器 ...Struts.xml中定义跳转链接:分发请求 ...struts2如做到前后台交互的 前台--->后台 Struts前后台传值  Struts前后台传值 表单中
  • 区别:springmvc入口是一个servlet前端控制器,struts2入口是一个filter过滤器;...struts2和springMVC的区别1、springmvc入口是一个servlet前端控制器( DispatcherServlet ),struts2入口是一个f...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,670
精华内容 1,468
关键字:

struts和springmvc

spring 订阅