:::info 大二下学期上课笔记 :::

【第二章】JavaWeb概述

一、XML

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

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

XML语法

JavaWeb学习笔记 - 图1

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

DTD和Schema约束

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

二、HTTP协议

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

JavaWeb学习笔记 - 图2

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

HTTP请求消息

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

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

HTTP响应消息

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

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

三、Tomcat

关于Tomcat

JavaWeb学习笔记 - 图3

下载安装Tomcat

安装等方式参考博客

四、Web应用

简述

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

JavaWeb学习笔记 - 图4

IDEA配置Tomcat

搭建web开发环境

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

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

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

【第三章】Servlet

一、什么是Servlet

什么是Servlet

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

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

JavaWeb学习笔记 - 图5

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

  1. package cn.itcast.firstmyapp.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. public class HelloWordServlet extends HttpServlet {
  9. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  10. throws ServletException, IOException {
  11. System.out.println("接受了客户端的请求-----------------------------");
  12. // 设置响应类型:
  13. resp.setContentType("text/html");
  14. // 获取输出流:
  15. PrintWriter pw = resp.getWriter();
  16. // 写入响应:
  17. pw.write("<h1>Hello, world!</h1>");
  18. // 最后不要忘记flush强制输出:
  19. pw.flush();
  20. }
  21. }

三、Servlet虚拟路径的映射

1. 多重映射

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

JavaWeb学习笔记 - 图6

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

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

JavaWeb学习笔记 - 图7

3. 缺省

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

四、 ServletConfigServletContext

ServletConfig接口

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

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

【第五章】会话技术

一、会话技术

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

【第六章】JSP技术

一、JSP概述

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

调用servlet过程:
JavaWeb学习笔记 - 图9

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

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

二、JSP语法

jsp脚本元素

JavaWeb学习笔记 - 图11

jsp注释

JavaWeb学习笔记 - 图12

jsp指令

page指令

JavaWeb学习笔记 - 图13

include指令

JavaWeb学习笔记 - 图14

taglib指令

jsp隐式对象

JavaWeb学习笔记 - 图15

【第九章】JDBC

一、什么是JDBC

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

JavaWeb学习笔记 - 图16
JavaWeb学习笔记 - 图17

二、JDBC常用的API

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

JavaWeb学习笔记 - 图18
JavaWeb学习笔记 - 图19
JavaWeb学习笔记 - 图20

【第十一章】JSP开发模型

一、JSP两种开发模式

JavaWeb学习笔记 - 图21

JSP Model1

JavaWeb学习笔记 - 图22
JavaWeb学习笔记 - 图23

JSP Model2

JavaWeb学习笔记 - 图24
JavaWeb学习笔记 - 图25

二、MVC设计模式

JavaWeb学习笔记 - 图26
JavaWeb学习笔记 - 图27

三、JavaWeb开发中的三层架构

JavaWeb学习笔记 - 图28
JavaWeb学习笔记 - 图29
JavaWeb学习笔记 - 图30