图书馆位置管理项目之一:环境搭建(java eclipse tomcat mysql)

来源:互联网 发布:php初学者开发工具 编辑:程序博客网 时间:2024/06/05 06:55

介绍

由于学校图书馆霸位情况严重,图书馆主任就找到指导老师做一个智能管理系统。


然后没有太多web开发基础的我就拿了项目框架回家。。一开始以为搭个环境很简单,结果弄了好多天。。


web开发背景

先记录一下这段时间学习到的web开发的一些知识(是的,这部分用词很粗糙。):


首先,提供网络服务有两种方式 B/S C/S 。 B/S就是浏览器模式, C/S就是客户端模式(像qq这些)。私以为,两种方式都是通过网络传输数据,B/S传输数据的格式是统一格式即HTML/JS,C/S可以传输自定义的数据格式。这样任何一个浏览器拿到html都能显示网页,而Tencent qq客户端只能解析来说Tencent服务器的数据。所有说C/S灵活,B/S通用。


然后,在B/S模式中,浏览器只要接收到HTML/JS文本就可以显示网页,所以服务器端发送这种格式的文本的方法也多种多样。

        最古老的有,用C写一句printf,把数据送到到网络流,这种程序就是CGI程序,缺陷就是相当慢,因为每一次浏览器申请数据都会开一个进程。

        先进一点的方法是把HTML/JS数据写在文本里,只启动一个程序,当接受到浏览器请求时,选择一个HTML文本把里面的数据送出去(这大概就是apache的原型?所以apache也可以看作html容器?容器就是一个apache进程装着很多html文件,可以动态选择html文件输出?)。

        再先进点,我们要个性化定制,每个浏览器得到的html数据大体一样,但是有一些地方不同(就是用户名啊那些地方),这时候就对每一个html文件建一个类,这个类有一些操作可以先改变html部分内容再输出,以实现每个页面对每个浏览器有不同的显示。这样会不会回到最古老的方法的缺陷?每个页面有一个类,每个类启动一个进程?得益于JAVA运行时解释的特性,服务器只运行一个进程,每次浏览器请求时就动态加载类在执行这些类,免去再开进程的烦恼。(tomcat就是这样一个进程?所以tomcat也叫做这些类的容器?这些类就是我们说的Servlet类?)。

        再后来servlet的实现方法也多样化了,我们可以用代码写一个类,告诉tomcat这是一个servlet,请把它包含在你这个容器中。也可以写一个jsp页面告诉tomcat,这也是一个servlet。

        差点忘了,如果我们不采取面向对象的方法,就是早期PHP的实现的,早期PHP没有类,也能实现动态改变html内容再输出。不过PHP一般是配合apache用的。当然,大型项目中也会有静态页面(就是不需要个性化定制的)由apache实现,需要动态显示的由tomcat实现。再大型点的项目都不是由一台计算机做服务器的,是一群计算机一起提供服务。

下面开始配置

eclpise & java

因为一开始用原本的eclipse搭建新项目,server配置出问题导致混乱,所以现在每个项目分开不同的eclipse。具体做法是新建一个项目文件夹,把开发工具,项目代码,都扔进去。CPCT是项目名


tomcat eclipse jdk mysql memcached都是直接解压过去的,workspace是eclipse的工作区目录

然后配置java环境变量。

tomcat

之前一直用自己的tomcat或者直接拷贝项目的tomcat,没有配置好tomcat可能是试了这么久的原因。

特别注意2两点:

1:下载tomcat不要下载最新版,eclipse的支持还没出来,例如最新版是8.0.32,那下个8.0.26就差不多

2:配置tomcat时eclipse会在右下角读条,其实是下载一些插件支持tomcat的,等读条读完再import工程,tomcat配置好的标志是左边project的位置有server选项,会有配置好的tomcat出现,点进去能查看配置文件

解压好官方原版的tomcat之后,用BCompare对比了一下原本的tomcat跟项目里的tomcat,有以下几点不同

1 conf\context.xml 文件在

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->    <!--    <Manager pathname="" />    -->

下方添加代码段配置一些资源(由于涉及服务器配置的密码,就请到附件下载):


2 conf\catalina.properties 最后加一句

shared.loader=${catalina.base}/spring-lib,${catalina.base}/spring-lib/*.jar

添加spring的库


3 复制spring-lib到tomcat目录下

4 复制lib文件夹到tomcat目录下,如有重复不要覆盖,两个文件夹有大量重复的jar。迟点试试删掉重复的看看能不能运行。。

5 配置环境变量

CATALINA_BASE CATALINA_HOME 都指向tomcat目录,就像配置java时的 java_home 那样

6 在eclipse中配置tomcat,具体步骤百度一堆,这步得慢慢来,务必配置好才导入工程

memcached

一个缓存系统,用来提高访问速度?

只需要执行命令来安装,通过命令来开启关闭

memcached.exe -d installmemcached.exe -d startmemcached.exe -d stop

mysql

上官网下载社区版,不要最新版,最新版的zip包没有data文件夹,死活启动不到服务

1 把zip解压到文件夹

2 复制一个my-default.ini为mysql_ctcp.ini 并修改内容如下(注意,不能直接复制,里面有绝对路径指向mysql的目录)

# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld]# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required. basedir = D:/workspace/projects/CPCT/mysql-5.6.29-winx64 datadir = D:/workspace/projects/CPCT/mysql-5.6.29-winx64/data port = 3306# server_id = .....# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

3 命令提示符进入mysql目录的bin文件夹,执行命令来安装服务,下面命令安装一个名为mysql-ctcp的mysql服务

mysqld --install mysql-ctcp --defaults-file="D:\workspace\projects\CPCT\mysql-5.6.29-winx64\mysql_ctcp.ini"

4通过命令开启或关闭mysql

net start mysql-ctcpnet stop mysql-ctcp

5导入项目预定义的数据表,这部分看附件

ftp

看配置文件或代码是觉得有一个ftp服务器,但是运行的项目中没找到文件操作,所以先不配置

附件

http://pan.baidu.com/s/1kUtZt5t

提取码njzt

最后

windows下环境变量的经常改变好麻烦,可以看看能不能用setx命令写个cmd。

0 0