安装Tomcat
Tomcat的安装分为安装JDK和安装Tomcat两个步骤,想要运行Java程序必须要有JDK的支持。所以要首先安装JDK
安装JDK
# mv jdk1.8.0_271 /usr/local/jdk1.8
# vi /etc/profile //在文件的最后一行添加
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
# mv /usr/bin/java /usr/bin/java_bak
source /etc/profile //使配置生效
# java -version //检测配置是否正确
安装Tomcat
# tar zxvf apache-tomcat-8.5.60.tar.gz
# mv apache-tomcat-8.5.60 /usr/local/tomcat
# /usr/local/tomcat/bin/startup.sh //启动tomcat
# netstat -ntpl |grep java //查看是否启动成功
这边看到8005和8080端口就代表启动成功。
然后可以用访问浏览器验证:http://ip:8080 会出现tomcat界面。
配置Tomcat服务的访问端口
Tomcat的默认端口为8080,但是我们可以修改他
# vi /usr/local/tomcat/conf/server.xml //在文件中查找Connector port=”8080”
然后就把8080改成需要更改的端口
最后保存文件重启Tomcat才能生效
# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh
Tomcat的虚拟主机
# vi /usr/local/tomcat/conf/server.xml
Tomcat配置文件中<!–和-->之间的内容为注释掉的,我们只需要了解没被注释的内容
和之间的配置为虚拟主机的配置部分。
name定义域名
appBase定义应用的目录
Tomcat默认页其实就是在appBase目录下面,不过是在它的子目录ROOT下面。
# ls /usr/local/tomcat/webapps/ROOT/
其中index.jsp就是tomcat的默认界面
增加一个虚拟主机:
# vi /usr/local/tomcat/conf/server.xml
<Host name="www.123.cn" appBase="/data/tomcatweb/"
unpacWARs="false" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/data/tomcatweb/" debug="0" reloadable="true" crossContext="true"/>
</Host>
创建一个目录和测试文件
# mkdir /data/tomcatweb
# echo "Tomcat test page." > /data/tomcatweb/1.html
# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh
# curl -x127.0.0.1:8080 www.123.cn/1.html
Tomcat test page
测试Tomcat解析JSP
什么是JSP
JSP与baiPHP、ASP、ASP.NET等语言类似,运行在服务端的语言。JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。
创建一个JSP测试页面
# vi /data/tomcatweb/111.jsp
<html><body><center>
Now time is: <%=new java.util.Date()%>
</center><body><html>
# curl -x127.0.0.1:8080 www.123.cn/111.jsp
<html><body><center>
Now time is: Web Dec 09 02:56:69 PST 2020
</center><body><html>
可以看到配置文件中间那行的内容被解析成了当前系统时间。
Tomcat日志
Tomcat的日志分为四种
# cd /usr/local/tomcat/logs
# ls
catalina开头的日志为Tomcat的综合日志,记录Tomcat服务相关信息,也会记录错误日志
host-manager和manager为管理相关日志,host-manager为虚拟主机的管理日志。
localhost和localhost-access为虚拟主机的相关日志。带access的为访问日志,不带的为错误日志。
访问日志默认不会生成,需要在server.xml中配置一下
# vi /usr/local/tomcat/conf/server.xml //在<host></host>之间添加一块内容
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs">
prefix="123.cn_access_log" suffix=".txt"
pattern="%h %l %t "%r" %s %b" />
Tomcat连接MySQL
Tomcat连接MySQL是通过自带的JDBC驱动实现的
首先创建实验用的库、表、和用户
这边我先用绝对路径进入一下数据库
# /usr/local/mysql/bin/mysql -uroot
mysql> create database java_test;
mysql> use java_test
mysql> grant all on java_test.* to 'java'@'127.0.0.1' identified by 'hjh';
mysql> create table hjh (`id` int(4), `name` char(40));
mysql> insert into hjh values (1, 'abc');
mysql> insert into hjh values (2, 'aaa');
mysql> insert into hjh values (3, 'ccc');
验证用户是否可以使用
这边直接进去了,证明java用户没有问题,接着配置Tomcat
# vi /usr/local/tomcat/conf/context.xml
<Resource name="jdbc/mytest"
auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="java" password="hjh"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/java_test">
</Resource>
配置文件的内容含义
username为mysql的用户,password就是密码
url定义MySQL的(从左到右)IP、端口、库名
保存上面配置的文件后,好需要再修改另一个配置文件
# vi /usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml //在</web-app>上面添加
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/mytest</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Containet</res-auth>
</resource-ref>
# vi /usr/local/tomcat/webapps/ROOT/t.jsp
<%@page import="java.sql.*"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.nhjh.*"%>
c
<%
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx
.lookup("java:comp/env/jdbc/mytest");
Connection conn = ds.getConnection();
statement state = conn.createStatement();
String sql = "select * form hjh";
ResultSet rs = state.executeQuery(sql);
while (rs.next()) {
out.println(rs.getString("id") +"<tr>");
out.println(rs.getString("name") +"<tr><br>");
}
rs.close();
state.close();
conn.close();
%>
再次从新启动
# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh
这边在浏览器访问时出现了500错误,初步判断是配置文件出现了错误,然后更改完发现依然有错,最后导入了mysql-connector-java-5.1.7-bin.jar 包才显示出来
然后通过MySQL命令行查询可以查询到
# mysql -ujava -phjh -h127.0.0.1 java_test -e "select * from hjh"