0前言
1)概述
本人有10年使用ASP.NET的经验,在2007年时,有三个月的Java使用经验,主要是做Swing的东西,
当时感觉MyEclipse真不好用,Java和C#的语法差不多,但是Java对通用编程比C#好多了。
由于需要,今年(2013)2月份开始,重拾Java,主要用来做Web程序。
目标:尽快掌握Java Web开发的相关知识及各项技能
2)学习策略
l 根据ASP.NET的使用经验,首先囫囵吞枣的对Java各项技术进行了解,做出一个简单的Web项目,然后在此基础上进一步学习。
l 编辑器,JDK等根据主流选择MyEclipse8.7和JDK1.6,这样出错容易解决。
l 在周围找对JAVA比较熟悉的高手,多多请教。
3)我的相关经验:
以前使用ASP.NET中的Castle Monorail写项目,感觉Castle Monorail的布局(layout--类似于模板页),自定义控件(component)、VTL很好用,所以希望在Java中找到相应的技术。
4)选择
我的选择
根据高手的推荐,编辑器暂时选择MyEclipse8.7,JDK选择1.6,WebService选择CXF,数据库访问使用Mybatis3.1.1,Spring使用Spring3.1,
MVC框架使用Spring,模板技术使用Freemarker,脚本库使用JQuery1.7.2和easy ui。
其他选择:
数据库访问有推荐使用Hibernate,MVC框架有推荐Structs的,脚本库有推荐使用EXT,模板语言自己使用过VTL,WebService有推荐使用atis的,都没有采用。
未解决问题:
如果有通知时,如何通知到前台页面。选项有WebSocket(HTML5.0),页面轮询访问,OCX控件,消息中间件(例如MQ),但是至今没有一个好的办法(可能一般Web也不需要这样处理,但是有些比较复杂的页面确实需要)。
5)我心目中的Java Web结构:
我心目中的Java Web结构式这样的:
1)程序分为通用层(异常,业务对象,数据合法性验证)、数据访问层(数据库访问、WebService),逻辑层,控制层和页面层。
2)所有错误信息由异常统一报出,异常分为逻辑异常,数据库异常,数据验证异常和其他异常(根据实际需要增减),由控制层统一捕捉,并输出到展示层(页面层)。
3)数据访问层包括访问数据库、访问第三方WebService,访问消息中间件以及其他。
4)逻辑层处理业务逻辑及数据库事务,并对输入数据的合法性进行验证(此处验证最好和页面的js验证一致---此处和前台页面最好都使用通用层的数据合法性验证部分进行验证)。
5)控制层由页面的action和WebService组成,控制层负责在展示层和逻辑层之间进行数据转换,异常捕捉,页面跳转。
6)有一类特殊的WebService,直接访问数据库,这些WebService的目的是代理数据库的访问,使调用客户端不直接访问数据库,屏蔽数据库差异。
7)展示层暂时主要考虑了Web页面,使用taglib和easy ui显示信息,使用FreeMark进行模板生成,
使用FreeMark的宏实现布局功能(类似于模板页)及自定义控件功能。
8)前台页面和后台逻辑使用同一套规则对输入数据进行合法性验证。
未解决问题:
前台页面和后台逻辑如何使用同一套规则对输入数据进行合法性验证?
当前的想法是通用层的数据合法性验证部分返回的错误信息(数据合法性异常)包含错误内容以及关联属性,当出错时,页面可以根据关联属性定位出错HTML元素。
改进
最开始我打算在控制层使用AOP进行异常统一处理,根据高手的建议,换为使用过滤器进行异常处理。
我心目中的结构图
这是我画出的心目中的结构图,没有什么东西,只是表达了我的想法。曾经被同事讥笑为为了技术而技术,用的四不像,采纳了他的一些建议。
相关推荐
matlab资源 该存储库旨在帮助初学者从头开始学习 Java 编程 仅供学习参考用代码
这事一个很不多的java课件 本人觉得不错 所以共享下 希望很给想学习java的同学带来一定的帮助
从头开始学习Java课程-资料来源PillsInformática。
Java基础 从头开始学习 Java 的基本练习 系列练习循序渐进,点评: 01你好世界 02 通过屏幕/键盘进行数据输入和输出
java高手总结的java学习经验,如果你是从头开始学习java,在高手的指导下进阶更快!
学习JAVA 最好看看 里面简单介绍了下如何从头开始学习JAVA
从头开始学习MySQL and PHP
从头开始学java?这不是问题,下下来看看吧,高手总结的java学习经验!!快下载吧!
如果您了解一点C或JavaScript,本指南就是从头开始学习Java。 这是一个正在进行的工作,应该在下一个Java LTS(Java 17)发布时准备就绪。 所有代码都在启用预览功能的Java 14上运行。 注意:如果您只希望查看...
从头学XML和Java编程一例通.part2.rar
学生管理系统的各个模块代码,已实现,可能存在某些偏差,欢迎大家指正和沟通,本人也是从头开始学习JAVA,理解还有很多不到位的地方,望大家谅解
此资源是个人学习时的遗留物》 有点案例可能不详细,仅为参考。 学习交流使用
从头学XML和Java编程一例通.part3.rar
从头学XML和Java编程一例通.part4.rar
从头学XML和Java编程一例通.part5.rar
从头学XML和Java编程一例通.part1.rar
超好的学习课件,内容详细,超经典。大家想自主从头学的我极为推荐。好用
超详细的JAVA开发技术教程。从头开始学JAVA必备
毕加索是一个非常简单的3D游戏引擎和物理引擎,仅使用Swing标准库从头开始用Java编写。 尽管建议使用真实的游戏引擎或库来创建更高级的游戏,但它可以用于制作非常简单的3D游戏。 它因使用画家的算法对场景几何图形...
Decision Tree from scratch 从头开始的决策树 Denoising Autoencoder (DAE) on MNIST 降噪自动编码器 (DAE) 在 MNIST 上 Entity Embeddings for categorical data 分类数据的实体嵌入 Expectation-Minimization ...