由于最近手头没有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学习历程的更多相关文章

  1. 我的Linux学习历程:那些我看过的Linux书籍们

    [+]查看原图http://www.ituring.com.cn/article/119401 来北京工作已经一个多月,大都市的生活比起读大学要忙碌得多,尤其是出行,基本以小时为基本的计时单位.有时茫 ...

  2. StudyJams学习历程总结

    Study Jams 是一个学习 Google 在线课程的活动.该活动由学员自发组建课程学习小组,旨在带领小组成员入门 Android 开发,最终将 Android App 上载至 Google Pl ...

  3. 3、J2EE学习推荐书籍

    3.J2EE学习推荐书籍       J2EE的学习应该循序渐进,一本好书会很快上手和深入.在学习J2EE之前,应该学好SQL,基本上,程序设计都会跟数据库打交道.如果SQL没学好,就如同房子没有基脚 ...

  4. 大三仍是Linux系统小白的我给大家讲讲学习历程

    我与Linux结缘是在大三的时候.我与Linux熟识是在偶然遇到<Linux就该这么学>的时候.因为我是电子信息工程专业,在高年级时开设了嵌入式课程,嵌入式系统是一种专用的计算机系统,作为 ...

  5. 登录模块的进化史,带大家回顾java学习历程(二)

    接着前面的登录模块的进化史,带大家回顾java学习历程(一) 继续往下面讲 前面我们去实现登录功能,都是想着要完成这个功能,直接在处理实际业务的类中去开始写具体的代码一步步实现,也就是面向过程的编程. ...

  6. J2EE学习从菜鸟变大鸟之九 深入浅出理解 Servlet-----实例解析

    关于Servlet的基础内容在前面已经和大家分享过了,参考J2EE学习从菜鸟变大鸟之七 Servlet,现在结合到DRP中学习,深刻的体会Servlet起到了枢纽中转的作用,控制逻辑(到MVC中更像是 ...

  7. 来自一个电子狂的stm32学习历程

    文章尾部有学习时的一些视频资料在学的可以看看那么我们就进入今天的主题我stm32的学习历程 在学习了51单片机之后,早已经对单片机这个东西甚有了解了,所有不管是从内部资源,还是一些常见应用,都可以说的 ...

  8. Linux学习历程——Centos 7重置root密码

    一.自述 最近刚刚接触linux,因为我设置密码比较随性,把自己做系统的时候设置的root密码给forget,每当系统崩溃,重新把虚拟机备份还原后,就面临无法登陆的尴尬情况,只得重置root密码,好了 ...

  9. Nginx系列0:Nginx学习历程

    Nginx学习历程 一.初识Nginx 1.Nginx适用于哪些场景 (1)静态资源服务 通过本地文件系统提供服务 (2)反向代理服务 Nginx的强大性能 缓存 负载均衡 (3)API服务 Open ...

随机推荐

  1. iOS蓝牙开发(一)蓝牙相关基础知识(转)

    转载自:http://www.cocoachina.com/ios/20150915/13454.html 原文作者:刘彦玮 蓝牙常见名称和缩写 MFI ======= make for ipad , ...

  2. asp.net mvc中应用缓存依赖文件(xml)的一个小demo

    最近项目中加了一个通用模块,就是根据一些特殊的tag,然后根据处理这些tag在同一个视图中加载不同的model(个人觉得此功能无任何意义,只是把不同的代码放在了同一个View中). 我的处理思路是这样 ...

  3. [学习笔记]tarjan求割点

    都口胡了求割边,就顺便口胡求割点好了QAQ 的定义同求有向图强连通分量. 枚举当前点的所有邻接点: 1.如果某个邻接点未被访问过,则访问,并在回溯后更新 2.如果某个邻接点已被访问过,则更新 对于当前 ...

  4. Leetcode 376. Wiggle Subsequence

    本题要求在O(n)时间内求解.用delta储存相邻两个数的差,如果相邻的两个delta不同负号,那么说明子序列摇摆了一次.参看下图的nums的plot.这个例子的答案是7.平的线段部分我们支取最左边的 ...

  5. 51nod平均数

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  6. bzoj2631: tree

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  7. C语言之流的重定向

    写c的小程序断不了需要输入输出,手动输入可太麻烦了.下面介绍IO的重定向方式: .重定向标准输入输出和错误,直接在命令行使用符号< > > >> >>等,还可 ...

  8. Birthday-24

    2013 LEXUS花样滑冰 和母亲在一起,生日快乐!

  9. Discuz! X upgrade/converter GETSHELL Vulnerability Via /convert/include/global.func.php Inject Special Symbol Into /convert/data/config.inc.php

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 对于PHP应用来说,处于用户的输入并正确划定"数据-代码"边界 ...

  10. String、StringBuffer、StringBuilder源码分析

    利用反编译具体看看"+"的过程 1 public class Test 2 { 3 public static void main(String[] args) 4 { 5 int ...