首页 > 代码库 > single_store

single_store

一切源于一门课程,作业是让我们提交一个简单食品店的网站。pml的课程怎么说呢,整个节奏是:“啊 hey 同学们,我告诉你们这个东东,这个东东呢,我也不会,不过我看到有人会,很厉害,你们自己去看看吧,看完了自己去做,e,今天的作业呢,这个这个。。。。”不过不管怎样,作业还是要交的,就开始了苦逼地写(bian)作业之旅。 还好课程作业时分组的,一开始我按照课程的以前的东西找到了spring boot的开发方式,按照这个网址(http://spring.io/guides/gs/serving-web-content/)的内容可以实现一个我可以理解的hello world,可是如何进一步去做,我就完全懵逼了,尤其是涉及到后台的数据存储等方面,懵逼体。后来决定还是学习一下标准j2ee,servlet应用吧,但无奈作业ddl将至,组员一致商量下还是找一份别人的代码吧。
一开是选择了一份能大概能看懂的代码,但是如何将代码放到服务器上就是一个很大的问题,课上还是听说了一个叫tomcat的服务器,由于以前自己瞎搞过php,用过apache的服务器,所以安装使用等方面并不是很坎坷,可以参考这篇博客(http://blog.csdn.net/q_l_s/article/details/51736613),总之知道如何配置服务器端口,如何启动,以及自己网站应该放到哪里就好了,然后将代码放到找到的代码放到webapps目录下发下可以打开一些网页,如登录页面和注册页面,但是具体的就看不到了,也不能交一个这样的代码上去啊,所以只能硬着头皮去研究一下代码了。

技术分享X


可以看到主目录下面都是jsp文件,关于jsp文件自己也临时去学习了一 下,发现和html特别像,jsp全名是java server page 就是在服务器上的页面文件,负责从服务器动态的渲染页面,传到客户机。其他的几个文件夹,css, js, images都明白,也能看出哪个jsp调用哪个css和js,那个html文件夹是没什么用的。
接下来看下web-inf的内容:
技术分享
里面有一个web.xml还有classes和filter和lib,关于web.xml里面主要包括这样三种代码:
1.filter,负责当传来URL时过滤的操作,这里有个例子就是当用户未登录就进入展示界面时进行过滤,让用户跳转到登录页面:
技术分享
关于具体的代码是不会在部署到服务器目录下展示的,由于找到的代码貌似是用myeclipse编辑的,所以在webContent之外找到了src文件夹,看到具体的代码:
技术分享
loginFilter就做这样的事情:
技术分享
2. servlet 这个东西主要是负责当传来URL时,做什么操作,对post和get到的数据如何处理,如何跳转。可以看作一个controller,web.xml中用servlet标签声明一个servlet用servlet-mapping标签来给servlet做URl映射:
技术分享
技术分享
而在sevlet的代码中通过doget和dopost来处理get或post的数据
3.welcome,这个简单,就是欢迎界面,默认打开网站时会进入那个网页。
技术分享
现在具体的来看一下,src里面有什么代码,之前的图片可以看到有filter,servlet,还有 dao和bean,前面两个很好理解,后面两个是什么,通过一个代码之间的调用可以看到,servlet负责控制逻辑,dao负责数据的处理,bean负责数据的封装。
技术分享
技术分享
技术分享
技术分享
其中每一个dao都是继承DButils的,这个东西就像与对数据库的连接进行封装,结成这个的类在根据存储不同的对象的需要去做不同的事
但是之前的代码使用的是SQLserver数据库,我们需要使用mysql数据库,所以就需要对代码做一些改变,并且重新生成类,这样就涉及一个很麻烦的问题如何去编译,有结构的编译java文件,不得不想到了eclipse做网站,没办法只能重新学起。
安装eclipse的教程网上有很多,(由于eclipse是绿色软件所以直接解压就算是安装了)但是貌似eclipse官网的结构变了许多,所以下载的地方要去找一下,关于环境变量的配置就不提了,遇到的坑就是我以为eclipse的位数需要和我计算机的位数一致,我装了64位后发现运行有错,后来想是不是和java的位数有关,因为eclipse的许多错误都是和java相关的,看了一下我的java位数:
技术分享
在这里最后一行如果是64位的java会有一个64位的说明,如果没有说明是32位的,所以我应该是装错了,重新下载32位的eclipse成功:
技术分享
貌似是eclipse的最新版本,和以前样子变了好多。(注意下由于我想开发的j2ee项目,所以我选择的是开发j2ee的eclipse包:
技术分享
安装完就开始做我们的singlestore吧,首先需要知道如何将我们的项目部署的服务器上,这中间走了很多坑,只是因为不是很懂部署的意义,我以为将项目放到服务器根目录下就好了,其实不是,当配置好eclipse的部署的那些事情后,一运行,eclipse就会将我们的代码编译好放到webContent中之后按照我们项目的文件夹名重新命名webContent并放到服务器根目录下,就像我们不用eclipse直接按照以前的方法做的一样。
具体的部署可以参见博客(http://m.blog.csdn.net/article/details?id=51830104)这里面的一个坑是,默认的部署不是部署到tomcat的webapps下,而是一个wtpwebapp(貌似是),需要我们进行修改,双击那个server会出现下面的内容:
技术分享
可以看到server location是灰色的,我们需要停止运行server并删除掉server下的项目才能编辑那个location,可以编辑后,选择第二个并把服务器路径和发布路径改好就好了。
可以发布后就可以进行网站编辑了,主要的内容就是数据库的改变,Dbuilts的任务就是数据库的连接,所以先改变这个,然后改变其其他的dao的代码。
这里我使用一个jdbc连接数据库的方法,使用一个包来连接:
技术分享
具体连接方法如下:
技术分享
url中的singlestore为数据库中的一个数据库的名字,数据库在3306端口上开放,接下来就可以用连接的Connection对象来进行数据库的操作,举UserDao为例:
技术分享
使用con的prepareStatement和获得的对象的executeUpdate来执行数据库的语句,我这里执行的建表和插入的操作。其他操作类似。
关于建表需要仔细考虑一下每个表有什么项,还有一些项不是用户添加的我们需要自动增长,比如id,使用一个AUTO_INCREMENT就可以实现自动增长的表项,使用if not exists在建表的时候就可以判断表是否存在。
最后会看到servlet会调用dao的方法来和数据库打交道,比如getUser获得用户,setUser设置用户。

single_store