Linux实验:JSP+Apache Tomcat+MySQL部署Web环境

题目要求

使用SSH客户端(如SecureCRT)远程连接Linux操作系统,使用动态网页开发技术JSP和Web服务器Apache Tomcat搭建网页运行环境,并实现从MySQL中读取学生学号和姓名信息到页面中显示。
要求分别在本地和云端操作成功,云端的网页能被外网访问。

编程环境

本地

本地操作系统:Windows 10
本地虚拟机运行平台:VMware Workstation Pro 14
本地虚拟机镜像:CentOS-7-x86_64-Minimal-1908.iso

云端

云服务器提供商:阿里云计算有限公司
Linux发行版本及版本号:CentOS 7.6 64位

客户端

SecureCRT

命令实现

本人安装的是openjdk 1.8.0_252、Apache Tomcat 9.0.36和mysql-connector-java 8.0.20版本,其他版本的安装和配置可能有所变化。

1、MySQL的安装和配置

详见博客《Linux实验:MySQL的安装和配置》。

2、安装JDK并验证JDK有效性

yum install -y java-1.8.0-openjdk-devel

# 查看JDK版本,以检查是否安装成功
java -version

3、查找环境变量JAVA_HOME和JRE_HOME的值

whereis javac

# 查看上一条结果中显示的javac位置
ll /usr/bin/javac 

# 查看上一条结果中指向的软链接
ll /etc/alternatives/javac 

# 查看上一条结果中指向的软链接
ll /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/bin/javac

# 直到没有软链接了,即为JAVA_HOME的值,以下是本人的值:
JAVA_HOME的值是:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64
# JRE一般在JAVA_HOME所在目录下,故:
JRE_HOME的值是:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre

参考博客:《如何查找YUM 安装的 JAVA_HOME》。

4、安装Apache Tomcat并放到自定义目录下

wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz

tar zxf apache-tomcat-9.0.36.tar.gz

mv apache-tomcat-9.0.36 /usr/local/tomcat

网址https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat有许多Tomcat版本可供选择和下载。

5、开放Apache Tomcat服务默认端口8080

# 重启防火墙,以保证防火墙一定是开启的
systemctl restart firewalld

# 在防火墙添加端口8080且设置永久开启
firewall-cmd --zone=public --add-port=8080/tcp --permanent

# 重新加载防火墙,使上一步操作生效
firewall-cmd --reload

# 查看8080端口是否开放
firewall-cmd --zone=public --query-port=8080/tcp

如果是Linux云服务器,则还要在阿里云服务器控制台增加端口为8080的安全组规则,才能保证Apache Tomcat服务能被访问,结果如下图所示。具体操作请参考博客《Linux脚本编程:sudo命令下安装ssh服务并自定义端口和允许root登陆》中代码实现部分的注意事项。

6、开放HTTP服务

# 重启防火墙,以保证防火墙一定是开启的
systemctl restart firewalld

# 在防火墙添加服务http且设置永久开启
firewall-cmd --zone=public --add-service=http --permanent

# 重新加载防火墙,使上一步操作生效
firewall-cmd --reload

# 查看http服务是否开放
firewall-cmd --query-service http

此步是为了让Linux云服务器IP能被外网访问。

7、配置Apache Tomcat服务

# 修改Tomcat安装目录/usr/local/tomcat下的配置文件/bin/setclasspath.sh
vi /usr/local/tomcat/bin/setclasspath.sh
# 按下i键进入编辑模式,并在文件末尾设置JAVA_HOME和JRE_HOME的值:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64
export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre
# 按下esc键退出编辑模式
# 保存并退出文件
:wq

# 修改Tomcat安装目录/usr/local/tomcat下的配置文件/bin/setenv.sh
vi /usr/local/tomcat/bin/setenv.sh
# 按下i键进入编辑模式,并输入以下内容:
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
# 按下esc键退出编辑模式
# 保存并退出文件
:wq

# 新建Tomcat服务配置文件/usr/lib/systemd/system/tomcat.service,让Tomcat成为系统服务,服务名为tomcat
vi /usr/lib/systemd/system/tomcat.service
# 按下i键进入编辑模式,并输入以下内容:
[Unit]
Description=Tomcat
After=syslog.targetnetwork.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill-s HUP $MAINPID
ExecStop=/bin/kill-s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# 按下esc键退出编辑模式
# 保存并退出文件
:wq

8、启动Apache Tomcat服务并访问Apache Tomcat网页

# 重启Apache Tomcat服务,不用start用restart是为了避免读者之前启动过Apache Tomcat服务且没有关闭
systemctl restart tomcat

# 检查Apache Tomcat服务的运行状态,有running字样说明启动成功
systemctl status tomcat

# 设置Apache Tomcat服务开机自启动,此步为防止以后重启了Linux后使用Apache Tomcat前忘记启动服务,读者视自身情况选择是否执行本命令
systemctl enable tomcat

# 在浏览器输入IP:8080访问Apache Tomcat网页

9、解决Apache Tomcat网页经常响应慢的问题

# 修改JRE_HOME路径下的/lib/security/java.security文件
vi /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64/jre/lib/security/java.security
# 按下i键进入编辑模式,将securerandom.source=file:/dev/random修改成securerandom.source=file:/dev/./urandom
# 按下esc键退出编辑模式
# 保存并退出文件
:wq

# 查找tomcat的进程号(一般在数据量最长的那一项)
ps –ef | grep tomcat
# 强制结束进程
kill -9 进程号

# 重启Apache Tomcat服务
systemctl restart tomcat

参考文章《Tomcat 启动时 SecureRandom 非常慢解决办法》。

10、测试JSP环境

# 新建JSP文件MyJSP.jsp
vi /usr/local/tomcat/webapps/ROOT/MyJSP.jsp

# 按下i键进入编辑模式,并输入以下内容:
<html lang="zh-CN">
	<body>
    <%
		out.println("Hello JSP!");
    %>
    </body>
</html>
# 按下esc键退出编辑模式
# 保存并退出文件
:wq

# 在浏览器输入IP:8080/MyJSP.jsp访问JSP网页

JSP语法参考《JSP 语法 | 菜鸟教程》。

11、下载安装mysql-connector-java使得JSP能连接MySQL

# 到MySQL官网(https://dev.mysql.com/downloads/connector/j/)下载mysql-connector-java的tar.gz文件后上传到Linux上

tar xf mysql-connector-java-8.0.20.tar.gz -C /usr/local/src/

# 将解压出来的文件夹中的jar包mysql-connector-java-8.0.20.jar放到Tomcat安装目录下的lib文件夹中
mv /usr/local/src/mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar /usr/local/tomcat/lib/

# 重启Apache Tomcat服务
systemctl restart tomcat

12、修改JSP文件并访问

# 修改JSP文件MyJSP.jsp
vi /usr/local/tomcat/webapps/ROOT/MyJSP.jsp
# 按下i键进入编辑模式,输入以下内容实现题目要求:
<%@page contentType="text/html; charset=utf-8"%>
<%@page import="java.sql.*"%>
	<html lang="zh-CN">
	<body>
	<%
		Connection conn = null;
		try {
			// 加载驱动
			Class.forName("com.mysql.cj.jdbc.Driver").newInstance();
			// url包含了MySQL的IP地址、端口号、数据库和编码格式
			String url = "jdbc:mysql://localhost:3306/数据库名?user=用户名&password=密码&useUnicode=true&characterEncoding=utf-8";
			// 建立连接
			conn = DriverManager.getConnection(url);
			// 创建状态
			Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
			String sql="select * from 数据表名";
			ResultSet rs=stmt.executeQuery(sql);
			while(rs.next()){ // 遍历输出sql语句结果
				String id=rs.getString("id");
				String name=rs.getString("name");
				out.println("学号: "+id+" - "+"姓名: "+name);
			}
			rs.close();
			stmt.close();
			conn.close();
        } catch(ClassNotFoundException e) { 
            out.println("找不到驱动程序!"); 
            e.printStackTrace(); 
        } catch(SQLException e) { 
            e.toString();
			e.printStackTrace();
        }
        if(conn==null) {
	    	out.println("数据库连接失败!");
	    }
	%>
	</body>
</html>
# 按下esc键退出编辑模式
# 保存并退出文件
:wq

# 在浏览器输入IP:8080/MyJSP.jsp访问JSP网页

JSP连接MySQL语法参考《JSP 连接数据库 | 菜鸟教程》。

如果文章内容出错或者您有更好的解决方法,欢迎到评论区指正和讨论!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值