网络安全Java代码审计实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 Java EE环境搭建

在Java_Web开发中,最常见的开发环境为JDK+Eclipse+Tomcat+SQL(Oracle/MySQL)。除Eclipse之外还有IDEA和Netbeans可作为Java_Web开发的IDE。Web服务器除了Tomcat外还有Resin、JBoss、WebSphere、WebLogic等。本文主要讲解JDK+Eclipse+Tomcat+Oracle环境的搭建。

1.JDK安装及配置

JDK全称Java Development ToolKit,是用于使用Java编程语言构建应用程序和组件的开发环境。JDK包含一些工具,这些工具可用于开发和测试用Java编程语言编写并在Java平台上运行的程序。

官网下载最新的JDK,下载地址:https://www.oracle.com/java/technologies/javase-downloads.html。下载完成安装后,需配置环境变量。配置完成后,运行“java--version”(见图1-1)、java和javac(见图1-2)几个命令,如果正常返回信息说明配置完成。

图1-1 Java的版本

图1-2 java和javac命令

2.Tomcat安装及配置

Tomcat Web服务器是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现的。因为Tomcat技术先进、性能稳定,而且免费,故深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat的下载地址为:http://tomcat.apache.org,下载最新的版本即可,Tomcat下载页面如图1-3所示。

图1-3 Tomcat下载页面

下载完成后,解压压缩包,运行startup.sh,会提示“Tomcat started”,说明启动脚本正常运行,启动Tomcat如图1-4所示。

图1-4 启动Tomcat

Tomcat的默认工作端口是8080,访问http://127.0.0.1:8080,返回如图1-5所示的界面,说明Tomcat启动成功。

图1-5 Tomcat启动成功界面

3.Eclipse安装及配置

Eclipse是一个开放源代码、基于Java的可扩展开发平台。最初主要用于Java语言的开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。Eclipse本身只是一个框架平台,但是众多插件的支持使其拥有其他功能相对固定的IDE软件很难具有的灵活性。

1)Eclipse下载及安装

下载地址:https://www.eclipse.org/downloads/packages/,下载“Eclipse IDE for Enterprise Java Developers”这个安装包,Eclipse下载如图1-6所示。

图1-6 Eclipse下载

双击安装包进行安装,安装过程需要等待一段时间,安装完成后,打开Eclipse运行界面如图1-7所示。

图1-7 Eclipse运行界面

2)Eclipse创建“HelloWorld”程序

单击“File”→“New”→“Java Project”新建Java项目,如图1-8所示。

图1-8 新建Java项目

下一步需要输入项目的名称,项目名称可以自定义,设置项目名称为“test”,其他设置默认即可,然后单击“Finish”按钮,如图1-9所示。

图1-9 输入项目的名称

创建完成工程后,在项目中右击,选择“New”→“Class”,在工程中创建Class文件,如图1-10所示。

图1-10 创建Class文件

在“New Java Class”界面中添加Package的名称“com.any.test”,添加Class的名称“HelloWorld”,单击“Finish”按钮,如图1-11所示。

图1-11 添加Class的名称

编辑“HelloWorld.java”文件,进行代码编写,完成后运行、输出“Hello World”,至此使用Eclipse创建项目进行编程并运行的整个过程就完成了,如图1-12所示。

图1-12 搭建完成

3)Eclipse配置Java Web程序

首先要配置Tomcat服务器,在“Preferences”中单击“Server”,然后单击“Runtime Environments”,在弹出的复选框中选中已经安装好的Tomcat,笔者前面下载安装的是Apache Tomcat v9.0,那选中的就是Apache Tomcat v9.0,如图1-13所示。

图1-13 配置Tomcat服务器

选中后会弹出图1-14所示的页面,需要添加Tomcat的安装目录,最后单击“Finish”按钮,上文中的安装目录是“/Users/walk/ss/apache-tomcat-9.0.33”,那填写的目录就是“/Users/walk/ss/apache-tomcat-9.0.33”,最后单击“Finish”按钮。这样,Eclipse与Tomcat的配置就完成了。

图1-14 Eclipse与Tomcat的配置

Web服务配置完成后就可以创建Java Web的应用程序了,首先要创建Java Web的项目,单击“File”→“New”→“Dynamic Web Project”,然后就可以创建一个Web项目了,如图1-15所示。

图1-15 创建一个Web项目

在弹出的页面中单击“Finish”按钮,Web项目就创建完成了,如图1-16所示。

图1-16 Web项目创建完成

在项目中右击鼠标,再单击“New”,选中“JSP File”,创建JSP文件,如图1-17所示。

图1-17 创建JSP文件

首先在弹出的页面中输入创建文件的名字File name,名字可以自定义,如图1-18设置文件的名字为“index.jsp”,然后单击“Finish”按钮,完成文件的创建。

创建完成的文件在“WebContent”目录下,打开index.jsp文件编辑jsp代码,如图1-19所示。

图1-18 设置文件名字

图1-19 编辑jsp代码

index.jsp文件编辑完成后,在页面中右击鼠标,选择“Run As”→“1 Run on Server”来运行此文件,如图1-20所示。

图1-20 运行index.jsp文件

运行完成后会在“Eclipse”中输出“Hello World!!!”字符串,如图1-21所示。

图1-21 运行完成

4.Java使用JDBC连接Oracle数据库

1)什么是JDBC

Java Database Connectivity(JDBC)API是Java编程语言和众多数据库(关系型数据库)与表格数据源(如电子表格或平面文件)之间的,独立于数据库连接的行业标准。JDBC API为基于SQL的数据库访问提供了一个调用级API。

JDBC技术可以利用Java编程语言来实现“一次编写,随处运行”来访问企业数据的应用。有了支持JDBC技术的驱动程序,即使在异构环境中也能连接所有的企业数据。

2)JDBC连接数据库的步骤

JDBC连接数据库的步骤包括如下4步:注册驱动、连接数据库、创建Statement对象和执行SQL命令。

(1)注册驱动

JDBC在连接数据库之前,先要进行驱动的注册,通过java.lang.Class类的静态方法forName(String className)实现驱动加载。

(2)连接数据库

通过“java.sql.DriverManager”的“getConnectin(String url,String username,String password)”方法获取一个Connection对象,代表一个数据库连接的创建。

URL详解:url中包含了数据库连接的协议、子协议和数据源标识,用冒号隔开,还包括属性名和属性值。

协议:JDBC连接就是jdbc协议。

子协议:驱动程序名或数据库连接机制。

数据源标识:数据库主机地址+端口+数据库名称。

属性名和属性值并不是必须的,如下所示,代表使用的是Unicode字符集,gbk字符编码方式:

URL示例:

协议:JDBC连接就是jdbc协议。

子协议:驱动程序名或数据库连接机制为mysql。

数据源标识:localhost:3306/any,表示连接的是localhost主机3306端口的any数据库。

属性名和属性值:“useUnicode=true&characterEncoding=gbk”,代表使用的是Unicode字符集,gbk字符编码方式。

username简介:username代表连接数据库的用户名信息。

password简介:password代表连接数据库的密码信息。

连接数据库示例:

表示使用JDBC协议连接了MySQL数据库驱动,连接的是localhost主机3306端口的any数据库,使用的用户名为root,密码为root。

(3)创建Statement对象

执行SQL语句,需要创建Statement对象,Statement一般分为以下几种:

① Statement对象执行不带参数的简单SQL语句:

② PreparedStatement扩展Statement,实现可能包含参数的预编译SQL语句:

③ CallableStatement扩展PreparedStatement,用于执行可能包含输入和输出参数的存储过程:

(4)执行SQL命令

前面我们讲完了Statement对象的创建,下面讲解如何执行SQL命令,一般执行SQL命令有三种方法:execute、executeQuery和executeUpdate,虽然这3种方法都可以执行SQL命令,但是使用的场景是不同的。

① execute方法用来执行任意的SQL命令。

② executeQuery主要进行查询的操作。

③ executeUpdate执行INSERT、DELETE和UPDATE操作使用此方法。

(5)处理ResultSet对象

ResultSet返回了数据查询的相关信息,要使用ResultSet对象获取数据,则通过get方法进行获取:

(6)关闭连接

数据库连接用完后需要马上释放,如果连接不能及时正确地关闭将导致系统资源占用过多,甚至会出现宕机的情况。

① 关闭ResultSet对象,即“rs.close();”。

② 关闭Statement对象,即“state.close();”。

③ 关闭connection对象,即“conn.close();”。

(7)JDBC连接数据库的完整示例

3)Java使用JDBC连接Oracle数据库

(1)常见Oracle数据库版本、JDBC版本与JDK版本

图1-22介绍了常用版本中支持的Oracle数据库版本、对应支持的JDK版本以及符合JDBC的版本,还介绍了特定版本需要使用的JDBC.jar文件名。

图1-22 常用版本中支持的Oracle数据库版本

(2)Oracle JDBC下载

从Oracle技术网SQLJ和JDBC下载页面下载所需的JDBC jar文件,下载地址为https://www.oracle.com/cn/database/technologies/features/jdbc/ucp-download-page.html,如图1-23所示。

图1-23 Oracle JDBC下载

(3)JDBC连接Oracle数据库

① 将对应版本的jdbc.jar文件放到WEB-INF目录下,环境是Oracle 11.2.0.2.0,需要将ojdbc6.jar文件放在WEB-INF目录下,如图1-24所示。

图1-24 WEB-INF目录

② 编写连接数据库的Java程序。

这是Java连接Oracle数据库的典型代码,第一行加载了Oracle驱动,第二行定义了URL命名规则为“jdbc:oracle:thin:@IP地址:端口号:数据库实例名”,第三行和第四行定义了数据库连接的用户名和密码,最后进行了数据库的连接。

③运行此代码Web应用,通过id参数传入1,运行完成后,查询Oracle数据库并输出相关查询结果,如图1-25所示。

图1-25 查询结果

4)Java使用JDBC连接MySQL数据库

(1)MySQL JDBC下载

MySQL JDBC下载地址为:https://dev.mysql.com/downloads/connector/j,其中提供了不同平台下的压缩包,根据实际情况进行下载,如图1-26所示。

图1-26 MySQL JDBC下载

下载完成后,解压mysql-connector-java-8.0.19.jar包,用于连接MySQL数据库,如图1-27所示。

图1-27 解压结果

(2)JDBC连接MySQL数据库

单击“File”选卡,选择“Project Structur”,如图1-28所示。

图1-28 选择Project Structur

单击“SDKs”选项,再单击图1-29中的“+”号,进行jar包添加。

图1-29 添加Jar包

选择下载解压完成的jar包,完成导入,如图1-30所示。

导入成功后,在“External Libraries”中可以看到导入成功后的jar包文件,如图1-31所示。

图1-30 选择对应的Jar包

图1-31 导入Jar包成功后的结果

(3)编写程序进行数据库连接

JDBC连接MySQL数据库也是需要注册驱动,连接数据库,创建Statement对象等多个步骤的。需要注意:下载的是8.0版以上的JDBC,驱动“com.mysql.jdbc.Driver”已经更换为“com.mysql.cj.jdbc.Driver”,上文中笔者下载的是8.0.19版本的JDBC,所以下文的代码使用的是“com.mysql.cj.jdbc.Driver”注册驱动。运行完成后会执行这个“SELECT id,username,password FROM user”SQL命令,从MySQL数据库中返回相关信息,如图1-32所示。

图1-32 运行对应SQL命令的结果