由于最近手头没有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. SQL Server 自增字段重置

    --- 删除原表数据,并重置自增列 truncate table tablename --truncate方式也可以重置自增字段 --重置表的自增字段,保留数据 DBCC CHECKIDENT (ta ...

  2. C++ 隐式类类型转换

    <C++ Primer>中提到: “可以用 单个形参来调用 的构造函数定义了从 形参类型 到 该类类型 的一个隐式转换.” 这里应该注意的是, “可以用单个形参进行调用” 并不是指构造函数 ...

  3. Chrome编辑了样式或者JS之后自动同步回本地工程

    比如我用HBuilder进行调试,在Chrome上修改了几个样式,我们通常的做法是,拷贝修改后的地方,然后再进行覆盖. 现在有了全自动的操作,在Chrome上修改了样式之后,通过Sources的Sav ...

  4. bzoj2765[JLOI2010]铁人双项比赛

    题意:铁人双项比赛由长跑和骑自行车组成,参赛选手必须先完成k公里的长跑,然后完成r公里的骑车,才能到达终点.参赛选手有的擅长长跑,有的擅长骑车. 如果总赛程s=k+r一定,那么K越大,对擅长长跑的选手 ...

  5. editGrid分录表格

    waf("分录id").wafGrid("setCellEditorAllConfig", "字段名", "filteritem& ...

  6. EF-CodeFirst 继承关系TPH、TPT、TPC

    继承关系 面向对象的三大特征之一:继承 ,在开发中起到了重要的作用.我们的实体本身也是类,继承自然是没有问题.下面开始分析 EF里的继承映射关系TPH.TPT.TPC 现在我们有这样一个需求,用户里要 ...

  7. select 1 from dual 中的1表示的含义

    select 1 from dual   在这条sql语句中的1代表什么意思?查出来是个什么结果?   其实: select 1 from table; select anycol(目的表集合中的任意 ...

  8. 加州大学伯克利分校Stat2.2x Probability 概率初步学习笔记: Midterm

    Stat2.2x Probability(概率)课程由加州大学伯克利分校(University of California, Berkeley)于2014年在edX平台讲授. PDF笔记下载(Acad ...

  9. C# 生成xml文件

    本篇文章旨在.net环境下生成xml文件,以控制台应用程序为例进行说明. 1.在vs中新建控制台应用程序CreateXml 2.CreateXmlFile:主要生成xml的函数 public void ...

  10. CF 204B Little Elephant and Cards

    题目链接: 传送门 Little Elephant and Cards time limit per test:2 second     memory limit per test:256 megab ...