【第二章】JavaWeb 概述

一、XML

XML 是一种标记性语言,但是不同于 HTML ,目的其实就是用于传输数据,但是 HTML 的目的可以理解为展示

网站建好之后,需要将自己的文章链接提交到百度/谷歌,通过部署生成的baidusitemap.xmlsitemap.xml文件,sitemap 提交方式提交以达到目的。

XML 语法

  • 文档声明:图中最上面一行
  • 元素定义:形式相当于 HTML 当中的标签,但不是标签,有根元素(一般只有一个),空元素等之分
  • 属性定义:其中值需要用双引号或者单引号括起来
  • 注释:和 HTML 一样

DTD 和 Schema 约束

有些时候文档内可能内容语义有歧义,所以需要对其 xml 文件内容尽可能的加以约束,DTD 和 Schema 两种方式

二、HTTP 协议

生成的 web 项目和服务器之间的传输协议

其中 http1.1 版本比 1.0 版本优化的是对 http 请求可以同时进行多个请求和响应

HTTP 请求消息

客户端(web 浏览器)向服务器发送请求,通常由请求行、请求头、实体内容三部分组成

  • 请求行:请求方式,资源路径,http 协议版本三部分组成。请求方式又有 GET(所请求内容会在资源路径后面带上参数值,会有大小限制)和 POST(安全,无大小限制)等方式

HTTP 响应消息

也由三部分组成,有资源状态行、响应消息头、实体内容

  • 资源状态行:协议版本 状态码 状态描述三部分组成。其中状态码有多种,常见的 404 就是服务器找不到相应请求的的资源

三、Tomcat

关于 Tomcat

下载安装 Tomcat

安装等方式参考博客 https://blog.csdn.net/ZTlink1013/article/details/104815639

四、Web 应用

简述

web 应用,就是一项工程,在编写 web 项目过程中,对文件按照“合乎规矩”的方式放置

IDEA 配置 Tomcat

搭建 web 开发环境

资源的访问,点击请求的页面跳转设置web.xml中配置

阮一峰的网站当中,有类似域名自动跳转,是否和域名解析有关呢?抑或是对 web.xml 进行了操作?

对 idea 进行 web 开发 配置https://blog.csdn.net/ZTlink1013/article/details/104815639

【第三章】Servlet

一、什么是 Servlet

什么是 Servlet

Servlet 就是在服务器端的 Java 接口或者说是类(叫法有狭义广义之分),处理客户端传来的请求并作出相应的响应这么一个网络模块。

  • 请求:客户端传来的调用或是一系列行为,同时也包含了请求所需要的数据。
  • 响应:服务器根据客户端传来的请求做出响应,实时的展示给客户端。这之中 Servlet 相当于 java 类当中的一个接口,以请求来的信息作为输入,然后进行分析,做出相应。

JSP 和 Servlet

servlet 是控制层,jsp 转换为 servlet,用 servlet 来实现 http 请求。

【1】JSP 第一次运行的时候会编译成 Servlet,驻留在内存中以供调用。

【2】JSP 是 web 开发技术,Servlet 是服务器端运用的小程序,我们访问一个 JSP 页面时,服务器会将这个 JSP 页面转变成 Servlet 小程序运行得到结果后,反馈给用户端的浏览器。

【3】Servlet 相当于一个控制层再去调用相应的 JavaBean 处理数据,最后把结果返回给 JSP。

【4】Servlet 主要用于转向,将请求转向到相应的 JSP 页面。

【5】JSP 更多的是进行页面显示,Servlet 更多的是处理业务,即 JSP 是页面,Servlet 是实现 JSP 的方法。

【6】Servlet 可以实现 JSP 的所有功能,但由于美工使用 Servlet 做界面非常困难,后来开发了 JSP。

【7】JSP 技术开发网站的两种模式:JSP + JavaBean;JSP + Servlet + JavaBean(一般在多层应用中, JSP 主要用作表现层,而 Servlet 则用作控制层,因为在 JSP 中放太多的代码不利于维护,而把这留给 Servlet 来实现,而大量的重复代码写在 JavaBean 中)。

【8】二者之间的差别就是,开发界面是 JSP 直接可以编写。

比如在 JSP 中写 Table 标记:<table>[数据]</table>;

Servlet 需要加入:out.println(“<table>[数据]</table>”)。

JSP 文件在被应用服务器(例如:Tomcat、Resin、Weblogic 和 Websphere),调用过之后,就被编译成为了 Servlet 文件。也就是说在网页上显示的其实是 Servlet 文件。Tomcat 下面 JSP 文件编译之后生成的 Servlet 文件被放在了 work 文件夹下,JSP 中的 HTML 代码在 Servlet 都被 out 出来,而 JSP 代码按照标签的不同会放在不同的位置。

【9】JSP 中嵌入 JAVA 代码,而 Servlet 中嵌入 HTML 代码。

【10】在一个标准的 MVC 架构中,Servlet 作为 Controller 接受用户请求并转发给相应的 Action 处理,JSP 作为 View 主要用来产生动态页面,EJB 作为 Model 实现你的业务代码。

二、Servlet 基础

接口及其实现类

就是利用其类编写相关服务器端的相关运行代码

生命周期

分三个阶段:初始化阶段->运行阶段->销毁阶段

HttpServlet 类

一般客户端和服务器之间都回使用 HTTP协议 ,所以 Servlet 接口中就提供了一个抽象类javax.servlet.http.HttpServlet,他是 GernericServlet 的一个子类,专门用来处理 HTTP协议 的 servlet;具体程序中就是用该类

HelloWordServlet.java

package cn.itcast.firstmyapp.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWordServlet extends HttpServlet {

true protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {

truetrue System.out.println("接受了客户端的请求-----------------------------");
truetrue // 设置响应类型:
true resp.setContentType("text/html");
true // 获取输出流:
true PrintWriter pw = resp.getWriter();
true // 写入响应:
true pw.write("<h1>Hello, world!</h1>");
true // 最后不要忘记flush强制输出:
true pw.flush();
true }

}

三、Servlet 虚拟路径的映射

1. 多重映射

就相当于多加几个自己指定的访问路径,在 web.xml 中

2. 映射路径下使用通配符

在其中使用通配符,一个目录下的所有路径都可以访问,其中有完全目录匹配,目录匹配,扩展名匹配

3. 缺省

通常作用是解决请求的资源找不到的情况,(404:请求的资源找不到)

四、 ServletConfigServletContext

ServletConfig 接口

类比于 git 根文件夹.ssh下的 config 配置文件,它是 servlet 的配置对象,目的就是获取与 servlet 的初始化参数

PS:会使用常用的接口方法

【第五章】会话技术

一、会话技术

相当于在客户端和服务器端之间,记录一些用户信息,但是不能用上一章节的,因为那只能保存暂时的信息。 servlet 还提供两个对象 CookieSession 可以更好地更好地保存会话数据。

【第六章】JSP 技术

一、JSP 概述

一种新的编写动态网页的技术,虽然本质还是调用了 servlet ,但是相比前者要简单很多(前者向页面写数据麻烦,复杂),其组成可以简单理解为
jsp = html + java + jsp自身

调用 servlet 过程:

其中 jsp 生成 java 文件,编译成 class 文件所在目录(本来应该在 tomcat 的 work 路径下):D:\project-java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\demo-jsp\org\apache\jsp

打开 java 文件之后可以看到相关对 sevlet 的继承

二、JSP 语法

jsp 脚本元素

jsp 注释

jsp 指令

page 指令

include 指令

taglib 指令

jsp 隐式对象

【第九章】JDBC

一、什么是 JDBC

使用数据库来存储和管理数据


二、JDBC 常用的 API

五个接口一个类(唯一的类)



【第十一章】JSP 开发模型

一、JSP 两种开发模式

JSP Model1


JSP Model2


二、MVC 设计模式


三、JavaWeb 开发中的三层架构