我的第一个 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的编译包,可以自己到大神的GitHub里下载编译打包[doge],也可以到笔主的 官方发布帖 [doge] 里面下载现成的包解压到自己的Maven本地仓库里
另外,网站中的百度统计JS代码(在common.js文件中)和IP访问统计代码(在每个JSP页面的<div id="visitor">里面)需要替换成自己的版本哇,想用的话自己去申请吧呵呵呵呵呵
因为网站需求比较简单,就没有单独设立service事务层了,希望能给仍在挣扎中的各位同学们带来一些参考价值 : )
最后感谢前任高班长鼎力提供 master页面 的英文翻译技术支援
本年度的目标计划算是顺利完成了,2015年继续努力!!加油吧,骚年!!!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。