我的J2EE学习历程
由于最近手头没有JSP项目,所以暂停Hibernate和Spring的研究。个人觉得只有发现某个东西的不足之后再去学习新的东西来弥补这个不足比较好。就好比,最开始在JSP页面里面写Java代码,每次操作数据库都必须写连接数据库的语句,为了弥补这个不足,我们就开始学习Servlet。学习了Servlet之后,我们发现Servlet也有天生的不足,比如传值不方面等等,于是我们开始学习Struts。Struts很好地诠释了MVC思想,让功能的实现流程变得更加明了。但是Struts也有自己的不足,比如操作数据库的时候,每一步执行语句都必须亲自写。作为程序员,最反感的事就是每次都做相似的事情。这时我们就引入了Hibernate。Hibernate让对数据库的操作变得非常简便,存取的时候直接对对象进行操作,具体的SQL语句由Hibernate自动生成执行。说起Hibernate,有一种相见恨晚的感觉,因为是上一个项目做完之后才发现Struts的先天性缺点,所以学了Hibernate也暂时没能有用武之地。关于Spring,目前能做的就是看懂别人写的Spring代码,关于其使用还是等我发现Struts和Hibernate结合使用的缺点之后再续,所以对于J2EE的学习就暂告一段落了。
关于J2EE的学习,个人觉得一路走来实属坎坷,中间甚至一度打算以后不从事这方面的开发的。2010年12月开始接触JSP,那时候在工作室里面看HTML。简单熟悉了html之后就开始转手JSP。不得不承认,当初开始学的时候有点囫囵吞枣,上一届的学长学姐给了我们一个小的登录例子,我们大概地知道了是怎么回事。但是那时候连数据库都没有学,所以也是似懂非懂。后来某一周的周任务,通过学长学姐的指导及自己网上查阅资料,终于实现了几个小功能,当时还为此兴奋了一下的。不过现在看来,那时候真的连菜鸟的级别都算不上,因为我们甚至连CSS.DIV这些东西都没摸清楚是怎么回事,更不用提Javascript了。后来带着种种的疑问又开始接触servlet、EL表达式等等的,虽说大概知道是怎么回事,但凭个人能力做不出东西。2011年5月,借着数据库课程设计的机会我们开始接触Struts,虽然跟着视频教程把Hello world给写出来了,但是对于Struts的执行流程,脑袋里面还是一团雾水。后来的课程设计里面我做了一个小功能,但是没有用到Struts,是用很笨的方法实现了所需的功能。2011年暑假我们去三峡高科实习,接手别人留下来的一个J2EE项目,是用SSH框架开发的。我现在还记得当时对着满屏幕代码的时候的苦闷。对于刚接触Struts的我来说,Spring和Hibernate是神马东西我都不知道。在修改别人留下来的bug的时候,只是仿照别人写的代码来做改动。暑假两个月,啥都没学到,实属可惜。后来开学了,由于担任新生助理班主任忙于一些乱七八糟的事务,加之那时候大部分人都转向了Android开发,我就退出了工作室,在工作室学习JSP到此结束。
退出工作室之后的很长一段时间里,我都没有再看过和JSP有关的代码。一直到2012年3月,偶然逛到一个网站,看到里面有很多html例子就copy下来做测试。测试的过程中熟悉了以前不熟悉的html,很多很好的例子我都保存在博客里面。2012年9月,我们有门课程《毕业实习》,那时候忙于考研,而这门课程在机房进行,最后要交一个成果。那个时候,以前在工作室的同桌阿丁果断选择了做Andriod,而我,因为一直对JSP念念不忘还是选择了做JSP。于是在机房打酱油的时间里,我用servlet做了一个小系统,实现了几个小功能。
2012年10月份,我们选了毕业设计的题目。那时候在图书馆备考,去机房选课题的时候,选了一个很没技术含量的网站,想着这样既能弥补我没能独立做JSP项目的遗憾,又能保证顺利毕业。在备考的后三个月里,我一直坐在图书馆四楼A区。而在图书馆里计算机相关的比较好的书都在那一块。所以每次吃完饭回到图书馆,我就会去附近的书架拿几本书看看。那时候看得最多的是和JSP、JAVA、HTML有关的,偶尔也看看C++。到考研结束,四楼A区的JSP、JAVA、HTML相关的书几乎都被我翻过。考研结束后,在学校颓废了十天,期间开始重新学Struts2,在Verycd上找到了Struts视频。寒假回家,一个人无聊的时间里就窝在房间里面看Struts视频,到2013年开学的时候基本上能自己写代码了。2013年春季,借着在学院办公室值班能免费上网的机会,我开始做毕业设计。一个月的时间,当然也包括不少玩的时间在内,基本实现了网站前台的功能。后来考研复试,加上回家耽误了一段时间。回学校后搬进了研究生工作室,大概花了20天时间完成了网站后台。做完毕业设计我发现我对标签及一些表达式的使用很不熟悉。所以在后来导师给我的一个项目里面,大量使用Struts标签和JSTL标签及其他一些表达式,使得整个代码看起来比较舒服。但是也发现了Struts自身的一些缺点,就如文章开头说的。
至此,J2EE的学习暂告一段落。为了糊口,我决定开始研究PHP以便日后能够接到项目。Keep moving!!!
本文出自 “阿凡达” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1258512
我的J2EE学习历程的更多相关文章
- 我的Linux学习历程:那些我看过的Linux书籍们
[+]查看原图http://www.ituring.com.cn/article/119401 来北京工作已经一个多月,大都市的生活比起读大学要忙碌得多,尤其是出行,基本以小时为基本的计时单位.有时茫 ...
- StudyJams学习历程总结
Study Jams 是一个学习 Google 在线课程的活动.该活动由学员自发组建课程学习小组,旨在带领小组成员入门 Android 开发,最终将 Android App 上载至 Google Pl ...
- 3、J2EE学习推荐书籍
3.J2EE学习推荐书籍 J2EE的学习应该循序渐进,一本好书会很快上手和深入.在学习J2EE之前,应该学好SQL,基本上,程序设计都会跟数据库打交道.如果SQL没学好,就如同房子没有基脚 ...
- 大三仍是Linux系统小白的我给大家讲讲学习历程
我与Linux结缘是在大三的时候.我与Linux熟识是在偶然遇到<Linux就该这么学>的时候.因为我是电子信息工程专业,在高年级时开设了嵌入式课程,嵌入式系统是一种专用的计算机系统,作为 ...
- 登录模块的进化史,带大家回顾java学习历程(二)
接着前面的登录模块的进化史,带大家回顾java学习历程(一) 继续往下面讲 前面我们去实现登录功能,都是想着要完成这个功能,直接在处理实际业务的类中去开始写具体的代码一步步实现,也就是面向过程的编程. ...
- J2EE学习从菜鸟变大鸟之九 深入浅出理解 Servlet-----实例解析
关于Servlet的基础内容在前面已经和大家分享过了,参考J2EE学习从菜鸟变大鸟之七 Servlet,现在结合到DRP中学习,深刻的体会Servlet起到了枢纽中转的作用,控制逻辑(到MVC中更像是 ...
- 来自一个电子狂的stm32学习历程
文章尾部有学习时的一些视频资料在学的可以看看那么我们就进入今天的主题我stm32的学习历程 在学习了51单片机之后,早已经对单片机这个东西甚有了解了,所有不管是从内部资源,还是一些常见应用,都可以说的 ...
- Linux学习历程——Centos 7重置root密码
一.自述 最近刚刚接触linux,因为我设置密码比较随性,把自己做系统的时候设置的root密码给forget,每当系统崩溃,重新把虚拟机备份还原后,就面临无法登陆的尴尬情况,只得重置root密码,好了 ...
- Nginx系列0:Nginx学习历程
Nginx学习历程 一.初识Nginx 1.Nginx适用于哪些场景 (1)静态资源服务 通过本地文件系统提供服务 (2)反向代理服务 Nginx的强大性能 缓存 负载均衡 (3)API服务 Open ...
随机推荐
- iOS随机生成数字
有时候我们需要在程序中生成随机数,但是在Objective-c中并没有提供相应的函数,好在C中提供了rand().srand().random().arc4random()几个函数.那么怎么使用呢?下 ...
- BZOJ2120 数颜色(带修改莫队)
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...
- FastCopy包含和排除文件夹处理
包含和排除文件夹操作: 1.有多个时,用[;]进行分割. 2.可指定文件夹深度,也可以不用指定,直接最终名称. 3.不用指定盘符. 4.名称后面带上反斜杠[\]. 假如有两个文件夹:F:\A,F:\B ...
- hdu5047 找规律+欧拉公式
题意:在一个正方形内画n个M,求最多能分成多少个平面 sol:这种求划分成多少个平面的题第一反应肯定是欧拉公式: 二维平面上的欧拉公式:V+F-E=1 (V:Vertices,F:Faces,E:Ed ...
- struts2 CVE-2010-1870 S2-005 XWork ParameterInterceptors bypass allows remote command execution
catalog . Description . Effected Scope . Exploit Analysis . Principle Of Vulnerability . Patch Fix 1 ...
- iOS GCD中的dispatch_group
假如有一组任务,A,B,C,D,其中ABC是可以并行的,D是必须在ABC任务完成后再执行的. (举个场景,比如吃饭前必须先做菜.做饭和买饮料,然后才能开吃) 1.关于ABC的并行: 采用多线程的方式就 ...
- A.Kaw矩阵代数初步学习笔记 3. Binary Matrix Operations
“矩阵代数初步”(Introduction to MATRIX ALGEBRA)课程由Prof. A.K.Kaw(University of South Florida)设计并讲授. PDF格式学习笔 ...
- AngularJs $anchorScroll、$controller、$document
$anchorScroll 根据HTML5的规则,当调用这个函数时,它检查当前的url的hash值并且滚动到相应的元素. 监听$location.hash()并且滚动到url指定的锚点的地方.可以通过 ...
- HDU 1166 敌兵布阵(线段树模板题)
题目链接: 传送门 敌兵布阵 Time Limit: 2000MS Memory Limit: 32768 K Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头 ...
- HDU 1754 I Hate It(线段树模板题)
题目链接: 传送门 I Hate It Time Limit: 3000MS Memory Limit: 32768 K Description 很多学校流行一种比较的习惯.老师们很喜欢询问, ...