本文旨在让刚入门Java的新手能够创建第一个web项目,能够对Javaweb开发有一个基本的认识和了解。
本文所用工具:Intellij IDEA,可在官网下载社区版或专业版,社区版是免费的。
环境:jdk 12.0.2
web服务器软件:tomcat 9.0.30
数据库:MySQL 8.0.18 (不需数据库只需跳过后面部分即可)
Java数据库连接驱动:jdbc 8.0.18
jdbc下载教程:JDBC下载安装
选择 file->new->project,选择JavaEnterprise,一般jdk环境会默认根据系统环境
tomcat如果没有点击new,选择自己的tomcat路径(bin文件所在的目录),OK即可。
选择项目名,项目路径,然后点finish
打开侧边栏project,展开项目目录,结构如下
其中.idea是整个项目的配置文件
src是存放Java源码的目录
web目录一般是存放jsp或前端代码,以及字节码文件和web配置文件
点击右上角Edit Configurations(由于我的已经配置好,所以会显示tomcat)
在Templates下找到tomcat
点击local
下拉选择服务器,设置端口号,然后点击Apply应用,OK
双击index.jsp,打开文件,JSP是一种能够在前端HTML代码里面嵌入Java代码的文件格式,用<% %>标签将Java代码包起来即可,其中,表达式用<%=表达式%>。编写如下代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个web</title> <!-- 标题 -->
</head>
<body>
<%-- 内容都写在body,如果不太懂HTML可以先找几篇博客看一下,也简单--%>
<h1>这是我第一个web</h1>
<%-- 下面嵌入Java代码--%>
<%
int a=1,b=2,c;
c=a+b;
out.println("1+2的和是:");//out是内置对象,所以不用写System.out
%>
<%--jsp中Java表达式--%>
<%=c%>
</body>
</html>
配置项目结构,在WEB-INF下创建两个文件夹classes和lib,一般用来存放编译好的Java字节码文件和依赖的库(比如后面用到的JDBC)
点击file -> project structure,将输出路径选为刚创建的classes,点击Apply,OK
配置服务器,点击Edit Configurations
把Myweb_war_exploded/删掉,http://localhost:8080/表示你运行项目时,浏览器上显示的url
切换Development下,下方的Myweb_war_exploded/也删掉,只流一条斜线,点击Apply,然后点OK
配置web.xml文件
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<welcome-file-list>
<welcome-file>index.jspwelcome-file>
welcome-file-list>
web-app>
点击右上角的绿色三角形,运行
运行结果如下
至此,就已经对基本的web项目流程搞清楚了,前后端都可以在jsp中写,不同功能写不同的页面(当然这是比较原始的方法,对于大型项目不合适)。
----------------------分割线----------------------------
如果还没准备好数据库环境的同学就到此结束了,关于MySQL的环境配置这里不多讲,网上有很多。
jdbc是Java用来连接数据库的驱动,要添加依赖到web项目才能使用,首先解压下载的jdbc,找到.jar文件,把它拷贝到刚才建的lib文件目录下:
然后打开file->project structure,点击+号,选择第一个jar
选择刚才拷贝的jar文件
点击Apply,OK
创建一个简单的学生表数据库
编写连接数据库的代码,在src中新建package conn,再新建一个Dao类,返回的是一个connection。
编写连接数据库代码,Dao类里写如下代码:
package conn;
import java.sql.*;
public class Dao {
String driverClass = "com.mysql.cj.jdbc.Driver";
String serverIp = "localhost";//主机名,一般默认localhost
String databaseName = "myweb";//数据库的名字
String userName = "root";
String pwd = "123456";//数据库密码
String jdbcUrl = "jdbc:mysql://"+serverIp+":3306/"+databaseName+"?serverTimezone=Asia/Shanghai&useSSL=true";
Connection con=null;
public Connection connection(){
Connection con=null;
try {
//读取JDBC
Class.forName(driverClass);
//链接数据库
con = DriverManager.getConnection(jdbcUrl,userName,pwd);
this.con = con;
} catch (Exception e) {
e.printStackTrace();
}
return con;//返回Connection对象
}
}
再新建一个package,添加一个测试类Test,测试一下数据库连接,写入以下内容:
package test;
import conn.Dao;//包含Dao类
import java.sql.*;
public class Test {
public static void main(String args[]){
Dao dao = new Dao();//创建Dao对象
Connection con = dao.connection();//获得连接对象
String tableName = "test";//数据库中的一个表的表名
if (con != null)
System.out.print("数据库连接成功!");
else
System.out.print("数据库连接失败");
try {
Statement statement = con.createStatement();
String sql = "SELECT * FROM test";//定义一个查询语句
ResultSet rs = statement.executeQuery(sql);//执行查询语句
while (rs.next()){
System.out.print("ID:"+rs.getString("id"));
System.out.print("姓名:"+rs.getString("name"));
System.out.print("年龄:"+rs.getString("age"));
System.out.println();
}
}catch (Exception e){
System.out.print("异常:"+e);
}
}
}
运行一下测试类,注意,不要点之前的绿色三角形,因为那是运行web项目的,现在我们要运行Java代码。
选择要运行的类
运行结果,控制台会输出表test中的所有信息,
刚刚只是在控制台测试了一下数据库连接,发现能正常连接,现在我们要在网页上显示数据库内容,只需吧测试代码放到index.jsp中即可,不要忘了导入Dao类。对了,这里说一下,虽然index.jsp与Dao类不在同一目录下,但由于src目录是被设置为了根目录(文件夹颜色一般是蓝色),所以在项目任何地方都能直接访问src下的包。index.jsp中编写代码如下:
<%@ page import="conn.Dao" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>第一个web</title> <!-- 标题 -->
</head>
<body>
<%-- 内容都写在body,如果不太懂HTML可以先找几篇博客看一下,也简单--%>
<h1>这是我第一个web</h1>
<%-- 下面嵌入Java代码--%>
<%
Dao dao = new Dao();//创建Dao对象
Connection con = dao.connection();//获得连接对象
String tableName = "test";//数据库中的一个表的表名
if (con != null)
System.out.println("数据库连接成功!");
else
System.out.println("数据库连接失败");
try {
Statement statement = con.createStatement();
String sql = "SELECT * FROM test";//定义一个查询语句
ResultSet rs = statement.executeQuery(sql);//执行查询语句
%>
<table border="1">
<tr><th>ID</th><th>姓名</th><th>年龄</th></tr>
<%
while (rs.next()){
%>
<tr>
<td><%=rs.getString("id")%></td><!--获取字段-->
<td><%=rs.getString("name")%></td>
<td><%=rs.getString("age")%></td>
</tr>
<% }
}catch (Exception e){
System.out.print("异常:"+e);
}
%>
</table>
</body>
</html>
运行web项目,要选择tomcat运行
结果
如果能成功,恭喜你已经了解了基本的Javaweb项目建立和数据库连接等相关操作,如果有什么问题欢迎在下方留言。