`
pandong8183
  • 浏览: 57764 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JavaWeb项目到底该使用什么框架?

    博客分类:
  • J2EE
 
阅读更多

现在所有人都知道,Java项目一般都要使用框架,比如SSH,但是很多人对SSH了解得多吗?接下来,我就来说说我个人的理解,这个问题其实很大,每个人都有自己的理解,我肯定有不正确的地方,权且当抛砖引玉

1.有的人认为使用了SSH可以大大提高系统速度,其实不然,我两个月前遇到的一个银行反洗钱项目就使用struts1.2 + jdbc开发,数据库20G左右,同样正常运行,速度还可以,我认为SSH提高的是非视图层的开发效率,减少了维护难度,对于运行速度倒不一定

 

2.有的人认为只要会SSH的基本组合就可以了,其实不然,它们每个都是很多的版本,有些版本存在本质区别,如struts1和struts2的本质不同,spring2和spring2.5的注解配置,如果一点不考虑,一股脑采用配置文件,最终的结果只会被配置文件淹没,反而提高了维护难度,当然,太多的注解也让人昏迷,所以我认为必须对这些重点差异版本都进行学习,至少使用一会,自己去体会,找到配置文件和注解的平衡,从而提高开发效率,减少维护难度

 

3.有的人认为hibernate好啊,有了它就万事大吉,其实不然,经过实践证明,它无法对复杂sql进行良好处理,事实上,实际项目中对复杂sql的需求相当高,远比增删改多,比如,我曾经做过的反洗钱系统中,三个大表,即使分表后依然千万级的数据量,并且三表还存在关联,使用hibernate,无法想象,所以我们使用ibatis2来专门处理复杂查询sql,以及批量修改和删除,使用hibernate来处理其他操作

这里给一个SQL,看谁能使用HQL写出来,如果有,我佩服

select datename(year,a.tr_date)+datename(month,a.tr_date)+(case when day(a.tr_date)<10 then '0'+datename(day,a.tr_date) else datename(day,a.tr_date) end )  as trade_date,
        datename(year,a.analyse_date)+datename(month,a.analyse_date)+(case when day(a.analyse_date)<10 then '0'+datename(day,a.analyse_date) else datename(day,a.analyse_date) end ) as analyse_date,
        datename(year,a.rep_date)+datename(month,a.rep_date)+(case when day(a.rep_date)<10 then '0'+datename(day,a.rep_date) else datename(day,a.rep_date) end ) as rep_date,
       a.*,
       d.*,
       s.file_name
  from tbriskshow a, tbriskshow_detail d, tbriskshow_relation r,  rep_riskshow_file s
 where a.check_flag > 2
   and a.sus_flag = 2
   and r.id = a.id
   and r.tbriskdetail_id = d.id
   and a.status = 0
   and a.type = 5
   and s.riskshow_id = a.id

 

4.合理的配置文件布局很重要,项目开发才能正常进行,不要以为将所有struts,spring配置信息放置在一个文件中会很爽,如果你感觉到爽,那是因为你做的项目太小,所以全部按某种规范分开放置,使用总配置文件来引用这些配置

 

5.再说说视图层,当前无外乎是JSP、CSS、JS、EL、JSTL、JSF、Jquery、Ext等技术,再高级点的就是使用JSP自定义标签技术将某些东西封装起成标签表单和表格,供统一调用,其实不管怎么样,由于每个人技术层次不同,到了后面维护必可避免的难搞,所以我结合我自己做过、参与过、看过的项目,认为视图层可以这样做:将所有控件封装(有人可能会说,这得封装多少东西啊,其实主要封装了表单、表格、树形、复选下拉、对话框,就能解决大部分问题),开发人员使用标准XML来配置界面以及其方法,再通过一个标准XML格式和服务器(SSH、存储过程)进行交互,这样,哪怕一个对界面完全没有感觉的人也能做出漂亮且风格完全统一的页面,并且维护相对容易,以下是一个示例

 

页面配置XML:

<!-- 菜单操作基础表单 -->
<view id="10000011_form_base_conf">
	<column>2</column>
	<defButtons>true</defButtons>
	<col type="number" field="cdbh" readonly="true" value="-1">菜单编号</col>
	<col type="number" field="fjbh" readonly="true" value="-1">父级编号</col>
	<col type="input" field="cdmc" must="true">菜单名称</col>
	<col type="select" field="sfzy" must="true" option="是:1|否:0">是否枝叶</col>
	<col type="number" field="pxh">排序号</col>
	<col type="input" field="ljdz" must="true">连接地址</col>
</view>

<!-- 添加菜单 -->
<view id="10000011_form_add_conf">
	<ext>10000011_form_base_conf</ext>
	<add_func_id>10000012</add_func_id>
</view>
<!-- 修改菜单 -->
<view id="10000011_form_edit_conf">
	<ext>10000011_form_base_conf</ext>
	<edit_func_id>10000013</edit_func_id>
	<delete_func_id>10000014</delete_func_id>
</view>

 

数据访问XML:

 

<func id="10000012">
	<param name="cdmc" type="varchar" nullValue="" />
	<param name="sfzy" type="int" nullValue="0" />
	<param name="fjbh" type="int" nullValue="0" />
	<param name="pxh" type="int" nullValue="0" />
	<param name="ljdz" type="varchar" nullValue="" />
</func>

  

6.最后说说JavaWeb的未来,当然我个人认为的未来,随着Iphone,Ipad,安卓的普及,JavaWeb进军手机是必然的,就像当年PC上用PB,VB做的MIS,CRM等管理类桌面程序被大清洗一样(本人原来也是个PB程序员,后来转的Java,现在还依稀记得datewindow的风采),所以我认为JavaWeb的未来就是手持设备浏览器,服务器端其实应该没有太大变化,主要前端UI部分:多风格、多点触控式完全替代传统的表格、表单都是可能的,现在已经有不少框架出现,JQtouch、Jquery Mobile、Sencha Touch等等,当然这些我自己也还在学习中,谈不出什么,但我相信这就是未来,让我们拭目以待吧

分享到:
评论

相关推荐

    毕业设计-JavaWEB项目基于SSM+mysql框架实现的在线商城系统源码.zip

    毕业设计-JavaWEB项目基于SSM+mysql框架实现的在线商城系统源码.zip毕业设计-JavaWEB项目基于SSM+mysql框架实现的在线商城系统源码.zip毕业设计-JavaWEB项目基于SSM+mysql框架实现的在线商城系统源码.zip毕业设计-...

    不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:仓库管理系统.rar

    不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:仓库管理系统 不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:仓库管理系统 不错的可用来练手、课程设计、毕业设计的Javaweb项目源码:仓库管理...

    TeenMusic在线音乐分享系统 | JavaWeb项目开发使用了SSH框架

    总结起来,"TeenMusic在线音乐分享系统"是一个基于SSH框架的JavaWeb项目,它展示了如何运用这些技术构建一个功能完善的音乐分享平台。对于想要提升JavaWeb开发技能的程序员,这个项目提供了一个实际操作的学习资源,...

    34个经典javaweb项目实例

    本资源提供了34个经典JavaWeb项目实例,旨在帮助开发者深入理解并掌握JavaWeb开发的核心技能。 1. **Servlet与JSP基础**:Servlet是JavaWeb的基础,用于处理HTTP请求,而JSP(JavaServer Pages)则是一种动态网页...

    5个Javaweb项目

    10. **安全考虑**:JavaWeb项目中需要考虑安全性问题,如SQL注入、XSS攻击、CSRF(跨站请求伪造)等,Spring Security或Apache Shiro等安全框架能帮助处理这些问题。 11. **单元测试与集成测试**:JUnit是Java的...

    JavaWEB项目开发案例精粹

    ### JavaWEB项目开发案例精粹 #### 一、概述 《JavaWEB项目开发案例精粹》是一本专注于JavaWEB技术领域的书籍,它汇集了大量的实际项目案例,并提供了完整的源代码供读者学习与参考。本书旨在帮助读者更好地理解和...

    javaweb项目实训

    JavaWeb项目实训是初学者踏入Web开发领域的重要实践环节,它涵盖了从数据库交互到前端展示的完整流程。在这个过程中,开发者需要掌握Java编程语言、Servlet、JSP等核心技术,并了解如何将它们应用到实际项目中。下面...

    实战突击JavaWeb项目整合开发实例各种框架

    【标题】:“实战突击JavaWeb项目整合开发实例各种框架” 在JavaWeb开发中,整合不同的框架可以帮助我们构建高效、可维护的大型应用。本实战教程将深入探讨如何将Struts、Spring和Hibernate三大主流框架集成到一个...

    javaweb课程设计项目:基于ssm框架实现的教师科研信息管理系统.zip

    javaweb课程设计项目:基于ssm框架实现的教师科研信息管理系统 javaweb课程设计项目:基于ssm框架实现的教师科研信息管理系统 javaweb课程设计项目:基于ssm框架实现的教师科研信息管理系统 javaweb课程设计项目:...

    (JavaWeb基于SSM框架的毕业设计)仿360buy京东商城源码 京东JavaWeb项目源代码.zip

    (JavaWeb基于SSM框架的毕业设计)仿360buy京东商城源码 京东JavaWeb项目源代码(JavaWeb基于SSM框架的毕业设计)仿360buy京东商城源码 京东JavaWeb项目源代码(JavaWeb基于SSM框架的毕业设计)仿360buy京东商城源码 京东...

    实战突击JavaWeb项目整合开发各种框架

    在本实践教程中,我们将深入探索JavaWeb项目整合开发的各种框架,包括Struts、Hibernate和Spring。这些技术是Java企业级应用开发的核心组件,能够帮助开发者构建高效、可维护的Web应用程序。 首先,Struts是一个...

    javaweb项目文件.zip_javaweb_javaweb项目_javaweb项目开发_racea3s

    在这个"javaweb项目文件.zip_javaweb_javaweb项目_javaweb项目开发_racea3s"压缩包中,我们看到它包含了一个名为"jspbbs"的子文件,这很可能是该项目的主要源代码目录。下面,我们将深入探讨JavaWeb项目开发的相关...

    javaweb项目

    JavaWeb项目是一个基于Java技术构建的Web应用程序,它主要用于实现互联网上的交互式服务。这个项目包含源代码,并且有详细的文档注释,非常适合JavaWeb开发的初学者和初级程序员进行学习和实践。物流信息网是一种...

    6-16JavaWeb项目代码

    【JavaWeb项目代码详解】 JavaWeb是Java技术在Web应用中的一个重要领域,它结合了Servlet、JSP(JavaServer Pages)、JavaBean等组件,用于构建动态网页应用。本项目"6-16JavaWeb项目代码"是JavaEE平台下的一份典型...

    完整的javaweb项目

    在这个JavaWeb项目中,可能会使用到的技术和工具包括但不限于:Servlet、JSP、JDBC、MVC框架(如Spring MVC)、ORM框架(如Hibernate或MyBatis)、前端框架(如jQuery、Bootstrap)、模板引擎(如FreeMarker或...

    34个经典javaweb项目实例.zip

    这个压缩包"34个经典javaweb项目实例.zip"提供了丰富的实践资源,对于学习者来说是宝贵的资料库,可以帮助加深对JavaWeb开发的理解并提升实际操作技能。 1. **Servlet技术**:Servlet是Java服务器端程序,用于处理...

    10个Javaweb项目ppt

    9. **Spring框架**: Spring是Java企业级应用开发的核心框架,提供了依赖注入(DI)、面向切面编程(AOP)、事务管理等功能,简化了JavaWeb项目的开发。 10. **Struts、Hibernate等框架**: Struts是一个MVC框架,...

    JavaWeb 项目 必胜客在线订餐系统.zip

    在JavaWeb项目中,常用JDBC或者ORM框架如Hibernate、MyBatis来操作数据库。数据库设计的合理性直接影响到系统的性能和可维护性。 【源码】部分包含了项目的实际代码,可能包括Servlet、JSP、JavaBean等文件。...

Global site tag (gtag.js) - Google Analytics