目录
一、云服务器设置
1.1购买云服务器
在阿里云官网购买云服务器,新用户可以有96每年的优惠,如果有学生优惠可以购买学生优惠版本的。PS:也可以选择腾讯云、华为云等云服务器。这里用阿里云作为示例进行介绍。
这里系统选择CentOS,版本选择最新的。其他的选项选择默认即可。
购买完成后,进入阿里云管理控制台-云服务器ECS-实例即可看到刚刚购买的云服务器,点击远程连接,可以通过Workbench远程连接服务器。
1.2安装宝塔面板
1.2.1安装面板
需要给服务器装上宝塔面板,方便管理。
进入宝塔官网 宝塔面板 ,选择Linux版-立即安装。
在新界面中复制Centos安装命令,粘贴到刚刚打开的阿里云服务器远程连接界面中,回车确认,然后等待安装成功。
1.2.2放行端口
在等待的过程中,我们需要放行端口,否则部分功能无法实现。在放行端口时进入阿里云管理控制台-云服务器ECS-实例-安全组-配置规则-手动添加。在这里,需要放行8888,3306,888端口,否则一些功能就不能实现,详细的步骤请参阅阿里云放行端口 腾讯云放行端口 华为云放行端口
接下来需要等待宝塔面板安装完成,完成后会提示一些重要的内容包括地址账号和密码,最好将这些保存下来
打开浏览器,将外网面板地址粘贴到地址栏,输入账号和密码登录。进入安全,配置防火墙。
由于8888端口系统已默认放行,所以仅需要放行3306和88端口。
1.2.3安装软件
接着进入软件商店,需要安装MySQL和phpMyAdmin.
现在建立数据库,点击数据库-添加数据库-填写信息-提交,数据库即添加成功,然后需要修改权限。比较方便的是将访问权限设置为所有人,也可以指定IP,把IP设置为自己电脑的IP地址。自己电脑的IP地址可以通过 IP138 这个网站查询。
1.3数据库设置
完成之后,打开Navicat,连接该数据库。在Navicat中,点击文件-新建连接-MySQL,连接名随便填写即可,主机为服务器的IP地址,端口为3306,用户名和密码为刚刚创建的数据库的用户名和密码。点击测试连接,如果提示连接成功即成功。点击确定即可。
双击刚刚保存的连接即可连接数据库,右键新建数据库,填写数据库名,字符集为UTF-8,然后确认,排序规则会自动选择。新建完成后双击刚刚新建的数据库,右键表,选择新建表,成功后,即可向其中插入数据。
数据库的设置到这里就结束了
二、编程
2.1新建工程
接下来需要打开IDEA,新建工程,选择Java Enterprise,设置工程名,位置。选择Web application,Application server选择一个Tomcat服务器。完成后,单击next,勾选上sevlet,完成。
在webapp下新建lib文件夹,然后在File-Project Structure-Denpendecies中点击加号,选择JARs or Directories,将刚刚添加的lib文件夹添加进来。然后应用即可。
然后,将mysql-connector-java的jar包复制进来。
2.2html
在WEB-INF中新建html file,这里写了一个简单的登录界面。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1 align="center">Login</h1>
<hr/>
<br/>
<center>
<form method="get" action="login">
<table border="1">
<tr>
<th>User Name</th>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<th>Password</th>
<td><input type="password" name="passwd"/> </td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit"/> </td>
</tr>
</table>
</form>
</center>
</body>
</html>
2.3servlet
在java文件中新建一个servlet,这里命名为LoginServlet。
package com.example.test;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
@WebServlet(name = "LoginServlet", urlPatterns = {"/login"})
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("your submit method is " + request.getMethod());
String username = request.getParameter("username");
String passwd = request.getParameter("passwd");
try {
// JDBC访问数据库取得用户名及密码
// 1. 添加驱动到工程
// 2. 加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 3. 创建连接 mysql后为服务器地址/数据库名 等等 最后两位分别是用户名和密码
Connection connection = DriverManager.getConnection("jdbc:mysql://120.27.2.53:3306/user?characterEncoding=utf-8&serverTimezone=GMT%2B8", "user", "123456");
// 4. 创建Statement
Statement statement = connection.createStatement();
// 5. 执行查询 这里需要注意表中列名
ResultSet resultSet = statement.executeQuery("select * from user_account where name = '" + username + "' and password = '" + passwd + "'");
// 6. 遍历结果集判断查询结果
if(resultSet.next()){
response.getWriter().print("<html><body><h3><font color = 'blue'>Login Success! Welcome!</font></h3></body></html>");
}else{
response.getWriter().print("<html><body><h3><font color = 'red'>Login fail! Login Again!</font></h3></body></html>");
}
// 7. 关闭资源
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
}
点击运行,等待Tomcat启动,注意访问地址为http://localhost:8080/test_war_exploded/login.html。
三、运行测试
这里可以进行测试,输入数据库中的用户名和密码,可见登录成功否则登录失败。
至此,一个简单的连接云数据库的servlet登录程序已经实现。