由于成考需要java项目当做作业,所以需要运行一个java项目。之前虽然学习过java,但是已经是好多年前了,而且之前学习的笔记已经都丢失了,再加上现在是mac上面运行,难免会有生疏。特此记下整个过程。
安装eclipse
首先mac系统上java是1.6,但是我从官网上下的eclipse是需要java jdk 1.8以上版本的,所以需要升级java。这个地方我也找了好久,本来以为是直接一个命令就能搞定的呢。其实直接从oracle官网上下载一个java1.8就行,然后直接运行安装,java就会升级了。
在安装eclipse的时候,也遇到一个问题,我不知道用哪个版本的eclipse了,记得以前好像是区分JavaSE和JavaEE的,但是记不清了。刚开始的时候直接安装了JavaSE的eclipse,但是并不能运行JavaWeb项目,所以浪费了点时间,又重新安装了一个eclipse
导入项目
这个地方也浪费了点时间,忘记eclipse是怎么import一个项目了,在mac上面找了半天才知道,原来在菜单栏里头。之前还浪费了点时间,不知道选择哪个项目。以前学习的时候,我记得是有servlet、struts、spring之类的。这里我不需要那么复杂,只要有个jsp,能链接数据库进行CURD操作就行。从若干个朋友的笔记中找了半天,找到一个符合的项目。
安装mysql
mac上面怎样安装mysql也让我头疼起来,以前都是一个.exe文件,双击安装就行。我从mysql官网上直接下载了一个.tar.gz的文件,貌似是源文件,但是我并不知道该怎么手动安装这个mysql。。。
再后来,我才知道,原来在mac上面的安装程序叫做dmg的文件,而mysql网站上面就提供了这个安装工具。。。囧
安装好这个mysql,我又不知道在哪里启动mysql服务了。。后来通过度娘知道了,mac原来是在系统偏好设置中,有个专门管理mysql的服务的地方。默认的随着系统启动一起启动mysql的。我把这个关掉了。
安装好mysql我又没有图形画工具,然后再去找度娘,去下载了一个叫做mysql workbench的这个软件,囧不会用啊 然后再去百度,知道了怎么连接上mysql,然后创建了一个数据库,修改了mysql root账号的密码。创建了一个数据库表,测试通过~
使用mysql workbench
这个软件实在是陌生,我记得应该是有个能直接运行mysql命令行的地方,直接将mysql 语句执行的地方。
连接jdbc
我记得首先得有数据库驱动吧。。先百度~ 按照这个试试Mac上配置JDBC
好吧,我只用到了这个笔记中如何导入jdbc驱动的命令sudo mv mysql-connector-java-5.1.16-bin.jar /Library/Java/Extensions/
,就是这样样子,让这个驱动放到java的Library中。然后编写一个jdbc驱动测试连接吧。
package cn.edu.bit.student.dbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCDatabaseConnection {
private static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
private static final String DBURL = "jdbc:mysql://localhost:3306/test";
private static final String DBUSER = "root"; // root账号
private static final String PASSWORD = "admin"; // 数据库密码
public static void main(String[] args) throws Exception {
Class.forName(DBDRIVER) ;
Connection conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD) ;
System.out.println(conn);
conn.close() ;
}
}
然后在eclipse中运行一下测试,输出了com.mysql.jdbc.JDBC4Connection@49c2faae
!!经过了一周左右的折腾,我终于看到了这个。。期间的辛酸,快乐,大概只有自己才知道吧。但是还没完,看看怎么创建数据库表啊~。。
数据库连接池
一直徘徊在这个部分,还没有绕过去
eclipse如何配置tomcat
这部分也没有找到怎么配置,为毛我的eclipse就不能显示出tomcat图标啊~
配置oh-my-zsh
这个是从老师电脑上看到的,之前一直没有时间安装,今天弄了半天环境,还是没有配置好,安装个小工具找找存在感~
- 想知道系统中有多少种shell,调用命令如下:
cat /etc/shells
目前我的系统中返回的shell为:
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
此外在安装[oh my zsh]是,我使用的命令是:
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
第二个命令也就是将拷贝一个主题吧~(猜的)
然后还没有完事,因为mac系统默认的是使用bash的,所以得将bash切换为zsh
chsh -s /bin/zsh
最后需要关掉Terminal终端,然后重新打开一个终端,就会发现已经变。但是此时还没有完事,可以调整主题样式的。
配置tomcat 虚拟目录
睡了一觉起来,继续搞这个配置。白天运行的时候一直是需要localhost:8080
这种访问,百度了一下,找到了如何修改端口
修改tomcat端口
tomcat默认的端口是8080,但是一般访问的时候应该是80端口,用户是不需要手动输入端口的。将这个端口修改为80端口即可。
server.xml
配置tomcat虚拟目录
虚拟目录就是一个硬盘下的文件夹,tomcat中需要配置虚拟目录,xampp服务器也是需要配置虚拟目录的。这个都类似,只不过tomcat是需要使用xml文件的。
- Context:表示配置一个新的上下文应用,此处是xml文件之中配置的
- path:表示浏览器中输入的路径,前面必须有'/',然后在浏览器中就可以通过'/emp'访问目录了。例如
localhost:/emp
- docBase:这个表示物理文件的真实地址。我之前这里一直配置错了,导致页面一直没有出现应该出现的首页
index.jsp
。原因是虚拟目录是有自己严格的要求的,不能随便乱写。在这个目录下首要路径下要存在WEB-INF/web.xml
这个文件。我这里的这个web.xml文件是存在项目的WebRoot目录下的,所以要写上这个目录。
server.xml
修改打开目录
默认情况下程序列表是不开启的,修改tomcat的web.xml文件,将这个程序列表打开。
web.xml
default
org.apache.catalina.servlets.DefaultServlet
debug
0
listings
true
1
tomcat执行流程
- 用户通过浏览器访问资源的时候就相当于向Web服务器发送了一个HTTP的请求;
- 当Web服务器接收到此请求之后,会将用户所需要访问的.jsp文件变为.java,再将.java自动的编译为.class;
- 将生成的*.class文件通过Web服务器发送给客户端执行。
通过这样的一个流程,可以清楚的发现JSP程序最终执行的时候还是依靠了.class文件,还是离不开Java程序,所以第一次执行的时候会比较慢一些,第二次才会快起来,因为已经生成了.class,直接使用即可。
所有自动生成的.java程序和.class程序都保存在work目录之中。如果在日后的开发之中,当你发现无论怎样去修改一个*.jsp文件都没有任何反应的时候,那么就应该关闭Tomcat,将此目录下的内容删除干净,之后重新运行。
是否重启tomcat
如果是修改了xml文件,那么一定要重启tomcat;如果是修改了jsp文件,一般情况下是不需要重新启动tomcat的,但是如果有时编译失效,需要将目录下的文件全都清空掉,重新让tom猫生成一遍。
Unable to compile class for JSP
报语法错
在没有配置tomcat的时候,eclipse会报语法错误,说是没有导入javax.servlet.jar
和javax.servlet.jsp.jar
,所以导入了这两个jar包,现在已经有了tomcat自带的了,所以跟项目中的这两个jar包冲突了。。囧~ 这个过程还是得自己踩坑啊~。
又经过了一个多小时的努力,重要弄明白了自己的jar包问题出现在哪里。因为我是将jar拷贝到了WEB-INF目录下,然后在eclipse的properties属性下,通过Java Build Path
将WEB-INF目录下的jar包导入到了项目中,这样就造成了两个jar,导致了报错。
配置首页
最后需要配置首页,因为在tomcat中没有配置默认的首页,访问localhost:/emp
时候返回空页面。在web.xml中手动将写好的index.jsp配置到
/jsp/back/login.jsp