关于最近用SSH框架写课程大作业的感想与总结

课程快结束了,需要写个管理系统的大作业,就是软件工程那一套东西,当然我只负责写代码,别的乱七八糟UML图交给别人了。

首先想的就是用什么东西写,我只会Java和PHP,要是想糊弄任务的话,当然PHP最简单,以前也用PHP写过一个Online Judge系统。这次就想这用Java来搞,J2EE不是有个很NB的SSH框架么。正好很久很久之前就想学的,大三的时候我哥当时准备找我写个网站系统的,但是我当时不会Java,或者说只会用Java写A+B吧,他们就是准备用SSH来写的。最后由于我啥也不会,这个就不了了之了。

这个暑假偶尔通过一个机会接触到了Hibernate,当时觉得OJBC果然尼玛NB,代码简单高效,还支持延迟加载,就果断学起,他的查询语句至今不会,每次都去查API,然后才知道怎么写HQL。Hibernate看的差不多了,就去搞Spring,学Spring的时候我认识到了松散耦合,这个概念太重要,软工不就是强调高内聚低耦合么,Spring的IoC、DI完全搞定了这个,而且Spring还支持JPA、Hibernate和自带的数据库框架,简直就是无敌的存在,后台的东西交给Spring来管理最好不过了。

Hibernate和Spring的学习大概花了一个多月吧,这两个框架我都用简单的例子上手编程了,但是我还是啥都记不住,需要用到的时候还是需要临时查资料,没办法。

Struts2的学习没有去实战编程,太麻烦了,只是看看网上的教程就完事了。

我这也算SSH都学了吧,这次就准备拿这个作业练手了,编程的过程中遇到了很多麻烦。

1、Struts2 的Validation用配置文件来实现,我怎么都实现不了,不管我的配置文件怎么写,我写的应该和网上教程一样的,最后只有用ActionSupport的validate函数来搞。

2、用validate函数又出现了一个问题,由于没有开始clearFieldAction等,导致页面不断提示之前的错误,折腾了好久。

3、编码问题,我所有的网页和MySql数据的编码都是UTF-8,但是数据库存的还是乱码,也从网上找到了很多的说是能解决的方案,都是前篇一律,没有讲到核心的东西,就算那样改还是乱码,最重要的环节在Hibernate与数据库连接的地方,在Hibernate配置文件中应该加<property name="connection.url">jdbc:mysql://localhost:3306/vote_system?characterEncoding=utf-8</property>,让数据库的存取操作全部用utf-8编码。

4、Struts2有的时候报找不到Action,这个错误我觉得是Struts2的一个Bug,就算你配置完全正确有时也报错,当你改个名字反而对了,蛋疼。这个错误好改,网上的解决方案都对,但是提醒一点的就是如果JSP里加了<s:token/>来防止重复提交的话,对应Action一定要有拦截器。

5、我一开始不能理解Session这个东西,以为服务器只有一个Session,存了很多用户的信息,事实是每个用户都有一个独立的Session,Struts2是和Hibernate一样用ThreadLocal来实现线程安全的,太2B了,为这个问题纠结了好久。

6、在用Cookie实现自动登录的时候,写过滤器造成了死循环,还好后来改正确了。

7、Struts2的request.getRequestDispatcher(arg0).forword();貌似不能用,我没有完全试验,网上也没找到啥好的解决方案

8、当我打开多个登录页面的时候,只能用最新打开的登录页面才能登录,之前的都是报告Struts2找不到对应的Action,这个问题至今还没有解决,也不知道为什么。

9、Hibernate与Spring集成的时候不能使用Hibernate的延迟加载功能,要实现这个功能需要用到Struts2的过滤器,并且把Hibernate的延迟加载关闭,Spring的实现方法就是你要延迟加载是吧,我不延迟直接先把你拿出放内存中放着,你要用我就直接给你。这就造成了侵入式,反正很不好。

主要问题就这么多吧,还没有写完,可能还会遇到各种奇奇怪怪的问题,但又问题总比没问题好,遇到问题不是坏事,问题总有解决办法。

通过这个作业也算真正的实战了一次SSH,感觉挺简单的,在编码中学习才能掌握更多,这是我一贯奉行的,不写怎么知道自己哪不会。

为了写这个东西这两个星期是累死了,不知道死了多少脑细胞,不过也掌握了SSH。只待更大的项目和更牛逼的人带着你学习到更多的东西,入门简单,精通难啊。

对于Java,我也真是服了我自己了,感觉啥也不会,使用个List或Array都要去谷歌,自己啥也记不住,但是你让我用Java写吧,我还真能把它写出来,囧。


最后,请GCD把谷歌还给我吧,虽然能搜东西了,但是慢的要死,而且很多链接打不开,百度只能搜垃圾。您老都开完会了,就行行好,不然日子没法过啊。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值