一、创建 Java Web 项目
-
点击 File ——> New ——> Project... 打开创建项目面板,左侧选中 Java,右边配置下 Project SDK (JDK) 的路径,下方的 Additional Libraries and Frameworks: 选择 Java EE ——> Web Application,勾上下面的 Create web.xml, 点击 Next 进入下一步;然后填写项目名,点击 Finish,完成项目的创建
图1. 创建Java Web项目 -
展开项目路径,在 web/WEB-INFO 的目录下创建 classes 和 lib 两个文件夹,分别用于放编译后的字节码文件 和 jar 包
图2. 新建classes和lib目录 -
点击 File ——> Project Structure... 选中左侧的 Modules,点击右侧的 Paths 标签,将 Compiler output 选中 Use module compile output path;设置 Output path 和 Test output path 为刚才创建的 classes 目录;
图3. 项目输出路径设置 -
切换到 Paths 右侧的 Dependencies 标签,点击 ,选择 JARs or directories...,然后在弹出的面板 Choose Categorys Of Selected Files 中选择 Jar Directory,点击OK,完成项目设置
图4. 项目依赖设置
二、配置 Tomcat 服务器
-
完成上面的设置之后,接下来就是 Tomcat 的配置了,点击菜单栏的 Run ——> Edit Configurations... 在弹出的面板中,点击左上角的 ,选择 Tomcat Server ——> Local 开始 Tomcat服务器的配置
图5. 添加 Tomcat Server
-
填写服务器的Name,配置 Tomcat 的安装目录,其余的采用默认即可,当然,也可以修改 Http port,服务器的端口号,避免一些端口占用的问题;此时,下方还有一个红色的警告,需要设置 Artifacts。
图6. Tomcat 基础配置 -
切到右侧的 Deployment 标签,点击右侧的 ,选择 Artifact... 默认如下图7 所示,此时可点击右侧的修改图标,修改 Artifact 的Name信息; 点击 OK,完成 Tomcat 的配置
图7. 部署Tomcat
-
启动 Tomcat 服务器验证,点击菜单栏的 Run ——> Run.. 选择刚才设置的 Tomcat8, 也可以直接点击 菜单栏右侧的 绿色三角形 运行按钮,启动 Tomcat 服务;默认在浏览器打开的是项目 web 目录下的 index.jsp
三、访问 MySQL 数据库
-
访问 SQL Server 需要添加 jdbc的jar包,而访问 MySQL数据库需要添加 mysql-connector 的 jar包;将jar包导入到之前创建的 lib 目录下,然后右键jar包,选择 Add to library
图8. 导入mysql-connect.jar -
验证
现在正好有一个数据库lservice,下面有张video表,存了一些视频数据;可以用来查询验证
图9. video 表
public class Test {
public static void main(String[] args) {
QueryVideoDao qvd = new QueryVideoDaoImpl();
System.out.println(qvd.queryVideo(1));
}
}
图10. 查询id=1的结果
QueryVideoDaoImpl 查询代码如下:
public class QueryVideoDaoImpl implements QueryVideoDao {
@Override
public String queryVideo(long id) {
String result = "";
String querySQL = "SELECT * FROM video WHERE id = ?";
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
conn = DBHelper.getInstance().getConnection();
ps = conn.prepareStatement(querySQL);
ps.setLong(1, id);
rs = ps.executeQuery();
if (rs.next()) {
result = rs.getString("title");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBHelper.getInstance().close(conn, ps, rs);
}
return result;
}
}
DBHelper.java
public class DBHelper {
private static DBHelper mInstance;
private String driverName = "";
private String url = "";
private String user = "";
private String password = "";
private DBHelper() {
InputStream ism = getClass().getClassLoader().getResourceAsStream("com/你的/路径/sql.properties");
Properties prop = new Properties();
try {
prop.load(ism);
} catch (IOException e) {
e.printStackTrace();
}
driverName = prop.getProperty("driver");
url = prop.getProperty("url");
user = prop.getProperty("user");
password = prop.getProperty("pwd");
}
public static DBHelper getInstance() {
if (mInstance == null) {
synchronized (DBHelper.class) {
if (mInstance == null) {
mInstance = new DBHelper();
}
}
}
return mInstance;
}
public Connection getConnection() {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
return DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public void close(Connection conn, PreparedStatement stat, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stat != null) {
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
上面用 ClassLoader 加载的 sql配置文件如下
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/需要访问的数据库名?useUnicode=true&characterEncoding=UTF-8
user=root
pwd=数据库密码
四、接口验证
-
通过调用 Servlet 接口,去访问数据库,获取想要的数据,要写 Servlet 接口,同样需要在lib目录下添加 servlet-api.jar; 该jar包在之前装的 tomcat 的 lib 目录下有
图11. servlet-api.jar -
在需要写Servlet接口的目录下,右键,选择 New ——> Servlet 创建文件; 勾选 Create JavaEE 6 annotated class 会以注解的形式配置 api接口路径,不勾选则需要手动在 web.xml 配置
图12. 创建 Servlet
web.xml 配置如下:
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.lpen.servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<!-- 此处表示api路径. -->
<url-pattern>/video/FirstServlet</url-pattern>
</servlet-mapping>
- 以上面访问数据库为例,写个接口接收参数id,用来查询数据表中对应id的数据
public class FirstServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String result;
if (id == null || "".equals(id)) {
result = "id 不能为空";
} else {
long vid = Long.parseLong(id);
QueryVideoDao qvd = new QueryVideoDaoImpl();
result = qvd.queryVideo(vid);
}
response.setHeader("Content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
writer.println(result);
writer.flush();
writer.close();
}
}
-
在浏览器中访问接口地址,添加参数id,返回结果如下;至此,整个调用接口,访问数据库,返回数据的过程就结束了
图13.浏览器访问接口,输出结果
网友评论