各位高手,我是菜鸟,请教一个比较弱的问题,不要拍我啊:使用java+jsp+html做动态网页的时候,永远都避不开browser和sever之间的通信、数据传递问题,我就简称这个是BS数据传递吧。在BS之间做数据传递的时候,我熟悉的是ajax。当然也可以使用struts1。我对ajax和struts的理解:
ajax:
1) 向上,可以向服务器发送所有的数据。
2) 向下,服务器可以通过response向browser下发所有的数据,在browser收到数据后,可以通过DOM编程,将数据实时显示。struts1:
1) 使用标签,将html:form中的数据进行封装,发送到服务器;
2) 服务器使用mapping、forward等对象,进行跳转,并且将数据封装到request或者是response中,下发到跳转的页面。我的问题:
1) struts1做的工作,ajax完全能够胜任,而且,ajax能够更好的完成struts1做的工作。甚至,struts1的很多标签中使用的变量,完全就是jsp的方法(EL表达式,或者是<%= %>),这样,使用struts1代码显得很乱,从这个角度上来说,ajax也比struts1更好。
2) 如果ajax与struts1结合使用,我试过了,可以通过指定ajax的url,从而访问struts1的action,但是这种做法的前提是,要使用struts1的标签,否则,form中的数据不会被封装并传递到action。那么我的问题是,ajax与struts1如何结合,有好的办法吗?3) 关于MVC构架,或者说browser端隐藏代码的问题:使用ajax有一个不好的方面,那就是ajax在browser使用的js代码,用户全部能看到,这一点不是很好。但是,使用struts的时候,虽然browser端看不到代码,但是,在做开发的时候,不仅显得代码结构很乱,而且,功能也处处受到限制。请问高手们,出了使用struts和ajax之类的方法,有更好的方法实现吗?4) 对SSH中,我最熟悉的是hibernate,我也最喜欢它,我觉得他是真的有用。其次就是spring,我觉得struts最没有用,功能也不完善,而且较难使用。请教高手,我的理解对吗?目前对于MVC框架,或者说,对于在browser端隐藏代码,有更好的构架、方法吗?我是菜鸟,请高手们不要拍我,耐心一点回答我的问题啊。
感谢!

解决方案 »

  1.   

    ajax和struts做比较有什么意义
    这是2个完全不一样的东西,struts是MVC 控制层的东西
    而ajax可以说只是表现层的产物
    struts 和 servlet 比较还差不多
    SSH 整合中作用最大的不是hibernate 而是Spring 
    其次是struts。 
    hibernate才是可有可无的,作用没有spring和struts明显
    建议你多用用struts再来说
    SSH中使用最广的框架恰恰是你口中所说的struts
    反正我待的几家公司中所有的都用了struts
    而spring和hibernate只有1家用了
      

  2.   

    个人觉MVC框架STRUTS2最好用也最具价值,结合EL传值到视图层最方便,我开发所以项目都用到了STRUTS2。HIBERNATE比较傻瓜,由数据库逆向生成代码比较容易,如果使用注解,连XML配置文件也不用了,但我个人不太喜欢HIBERNATE,我比较喜欢MYBATIS。AJAX我最不喜欢的是前台取值,很罗嗦。
      

  3.   

    1.mvc其实是一种设计模式,struts只是一种实现,struts的优势就体现在实现了mvc,而不是你注重的数据传递的方便性
    2.ajax的js代码是可以封装的,只要前台符合html标准,用户看到的只会是生成的静态的html页面和元素
    3.struts1和ajax其实是没有可比性的2楼你以你待的几家公司所使用的技术来评定什么有用什么没用。。真是太坑爹了。
      

  4.   

    hibernate注重的就是以对象的形式访问数据库,缓存做好了的话,性能能提高很多,只是他有一个前提,数据库的设计必须要好,如果是二次开发,或者是现场开发,会让人有些蛋疼的
      

  5.   

    MVC 即model .view.controller
      

  6.   

    1:MVC 不是设计模式
    2:AJAX 与 MVC 是背离的
      

  7.   


    恩,呵呵。
    (1)ajax从名字就可以看出是一种前端的技术,而struts作为一种mvc模式的实现,更关注的是后台的框架,struts标签只是一种辅助;
    (2)正如楼主所有,ajax可以请求action,只要指定url就行,同时ajax的request对象也提供了向服务器发送请求参数的方法。
    (3)struts标签可以起到减少页面中的代码量,是页面更加整洁的作用。但是在J2EE的相关技术中标签体系比较多,struts 1、struts 2和jstl等等,用好这些标签不是一件容易的事。当然也存在一些模板技术如veloctiy等,页面装饰技术sitemesh等等,使得页面更为整洁,更好复用。
    (4)SSH中,我更为偏向于Spring,当然仁者见仁智者见智,应用场景的不同,使得技术的重要性也不同,不能一概而论。楼主不能将MVC等同于browser代码隐藏,那只是struts中的标签做的一部分工作,struts的重点不在这里。
      

  8.   

    各位高手,现在最好的mvc框架实现是struts吗?
    还有什么更好的吗?
    我是不是可以说,目前使用struts实现MVC其实还不是很成熟,还需要改善?
      

  9.   

    struts1和struts2那个更好?那个使用更广泛?各位使用最多的是哪个?