本系列教程适用于 Java Web 初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。
文中白话居多,尽量以小白视角呈现,帮助大家快速入门。
我是 蜗牛老师,之前网名是 Ongoing蜗牛,人如其名,干啥都慢,所以更新也慢。希望大家多多支持,让我动力十足!
Java EE 是 Java Web 开发的基础,也是众多 Java Web 开发框架的根基。有些 Java EE 规范是必须要掌握的,比如 JDBC
、JSP
和 Servlet
等。本系列教程的目标读者是 Java Web 小白白,知识点内容尽量以小白视角呈现,尽量步骤详尽,助力小白轻松入门。
我个人觉得 Java EE 很重要,它有众多规范,对于 Java Web 开发的小伙伴来说,其中有几个规范是必须要掌握的。因为我们熟知的 Java Web 框架是在按其标准进行开发的。而且现在技术发展太快,我们更加热衷于热门框架和技术,从而忽略了底层技术标准。不是我们主动放弃,而是没有时间去关注了。所以趁现在,我们入门 Java Web开发的时候,就好好学习一下 Java EE。
我这个人爱啰嗦,可能是缺点,也可能是优点。本身参加过培训班,也在培训班担任过讲师。非常明白学习编程的痛苦,当然有些同学入门极快。有点惭愧的是我在学习完基础,学习框架的时候才入门了,开窍了。其实入门之后就有一定的编程自学能力了,但是就怕卡在门口,也不清楚自己积累到什么程度才能引发质变。
那么该教程就如同我一样有点啰嗦,尽量大白话,尽量小白视角、尽量步骤详细。
接下来我们来介绍教程内容,需要注意的是以下知识点会随着教程更新有所变动,或增加知识点、或合并知识点,且会一直优化。
第一部分是 Java EE,既然学习 Java EE,那么肯定需要了解 Java EE 是什么了。该部分先是介绍了 C/S 架构和 B/S 架构,这个知识点我们是绕不开的。因为 Java EE 就是针对 B/S 架构的 Java 开发规范。然后就是详细介绍 Java EE,以及 Java EE 中主要内容有哪些。总之,这部分就是初步认识 Java EE。
C/S 架构:
B/S架构:
Java EE 平台:
第二部分是 JDBC 编程,该规范也是我们必须要掌握的,它是 Java 操作数据库开发 API。想要使用Java 操作数据库,进行数据增删改查,就得使用 JDBC。当然现在有很多优秀的持久层框架,比如 mybatis、hibernate 等。但是它们底层也是使用 JDBC,框架是将其封装,有其自己的实现思路,简化 JDBC 操作的复杂度。所以 JDBC 也是要学习的,但对于初步入门的我们来说学个基础就可以了。
/**
* 敲入main,根据提示自动生成主函数main()方法
* @param args
*/
public static void main(String[] args) {
// 将Connection、Statement、ResultSet对象变量提取至try...catch外
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// ①动态加载指定路径下的MySQL JDBC驱动,将其注册到DriverManager中。
Class.forName("com.mysql.cj.jdbc.Driver");
// ②建立到给定数据库URL的连接。
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test_jdbc?serverTimezone=Asia/Shanghai", "root", "root");
// ③创建一个Statement对象,用于向数据库发送SQL语句。
statement = connection.createStatement();
// ④执行SQL语句并返回结果
resultSet = statement.executeQuery("select * from teacher");
// ⑤处理SQL语句执行的结果
while(resultSet.next()){
// 从结果集将当前行数据取出
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String sex = resultSet.getString("sex");
int age = resultSet.getInt(4);
// 打印输出当前行数据
System.out.println("id:" + id + ",name:" + name + ",sex:" + sex + ",age:" + age);
}
} catch (ClassNotFoundException | SQLException e) {
/* 异常合并到一起
* ①加载的类找不到时,会抛出ClassNotFoundException异常。
* ②如果数据库访问错误发生或url为空时,会抛出SQLException异常。
*/
e.printStackTrace();
} finally {
try {
// ⑥关闭资源,关闭顺序:从里到外的原则,保证该资源确定不再使用
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connection != null) {
connection.close();
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
第三部分是JSP,Java 服务器页面,它帮助我们实现动态页面,这里的动态不是什么动态效果,而是页面数据动态展示。学习 JSP 主要是为了实现动态 Web 页面和数据。有了页面学习的乐趣也会增加,同时也和后面的 Servlet 学习相辅相成。它里面的一些知识点还是很重要的。总之,有必要学习。
<%@ page language="java" pageEncoding="UTF-8"%>
<html>
<body>
<%
out.println("这是我第一个JSP");
%>
</body>
</html>
第四部分是 JavaBean,其实就是一种特定类型的 Java 类,它遵循某些特定的命名和编程约定。这些约定在当前 Java 开发也一直在用。总之,这个必须知道。
public class Teacher implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Integer id;
/**
* 姓名
*/
private String name;
public Teacher() {
super();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
第五部分是 Servlet,是学习的重点,它可以处理前端发送来的请求,处理后进行响应。也就是说我们可以使用 Servlet 开发网站,网站无非就是用户也页面点击链接,服务器返回一个新页面,Servlet 就可以帮助我们实现。而且 Spring MVC 也是对 Servlet 进行了封装,所以它很重要的,是该专栏的重点知识、难点知识。
public class FirstServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("处理Get请求......");
PrintWriter out = response.getWriter();
out.println("Hello Servlet!");
}
}
这里主要是将我们学习的知识点整合起来,jdbc+jsp+javabean+servlet
技术开发一个小网站,实现一些基础功能。通过该小项目巩固所学知识,提高解决问题能力。编程过程就是解决问题的过程,必须要经历的。当我们完成这个综合案例后,就有了自己的小练习,小作品了。之后模仿着来就可以了。
这些可以作为 Java EE 进阶技术,目前还没有规划,看本专栏读者的认可程度吧,有机会的话将会补充其他 Java EE 规范知识。
学习 Java EE,要有 Java SE 基础,也需要有基本的前端技术支持,比如 HTML,CSS 和 JavaScript 次之。同时也需要知道 HTTP协议。这个要求还是很容易实现的。
在详细的教程,亲手实操时也难免出现问题,其实出现问题是好事儿,大家不要抗拒,去琢磨问题、解决问题,编程能力提高更快。但是有些问题我们不必花费大量的时间去摸索,最好是有一个正确分析问题的思路。所以告诉你思路,比直接告诉你答案更有效果。为了方便大家交流,寻求本教程中知识点帮助,将建立微信群。凡订阅本专栏的小伙伴,可以在我的公众号菜单中联系我,扫码加微信,要备注博客ID或昵称。
相互学习,相互进步!