贴吧小结报告
终于完成了这个贴吧系统,虽然还有很多地方不完善,但是却包含了我很多心血和精力,也实践了我的很多想法。 具体的不说了,稍微说一下开发使用的技术:Java、Struts2、Hibernate、OGNL、Eclipse、Tomcat、MySQL、AJAX、jQue ry、SVN、UP开发模式、UML。 之中学习了很多内容,我恨兴奋,说起来这是我第一个完整写的一个网站系统,之前的asp啊,asp.NET多多少少借鉴了别人的代码。 ...
终于完成了这个贴吧系统,虽然还有很多地方不完善,但是却包含了我很多心血和精力,也实践了我的很多想法。 具体的不说了,稍微说一下开发使用的技术:Java、Struts2、Hibernate、OGNL、Eclipse、Tomcat、MySQL、AJAX、jQue ry、SVN、UP开发模式、UML。 之中学习了很多内容,我恨兴奋,说起来这是我第一个完整写的一个网站系统,之前的asp啊,asp.NET多多少少借鉴了别人的代码。 ...
上次遇到过<s:if>的问题,费了好久才弄好,这次又遇到,有了一点新的体验。 <s:if test="">中的判断,如果是数字判断一般都没有问题,问题会在字符串时候凸显出来。 尤其是中文字符串,几乎没有能够通过的,上一次是曲线救国,用了true和false着两个英文,如果非得用中文怎么办? 其实使用<s:if test=‘str==“中文”’>,就可以了,请注意,是单引号-双引号-中文-双引号- 单引号的顺序,这样才能够正确的解析中文字符串是否相等。 ...
查看sql更新版本,我才发现这个项目已经做了将近2个月了。 之前一个多月都是我有空就做做,一边要写OpenSSL的模型,还要应付平时学习和考试,最近的1个星期,才开始全身心投入的,使这个项目变成了一个课程设计,但决不 止于课程设计。 由于鸡鸡的加入,而且对原先设计的一些不满意,我用UP的方式重新对系统进行了设计,从用例到实际类图,都重新设计并加以重构。 这是一个很有意义的过程,我花了很多时间在UML的使用上,用的是StarUML(开始使用Rose,发现太难入门了),继烨负责用例,我是在设计完第一个迭代过程之 后进行编写代码的。 ...
明天要考数据库应用了,今天仍然忍不住把校内踩踩小工具写完。 上次被打击了,人家刷人气的工具是建立一个平台进行互踩,但是安全性存在问题。我自己写的这个小东西能在校内限制范围内刷50个相同区域的页面(校内限制次数是100 ,可以执行两次,以后再执行就必须到网页输入验证码),然后通过他人回踩来提高人气。 纯粹是自己写着玩,几乎没有什么应用价值,不过既然写了这么久,也就放上来,大家把玩一下。 压缩包内两个文件,一个xml保存帐号密码,用文本编辑器就可以编辑,另外一个是jar文件,在cmd下面用"java -jar XiaoneiCaiCai.jar"运行。 ...
这段时间在写校内小工具,开心农场小外挂,刷刷人气的小外挂。 结果开心农场的FramKey改了算法,由时间参数改为flash中(5, 3)这点RGB颜色,而且返回的JSON也重新加密了。我对AS3不懂,而且破解算法也不是我强项,就暂停开心农场外挂的开发。 想把这个工具转为校内刷人气的,原理就是访问大量用户,可能会有一定几率其他用户回访。这个不难写,我只要用爬虫去爬就可以获得大量相关用户,但是爬着爬着,发现校内 只允许在一段时间内查看100用户页面,否则会有验证码,而且爬时候还不能并发。这样一来,就需要手工输入验证码,刷的效率会大打折扣。 ...
校内工具需要保存用户名和帐号,我就想把帐号信息作为一个XiaoneiUser类,然后对其进行对象持久化。 Google下的方法有好几种方法进行持久化,JDOM, DOM4J, SAX等。我看了之后,感觉都比较麻烦,我个人比较喜欢使用jdk自带的工具,但是查阅jdk api之后,感觉使用 javax.xml.* 下工具开发更加困难。 我仅仅是需要对一个简单的对象进行持久化来保存数据,并不需要太多太复杂的功能。最后我决定使用《Thinking in Java》推荐的开源类库:XOM 猛击这里打开www.xom.nu 友情提示一下,网站可以打开,但是下载的连接貌似被墙了,至少我教育网连不上去。推荐 一个在线代理服务器古狗在线代理(猛击这里打开),通过它就可以下载类库了。 使用类库非常简单,我这里提供个小例子。XiaoneiUser类 ...
终于又考完一门试,开始做课程设计了,结果课程设计给工作室一个尾气3个月的项目,而这次的先用我写的贴吧放上去,我变得暂时空闲了,开始着手写校内开心农场小工具- 全能拖拉机。 首先要解决的就是校内登录的问题,那就是Get/Post方法了,还有用户状态保存,就是session的操作。Java不同于C#,那位可以集成系统 的浏览器或者之间创建一个Browser。 开始写了自己的第一个版本。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.net.HttpURLConnection; public class FarmerHelper { /** * @param args * @throws ProtocolException */ public static void main(String[] args) throws ProtocolException { String loginUrlStr = "http://login.xiaonei.com/Login.do"; String homeUrlStr = "http://home.xiaonei.com/Home.do"; URL loginUrl = null; URL homeUrl = null; HttpURLConnection loginConn = null; HttpURLConnection homeConn = null; try { loginUrl = new URL(loginUrlStr); homeUrl = new URL(homeUrlStr); try { loginConn = (HttpURLConnection) loginUrl.openConnection(); homeConn = (HttpURLConnection) homeUrl.openConnection(); } catch (IOException e) { print("Conn't open the url connection!"); e.printStackTrace(); } } catch (MalformedURLException e) { print("Illegal URL!"); e.printStackTrace(); return; } loginConn.setRequestMethod("POST"); loginConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10)" + " Gecko/2009042316 Firefox/3.0.10"); loginConn.setRequestProperty("Keep-Alive", "300"); loginConn.setRequestProperty("Connection", "keep-alive"); loginConn.setRequestProperty("email", "alswlwangzi@163.com"); loginConn.setRequestProperty("password", "xh77Gffb_i"); loginConn.setRequestProperty("submit", "登录"); loginConn.setRequestProperty("Keep-Alive", "300"); try { loginConn.connect(); String headerName = null; String cookie = ""; /* * for (int i=0; (headerName = * loginConn.getHeaderFieldKey(i))!=null; i++) { if * (headerName.equals("Set-Cookie")) { cookie = * loginConn.getHeaderField(i); print(cookie); } } */ cookie = loginConn.getHeaderField("Set-Cookie"); print(cookie); homeConn.setRequestProperty("Cookie", cookie); homeConn.setRequestMethod("GET"); homeConn.connect(); BufferedReader in = new BufferedReader(new InputStreamReader( homeConn.getInputStream())); String lineStr = null; while ((lineStr = in.readLine()) != null) { // print(lineStr); print(new String(lineStr.getBytes("GBK"), "UTF-8")); } } catch (IOException e) { print("conn't connect to the server!"); e.printStackTrace(); } } private static void print(Object o) { System.out.println(o); } } 想法总是好的,现实总是残酷的,调试很久,用WireShark抓包,都是有Length Required错误,这个比较头疼,我感觉是我session传递的问题(其实不是,后来发现是Post的格式问题),于是网上找来一个Session操作类。 ...
早上把代码输出成了Runnable Jar,生成一个jar格式的文件,只要是有JavaSE的电脑都可以运行了。 当然,不是双击运行,进入CMD,然后进入jar文件所在文件夹,运行"java -jar Mp3Lrc.jar" 就会出来提示输入Mp3根目录和歌词根目录,把两个目录输入就可以运行了。 猛击这里下载Mp3Lrc.rar 这个程序是自己用的,可能存在Bug,由于会操作文件,请在使用前备份重要资料(虽然根本没有删除命令,只有复制命令)
大家可能会遇到这样的情况,Mp3里有很多歌,电脑上也有很多相同的歌,但是有歌词。把歌词同步到Mp3播放器非常麻烦,我以前用千千静听导入目录,然后逐个播放,或 者用一个软件从网上搜索到Mp3播放器。 千千静听或者其他播放器都会有一个选项是设置歌词存储位置的,一般来说,我们听过的歌都是会自动下载歌词到这个文件夹,其实 我们完全可以不必大费周折去找lrc,只要把这个歌词文件夹和Mp3播放器同步就可以了。 以前就想写一个东西完成这个麻烦的工程,现在贴吧1.0完成了,可以休息几天,晚上花了一点时间用Java写了一个这样的小东西。 如果大家碰到和我一样的麻烦,可以试试。呃,时间仓促,没有图形界面,而且必须是Java程序员才能用,因为我这儿只提供了源码…. ...
贴吧1.0差不多可以完成了,进入界面美化,我服务器验证写完之后,开始用jQuery写js。 使用了jQuery的UI,后来想加入Ajax验证,但是遇到了问题: 09-05-23 07:53 WARN [org.apache.struts2.dispatcher.Dispatcher] - Could not find action or result There is no Action mapped for namespace / and action name AjaxLogin. - [unknown location] 我整整找了一个多小时,曾以为是action name的问题或者是package name, package namespace 的问题,为此我特意重新学习了一下他们的使用方法,但是仍然没有效果。 最后,终于在Google找到了一些资料: struts2 json jquery 集成详解来自 户起龙的博客 ...