1. JavaWeb简介
用Java技术来解决相关web互联网领域的技术栈.使用JAVAEE技术体系开发企业级互联网项目. 项目规模和架构模式与JAVASE阶段有着很大的差别. 在互联网项目下,首先需要明白客户端和服务器的概念
客户端 :与用户进行交互,用于接收用户的输入(操作)、展示服务器端的数据以及向服务器传递数据
服务端:与客户端进行交互,接收客户端的数据、处理具体的业务逻辑、传递给客户端其需要的数据
-
“服务器”是一个非常宽泛的概念,从硬件而言: 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务器在网络中为其它客户机(如PC机、智能手机、ATM等终端甚至是火车系统等大型设备)提供计算或者应用服务。从软件而言: 服务器其实就是安装在计算机上的一个软件,根据其作用的不同又可以分为各种不同的服务器,例如应用服务器、数据库服务器、Redis服务器、DNS服务器、ftp服务器等等
综上所述: 用我们自己的话来总结的话,服务器其实就是一台(或者一个集群)安装了服务器软件的高性能计算机
-
JavaWeb的定义和作用:
- JavaWeb是一种基于Java技术的Web开发方式,通过Java语言和相关的技术(如Servlet、JSP、Java EE等)来构建Web应用程序。
- JavaWeb在现代互联网应用中被广泛应用,可以用于开发企业级应用、电子商务平台、社交网络、在线服务等各种Web应用。
-
JavaWeb开发的优势和特点:
- 跨平台性:Java具有很好的跨平台性,一次编写多处运行,可以在不同操作系统上部署和运行。
- 强大的生态系统:Java拥有丰富的开发工具、框架和库,使得JavaWeb开发更高效、便捷。
- 安全性:Java提供了严密的安全机制,可以确保Web应用程序的数据安全性和用户隐私保护。
- 可靠性和稳定性:Java语言本身具有良好的稳定性和可靠性,有利于构建健壮的Web应用程序。
- 多线程支持:Java支持多线程编程,能够有效处理大量并发请求,提高Web应用的性能。
- 丰富的开发工具和框架:JavaWeb开发涵盖了多种框架(如Spring、Hibernate、Struts等)和工具(如Eclipse、IntelliJ IDEA),可以加速开发过程,并提高代码质量。
- 易于维护和扩展:JavaWeb应用的模块化设计和分层架构使得项目易于维护和扩展,有利于长期发展和迭代更新。
2. JavaWeb开发环境搭建
-
配置Java开发环境:
- 首先,你需要安装Java Development Kit(JDK),可以从Oracle官网或者OpenJDK项目获得。安装完成后,设置JAVA_HOME环境变量,并将Java的bin目录添加到系统的PATH变量中,这样就可以在命令行中使用Java开发工具。
-
搭建简单的JavaWeb开发环境:
- 接下来,你需要选择一个JavaWeb开发的集成开发环境(IDE),比较流行的有Eclipse、IntelliJ IDEA等。你可以下载并安装其中一个IDE,然后配置JavaWeb开发所需的插件和工具。
-
配置Web服务器:
- 通常情况下,JavaWeb应用程序会运行在一个Web服务器上,比如Apache Tomcat、Jetty、或者WildFly等。你需要下载并安装一个Web服务器,并进行相应的配置,以便在本地进行开发和测试。
-
常见的JavaWeb开发工具和框架:
- Servlet和JSP:在JavaWeb开发中,Servlet和JSP是最基础的技术,用于处理HTTP请求和生成动态内容。你可以使用Servlet和JSP构建简单的JavaWeb应用。
- Spring框架:Spring是一个非常流行的Java框架,提供了一整套的解决方案,包括依赖注入、AOP、事务管理等功能,使得JavaWeb开发更加高效和可维护。
- Hibernate:Hibernate是一个优秀的对象关系映射(ORM)框架,可以帮助开发者更方便地操作数据库,提高数据持久化的效率。
- Maven或Gradle:这些是常用的项目管理工具,能够帮助你管理依赖、构建项目、运行测试等任务,使得项目更加规范和可控。
3. Servlet和JSP基础
Servlet和JSP的基本概念:
- Servlet是基于Java的服务器端程序,用于处理HTTP请求并生成响应。它可以接收HTTP请求(如GET、POST等),并返回HTML、JSON或其他类型的响应。
- JSP是一种模板语言,允许在HTML中嵌入Java代码,以便动态生成页面内容。JSP页面会在服务器端被解析为Servlet,并且由容器编译和执行。
编写简单的Servlet和JSP程序:
- 编写Servlet通常需要继承
HttpServlet
类,并重写doGet
或doPost
方法来处理请求。这涉及到从请求中获取参数、执行业务逻辑,然后生成响应。 - 编写JSP页面时,可以使用Java代码块
<% %>
、表达式<%= %>
和声明<%! %>
来嵌入Java代码,也可以使用EL表达式${}
和JSTL标签库来实现动态内容。
Servlet和JSP在JavaWeb开发中的作用和用法:
- Servlet通常用于处理业务逻辑、调用数据库操作等,并生成动态内容或重定向至其他页面。
- JSP用于呈现动态内容,在其中可以嵌入Java代码,也可以使用标签库和表达式语言来简化页面的逻辑。
4. 数据库连接与操作
使用JavaWeb连接数据库的方法:
- JDBC是Java连接数据库的标准API。它提供了一种在Java程序中执行SQL语句和访问数据库的标准方法。通过加载数据库驱动程序、建立连接、创建语句对象、执行SQL语句、处理结果集等步骤来实现对数据库的操作。
实现基本的数据库操作:
- 增加数据:使用INSERT语句将新记录插入数据库。
- 删除数据:使用DELETE语句删除满足条件的记录。
- 修改数据:使用UPDATE语句更新指定记录。
- 查询数据:使用SELECT语句查询满足条件的记录。
数据库连接池技术与安全性考量:
- 数据库连接池可以提高数据库连接的效率和性能,避免频繁地创建和销毁数据库连接,例如使用Apache Commons DBCP、C3P0等。
- 在使用数据库连接时,需要注意安全性问题,如SQL注入攻击。可以使用预编译语句、ORM框架或者安全框架来防范。
5. MVC架构在JavaWeb中的应用
MVC架构的基本概念:
- MVC(Model-View-Controller)是一种设计模式,用于将应用程序分为三个核心部件:模型、视图和控制器。这样做有助于实现业务逻辑、数据展示和用户交互的分离。
在JavaWeb项目中使用MVC架构进行开发:
- 模型层(Model)通常负责处理业务逻辑和数据操作,例如封装实体对象、访问数据库等。
- 视图层(View)负责将模型的数据展现给用户,通常是HTML页面或者其他格式的输出。
- 控制器层(Controller)负责接收用户请求,调度对应的业务逻辑,并最终决定显示哪个视图。
Spring MVC框架的应用:
- Spring MVC是一个基于MVC架构设计的轻量级框架,它提供了丰富的特性和灵活的配置,适合用于构建JavaWeb应用程序。
6. JavaWeb技术栈
前端部分
HTML CSS JavaScript ES6 Nodejs npm vite vue3 router pinia axios element-plus ...
后端部分
HTTP xml Tomcat Servlet Request Response Cookie Sesssion Filter Listener MySQL JDBC Druid Jackson lombok jwt ...
7. JavaWeb交互模式
请求
客户端向服务端传递数据的主要方式之一,客户端主动向服务端发送请求,可以携带数据,交给服务端处理. 请求只能是客户端向服务端
响应
服务端向客户端传递数据的主要方式之一,在接收请求后开始对数据进行处理,将结果反馈给客户端使用.响应只能是服务端向客户端
8. JavaWeb的CS和BS模式
根据客户端的不同,我们可以将JAVA的互联网项目运行模式分为CS模式和BS模式
CS模式 Client-Server模式 客户端-服务端模式, 该模式特点如下
1 程序分两部分,一部分是客户端需要安装的程序,一部分是要部署在服务器上的程序
2 用户需要在硬件设备或者操作系统中,下载安装特定的客户端程序才可以使用
3 程序运行的压力由客户端和服务端共同承担
4 可以借助客户端运算资源,对数据继续处理,一般可以有较好的画质和展现效果
5 程序更新时,往往需要同时更新客户端和服务端两部分
6 跨平台性能一般,不同的平台未必都有对应的客户端程序
7 开发成本较高,要为不同的客户端开发不同客户端程序
BS模式 Browser-Server模式
1 程序就一部分,只要部署在服务器上即可
2 无论用户使用什么设备和操作系统,只要有一个安装任意一款浏览器即可
3 程序运行的压力主要由服务端承担
4 客户端承担的计算压力小,可以对数据进行简单的继续处理,但是不像CS模式那些可以获得较好的画质和展现效果
5 程序更新时,只需要同时服务端部分
6 跨平台性能优秀,只要有一个浏览器,到处都可以使用
7 开发成本略低,不必为不同的客户端开发不同客户端程序
模式选择
-
对于我们JAVA程序员来说,我们开发的是服务端代码,所有无论前端是何种类型的服务端,我们只要按照接口文档要求开发后端功能即可,尤其是在当前前后端分离模式开发为主的时代背景下,我们可以在几乎不接触前端的状态下完成开发
9. 前端技术与JavaWeb集成
JavaWeb实现前后端分离
非前后端分离
-
1 开发不分离: 程序员既要编写后端代码,又要去修改甚至编写前端代码,程序员的工作压力较大
-
2 部署不分离: 使用了后端动态页面技术(JSP,Thymeleaf等),前端代码不能脱离后端服务器环境,必须部署在一起
前后端分离
-
1 开发分离:后端程序员只要按照接口文档去编写后端代码,无需编写或者关系前端代码,前后端程序员压力都降低
-
2 部署分离:前端使用前端的页面动态技术,通过VUE等框架,工程化项目,前端项目可以部署到独立的服务器上
前端常用技术在JavaWeb开发中的应用:
- HTML负责页面结构,CSS负责样式设计,JavaScript负责交互和动态效果。
- 可以使用Ajax来实现前后端异步数据交互,提高用户体验。
将前端页面与后端JavaWeb应用结合:
- 后端提供数据接口(如RESTful API),前端通过AJAX请求数据并动态展示在页面上。
前后端分离开发模式的优势和实践经验:
- 前后端分离可以提高团队协作效率,实现前后端独立开发和部署。
- 可以使用前端框架如React、Vue.js来构建丰富的单页面应用(SPA)。