唠叨两句背景

相当长时间没上来发帖了,最近几个月除了完成产品经理一个又一个重复又重复的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数据库脚本

 -- --------------------------------------------------------
-- 主机: 10.66.120.118
-- 服务器版本: 5.5.24-CDB-3.0.0-log - MySQL Community Server (GPL)
-- 服务器操作系统: Linux
-- HeidiSQL 版本: 9.1.0.4876
-- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8mb4 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- 导出 wavky 的数据库结构
CREATE DATABASE IF NOT EXISTS `wavky` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `wavky`; -- 导出 表 wavky.interface 结构
CREATE TABLE IF NOT EXISTS `interface` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`description` varchar(2048) NOT NULL,
`url` varchar(4096) NOT NULL,
`request` text,
`response` text,
`addTime` bigint(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; -- 数据导出被取消选择。 -- 导出 表 wavky.project 结构
CREATE TABLE IF NOT EXISTS `project` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) DEFAULT NULL,
`type` char(7) DEFAULT NULL,
`snapshotAddr` varchar(1024) DEFAULT NULL,
`sourceLinkAddr` varchar(1024) DEFAULT NULL,
`projectFileAddr` varchar(1024) DEFAULT NULL,
`download` int(11) DEFAULT '',
`version` varchar(30) DEFAULT NULL,
`price` float DEFAULT NULL,
`introduction` mediumtext,
`releaseDate` bigint(30) DEFAULT NULL,
`updateTime` bigint(30) NOT NULL,
`addTime` bigint(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; -- 数据导出被取消选择。 -- 导出 表 wavky.user 结构
CREATE TABLE IF NOT EXISTS `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`password` varchar(100) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `UK_syftr7gx86fwf7ox7bgvnnta7` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; -- 数据导出被取消选择。
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!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本地仓库中即可:

 ueditor and json.zip

网站效果图(遗照,含PS成分)

2015年目标已顺利完成一半,资料汇总后发到博客文章,2016年目标待定。

END

我的第一个 JSP (SSH) 个人网站【开源】的更多相关文章

  1. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  2. JAVA通过poi对Excel数据在(jsp+ssh)环境下导入导出

    POI的下载与安装  请到网站http://www.apache.org/dyn/closer.cgi/poi/右击超链接2.5.1.zip下载压缩包poi-bin-2.5.1-final-20040 ...

  3. java web(一) 使用sql标签库+tomcat+mysql手动创建一个jsp练习总结

    2016-09-0111:06:53                                     使用sql标签库+tomcat+mysql手动创建一个jsp 1. 1.1安装tomcat ...

  4. 第一个JSP程序

    本文介绍如何写出第一个JSP程序 1.配置服务器 (1)在eclipse中选择Server视图,(ps:很多童鞋说找不到Server,那是因为eclipse的版本问题,请下载JEE版本的eclipse ...

  5. JSP+SSH+Mysql+C3P0实现的传智播客网上商城

    项目简介 项目来源于:https://gitee.com/2121/shop 本系统是传智播客授课时的开发案例,基于JSP+SSH+Mysql的简单网上商城.在当代开发中,SSH的使用已经逐渐被SSM ...

  6. 第一章 开始编写第一个jsp

    第一章 搭好框架,需要tomcat服务器和jdk. JSP是Java Server Page的缩写,现在先让我们编写一个简单的jsp页面,看看jsp究竟能干什么? <%=new java.uti ...

  7. 在JSP页面中调用另一个JSP页面中的变量

    在jsp学习中,经常需要在一个jsp页面中调用另一个jsp页面中的变量,下面就这几天的学习,总结一下. jsp页面之间的变量调用有多种方法: 1.通过jsp的内置对象—request对象获取参数: ( ...

  8. 推荐一个CMMI认证查询网站

    随着软件企业的增多和意识的增强,越来越多公司开始做CMMI的认证评估,由于国内网速和CMMI官网的网站综合原因,打开速度超级慢. 所以本文推荐一个CMMI认证查询网站,认证后的结果查询可以点这里查询: ...

  9. eclipse建立一个jsp项目遇到的问题及解决

    打开eclipse  在workplace 区域空白处,右键 填写好Project name,之后,点击finished 即可. 选中webcontent,新建一个文件夹,并新建一个jsp 文件 新建 ...

随机推荐

  1. Adaptive Code Via C#读书笔记

    原书链接: http://www.amazon.com/Adaptive-Code-via-principles-Developer-ebook/dp/B00OCLLYTY/ref=dp_kinw_s ...

  2. Javascript之旅——第四站:parseInt中要注意的坑

    前些天信用卡站点要接入一个新功能,不过还真比较坑爹,asp站点,大家都知道信用卡的背面是有一个有效期的,在对接银行中这个信息 一定是要传给银行做数据校验,用户在语音输入信用卡有效期后,系统会做一个有效 ...

  3. jquery中attr和prop的区别、 什么时候用 attr 什么时候用 prop (转自 芈老头 )

    jquery中attr和prop的区别. 什么时候用 attr 什么时候用 prop   在高版本的jquery引入prop方法后,什么时候该用prop?什么时候用attr?它们两个之间有什么区别?这 ...

  4. 安装使用ubuntu问题汇总

    很早以前就安装了ubuntu系统,可是一直没怎么用,也没有深入研究.这两天重装了一下windows,顺带着也重新装了一遍最新的ubuntu14.04.期间碰到了不少问题,一个个解决也花费了不少时间.所 ...

  5. text-transform设置单词首字母大写

    text-transform 一.语法   text-transform 主要用于设置文本的大小写. text-transform有5个值,分别如下: none. 默认值. capitalize. 文 ...

  6. iOS获取本地沙盒视频封面图片

    最近做了个小应用,有涉及到本地视频播放及列表显示. 其中一个知识点就是获取本地存储视频,用来界面中的封面显示. 记录如下: -(UIImage*) thumbnailImageForVideo:(NS ...

  7. /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’

    /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’/usr/include/linux/types.h:13: erro ...

  8. Device ehth0 is not present

    context: 使用virtualbox 克隆了一个新硬盘,然后配为新建虚机的使用,但ifconfig只能发现lo,没有eth0 解决方案: 当前系统是centos6.6 cd /etc/udev/ ...

  9. MMORPG大型游戏设计与开发(part6 of net)

    上一部分,讲述了一个服务器与服务器之间的通信实例,客户端其实原理大同小异.网络部分准备就暂时讲到这里,不过我们不妨再回头过来想想在这过程中有没有优化和改进的地方.这部分讲解的是以网络包代码作分析,实现 ...

  10. NOIP2015聪明的质检员[二分 | 预处理]

    背景 NOIP2011 day2 第二题 描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿 ...