我的第一个 JSP (SSH) 个人网站【开源】
唠叨两句背景
相当长时间没上来发帖了,最近几个月除了完成产品经理一个又一个重复又重复的app开发任务之外,最大的工作莫过于充分利用上笔主的业余时间,系统性地跟李刚同志学习JavaEE的SSH框架开发技术,独立开发出一个完整的JSP个人网站了 XD
毕业以来两年多的Android开发之路,虽然是一路摸黑走了下来,应用开发也越来越得心应手,但是渐渐的清晰的意识到,Android虽然有自己的数据库,有自己的界面部分和逻辑处理部分,作为一个完整的系统而存在,但如果放到互联网之中也只不过跟HTML一样,只是充当着一个View的角色,大概也就是一个重量级的CS模式吧,要开发一个手机应用app,脱离服务器的支持不进行网络访问是非常不实际的,只能是闭关锁国自己跟自己玩,就像癌症末期患者,一旦发布就只剩下死路一条..
笔主从来就不是一个缺乏创意的人 :P 偶尔灵光一现积累下来的创意记录,细数也有几十条了(现在看来一半以上是垃圾呵呵),当然也不乏是针对Android的app创意,但是要实现出来除了时间和勇气之外,另一个不可回避的问题就是服务器后台支持了,也许笔主是一个没人缘的家伙,悲观的想了下,大概没有懂服务器开发的盆友愿意为了笔主的一堆垃圾创意而卖笔主这么一个人情帐(本来就没认识多少懂这块的,也舍不得花钱请人弄)。穷逼的笔主痛定思痛,决定割弃数月找女盆友的娱乐时间,亲自把服务器开发技能get√下来!
当初因为机缘巧合之下投身于Android开发事业,对Java的感情日益深厚,要弄服务器的话自然就是JavaEE了,曾经做过几个BS平台的项目,用的正是JavaEE+SSH框架,多少积累了一些印象,在百度搜刮了一段时间后,毅然选择了李刚大湿的轻量级JavaEE,钱不多,书很厚道,800页挤了140万字,后来深刻的认识到自己为了这个选择付出了多么沉重的代价..
书是从今年春节前后看完的,耗了1个月左右,总结了1.4W多字的word笔记,相当的自豪,后来因为一些原因(好吧,其实是去准备了几个月考日语证)和要完成公司领导的大Project,搁置了大半年时间,直到9月份终于又恢复自由身,感觉已经忘了差不多了,打算把笔记翻出来辅助自己把深藏不露的记忆寻找回来,看了笔记开头顿然感慨,妈的这鸟玩意写的是天书啊谁看得懂!!草花头!!!
无奈之下又花了整整一个月时间(从9月1日持续到30日,时间拿捏的很准呵呵),重新把李刚的长篇大论口水书看完了,一边看一边重新整理修葺笔记(以看完书之后又忘光回到白痴状态的笔主都能瞬间爆发小宇宙的标准来写),终于修成正果写出了3.4W汉字的巨型笔记,放个截图出来自豪一下呵呵
完事之后打算写个试验性网站,发现怎么着也得有个GUI界面吧,又懒懒的花了一个月时间在W3SCHOOL把HTML和CSS部分知识系统性的补充回来,这块不详细说了。
然后一切准备就绪,笔主正式向JavaEE网站宣战!目标当然是,笔主一直盼望已久的个人网站撸哈哈哈!
网站结构图
MySQL5.5数据库脚本
1 -- -------------------------------------------------------- 2 -- 主机: 10.66.120.118 3 -- 服务器版本: 5.5.24-CDB-3.0.0-log - MySQL Community Server (GPL) 4 -- 服务器操作系统: Linux 5 -- HeidiSQL 版本: 9.1.0.4876 6 -- -------------------------------------------------------- 7 8 /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 9 /*!40101 SET NAMES utf8mb4 */; 10 /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; 11 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; 12 13 -- 导出 wavky 的数据库结构 14 CREATE DATABASE IF NOT EXISTS `wavky` /*!40100 DEFAULT CHARACTER SET utf8 */; 15 USE `wavky`; 16 17 18 -- 导出 表 wavky.interface 结构 19 CREATE TABLE IF NOT EXISTS `interface` ( 20 `id` int(11) NOT NULL AUTO_INCREMENT, 21 `description` varchar(2048) NOT NULL, 22 `url` varchar(4096) NOT NULL, 23 `request` text, 24 `response` text, 25 `addTime` bigint(20) NOT NULL, 26 PRIMARY KEY (`id`) 27 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; 28 29 -- 数据导出被取消选择。 30 31 32 -- 导出 表 wavky.project 结构 33 CREATE TABLE IF NOT EXISTS `project` ( 34 `id` int(11) NOT NULL AUTO_INCREMENT, 35 `title` varchar(100) DEFAULT NULL, 36 `type` char(7) DEFAULT NULL, 37 `snapshotAddr` varchar(1024) DEFAULT NULL, 38 `sourceLinkAddr` varchar(1024) DEFAULT NULL, 39 `projectFileAddr` varchar(1024) DEFAULT NULL, 40 `download` int(11) DEFAULT '0', 41 `version` varchar(30) DEFAULT NULL, 42 `price` float DEFAULT NULL, 43 `introduction` mediumtext, 44 `releaseDate` bigint(30) DEFAULT NULL, 45 `updateTime` bigint(30) NOT NULL, 46 `addTime` bigint(30) NOT NULL, 47 PRIMARY KEY (`id`) 48 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; 49 50 -- 数据导出被取消选择。 51 52 53 -- 导出 表 wavky.user 结构 54 CREATE TABLE IF NOT EXISTS `user` ( 55 `id` int(11) NOT NULL AUTO_INCREMENT, 56 `name` varchar(100) NOT NULL, 57 `password` varchar(100) NOT NULL, 58 PRIMARY KEY (`id`), 59 UNIQUE KEY `UK_syftr7gx86fwf7ox7bgvnnta7` (`name`) 60 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; 61 62 -- 数据导出被取消选择。 63 /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; 64 /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; 65 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
写在最后
因为笔主之前项目的一些经历导致心理阴影,网站中并未使用多少JS脚本(笔主也不太懂这块),JS部分知识来年再去补充一下吧。
鉴于笔主前端能力和兴趣有限,只能勉强兼容到IE7了,IE9的效果是最好的,还在用IE6的同学请接受笔主双手奉上的膝盖 Orz
网站代码已经开源到GitHub了,采用 NEW BSD 协议发布并追加了一些条件(看下面一段),希望得到 源码 的同学们戳这里->[doge]
网站中使用到的logo图标和笔主的wavky名字受协议保护的,不要沿用发布哇!
网站已经实际上线了,用的服务器是利用工作职务之便申请到的腾讯云大主机(扶持计划,免费用半年~咔咔咔 XD),欢迎随时参观-> http://wavky.com
关于缺少的包
由于当前网站项目是用Maven管理依赖包的,GitHub上的代码搞下来后,Maven会提示缺少ueditor和json两个包,ueditor是百度的富文本编辑器,json是org.json的编译包,可以自行分别到百度及org.json作者的GitHub里下载[doge],也可以到笔主的 官方发布帖 [doge] 里面下载现成的包(网站暂停运营期间,请从下面的追加后记文段中的链接获取)解压到自己的Maven本地仓库里
另外,网站中的百度统计JS代码(在common.js文件中)和IP访问统计代码(在每个JSP页面的<div id="visitor">里面)需要替换成自己的版本,想得到相同效果的话可以自行申请专用代码进行替换
因为网站需求比较简单,就没有单独设立service事务层了,希望能给仍在挣扎中的各位同学们带来一些参考价值 : )
最后感谢前任高班长鼎力提供 master页面 的英文翻译技术支援
本年度的目标计划算是顺利完成了,2015年继续努力!!加油吧,骚年!!!
2015.5.24追加后记
该JSP个人网站自2014年11月起至今已在线运行半年,在此感谢各位看客的支持和厚爱,由于该网站肩负的使命已经完成,并且缺乏维持服务器正常运行的资金支持,从本月27日起该网站将自动停止服务并暂时无限期下线。。
关于缺少的包
由于该网站项目使用Maven进行依赖包管理,从GitHub导入项目后会报出找不到ueditor和json两个包,下载下面的附件解压到Maven本地仓库中即可:
网站效果图(遗照,含PS成分)
2015年目标已顺利完成一半,资料汇总后发到博客文章,2016年目标待定。
END