版权声明: https://blog.csdn.net/dadan1314/article/details/84843362
环境
- windows系统(linux系统类似)
- JDK1.7以上
依赖
文件
- 数据库脚本文件InitDemo.sql
- servlet代码文件HttpServletDemo2.java
- 编译servlet文件compileDemo.bat
- 数据库脚本文件ClearDemo.sql
步骤
- 启动Mysql服务器
- 进入Mysql服务器后台,运行InitDemo.sql
- 编写HttpServletDemo2.java文件
- 运行compileDemo.bat编译HttpServletDemo2.java
- 进入浏览器验证
- 清理数据库运行ClearDemo.sql
第一步 启动Mysql服务器
// 切换到mysql的执行目录
>> cd <mysql的bin目录>
// 启动mysql服务器
>> mysqld --console
第二步 运行InitDemo.sql
// 另外打开CMD,切换到mysql执行目录
>> cd <mysql的bin目录>
// 进入mysql后台
>> mysql -u root -p
// 运行InitDemo.sql,注意路径中\问题,使用标准路径
mysql>> source <InitDemo.sql全路径>
InitDemo.sql文件如下:
/*
@说明: 创建testdb库,再创建user表,插入几条记录
*/
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
CREATE TABLE IF NOT EXISTS user(
user_id INT(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
user_name CHAR(64) UNIQUE,
user_mail VARCHAR(128) DEFAULT '-',
nick_name VARCHAR(128) DEFAULT 'love'
);
ALTER TABLE user AUTO_INCREMENT=1000000000;
INSERT INTO user(user_name,user_mail)
VALUES('yiqiong','[email protected]'),
('erbai','[email protected]'),
('sansha','[email protected]');
第三步 编写HttpServletDemo2.java
package com.zhou.servlet;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.mysql.cj.protocol.Resultset;
import java.sql.*;
public class HttpServletDemo2 extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException , IOException{
String strMysqlDriver = "com.mysql.cj.jdbc.Driver";
String strMysqlAddr = "jdbc:mysql://localhost:3306/";
String strMysqlParam = "characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
String strDbName = "testdb";
String strTableName = "user";
String strAccount = "root";
String strPassword = "123456";
String strMysqlUrl = strMysqlAddr + strDbName;
strMysqlUrl += "?";
strMysqlUrl += strMysqlParam;
try{
Class.forName(strMysqlDriver);
Connection con = DriverManager.getConnection(strMysqlUrl,strAccount,strPassword);
if(!con.isClosed()){
res.getWriter().println("Succeeded connecting to the Database!");
}
Statement statement = con.createStatement();
String strSelectSql = "select * from " + strTableName + ";";
ResultSet selectResult = statement.executeQuery(strSelectSql);
while(selectResult.next()){
res.getWriter().println(selectResult.getString(1) + "\t"+ selectResult.getString(2));
}
selectResult.close();
con.close();
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch(SQLException e){
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}finally{
res.getWriter().println("successfull !");
}
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
doGet(req,res);
}
}
第四步 运行compileDemo.bat
首先,编写compileDemo.bat,将cd后面的内容替换成存放HttpServletDemo2.java的目录,参考如下;
@echo off
cd C:\Users\ws\Desktop\javaservlet
javac -classpath ./servlet-api.jar;./mysql-connector-java-8.0.12.jar -d . HttpServletDemo2.java
pause
其次, 将编译依赖的servlet-api.jar和mysql-connector-java-8.0.12.jar放在与java文件同一目录下;
(servlet-api.jar从tomcat根目录下的lib目录中取,mysql-connector-java-8.0.12.jar从mysql官网下载)
再次,双击compileDemo.bat文件,将生成的com目录整体放到你发布的webapp的WEB-INF的classes目录下;
最后,配置web.xml,参考配置如下
<servlet>
<servlet-name>HttpServletDemo2</servlet-name>
<servlet-class>com.zhou.servlet.HttpServletDemo2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HttpServletDemo2</servlet-name>
<url-pattern>/HttpServletDemo2</url-pattern>
</servlet-mapping>
第五步 验证(此处webapp的名称为ServletTest)
http://localhost:8080/ServletTest/HttpServletDemo2
第六步 清理
运行ClearDemo.sql(更运行InitDemo.sql类似)
USE testdb;
-- 删除user表
DROP TABLE user;
-- 删除testdb库
DROP DATABASE testdb;