JavaWeb

1JavaWeb简介

1.1JavaWeb的概念

(a)什么是javaWeb

javaWeb是指,所有通过java语言编写可以通过浏览器访问的程序的总称,叫javaWeb;javaWeb是基于请求和响应来开发

(b)什么是请求?

请求是指客户端给服务器端发送数据,叫请求 Request.

(c)什么是响应?

响应是指服务器给客户端回传数据,叫响应 Response.

(d)请求和响应的关系

请求和响应是成对出现的,有请求就有响应

1.2 Web资源分类

动态资源: jsp页面、Servlet程序

静态资源: html、css、js、txt、mp4、jpg图片等

1.3 常用服务器

Tomcat:

Jboss

GlassFish

Resin

WebLogic

1.4 Tomcat的停止
  1. 点击tomcat服务器窗口的x关闭按钮
  2. 把 Tomcat 服务器窗口置为当前窗口,然后按快捷键 Ctrl + C
  3. 找到 Tomcat 的 bin目录下的shutdown.bat双击,就可以停止Tomcat服务器
1.5 如何修改 Tomcat的端口号

mysql默认的端口号是:3306

Tomcat默认的端口号是:8080

找到Tomcat目录下的conf目录,找到Server.xml配置文件。

(修改完端口号,一定要重启Tomcat服务器才能生效)

1.5.1 如何部署web工程到Tomcat 中
  1. 只需要把web工程的目录拷贝到Tomcat的webapps目录下即可。
  2. 找到Tomcat下的conf目录\Catalina\localhost\下,创建如下的配置文件
1.5.2 ROOT 的工程的访问,以及 默认index.html 页面的访问
  1. 当我们在浏览器地址栏中输入访问地址如下:

    http://ip:port/ ====>>> 没有工程名的时候,默认访问的是ROOT 工程。

  2. 当我们在浏览器地址栏中输入的访问地址如下:

    http://ip:port/工程名/ ====>>>>> 没有资源名,默认访问 index.html页面

2 Servlet技术*

2.1 什么是servlet
  1. Servlet是java接口之一
  2. Servlet是运行在服务器端的一个java程序

作用:它可以接收客户端发送过来的请求,并响应数据给客户端。

  1. Servlet是JavaWeb组件之一。三大组件分别是:Servlet程序、Filter过滤器、Listener监听器。
2.2 手动实现Servlet程序
  1. 编写一个类去继承HttpServlet类,
  2. 根据业务需要去重写 doGet() 和 doPost() 方法(重写其中一个或两个)
  3. 配置Servlet 程序的访问地址:两种方法
    ①:在web.xml中配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <!-- servlet别名,一般与类名相同 -->
        <servlet-name>name</servlet-name>
        <!-- servlet全限定类名,即servlet位置路径 -->
        <servlet-class>com.example.servlet.Servlet_life</servlet-class>
        <!-- 启动优先级 -->
        <load-on-startup>-1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <!-- 跟上面的别名一致 -->
        <servlet-name>name</servlet-name>
        <!-- 请求访问路径,“/”必须加上,相当于项目名称 -->
        <url-pattern>/life</url-pattern>
    </servlet-mapping>
</web-app>

②:用@WebServlet注解

@WebServlet(value = "/hello")
2.3 Servlet的生命周期
  1. 执行Servlet构造器方法
  2. 执行init 初始化方法

第一、二步是在第一次访问的时候创建Servlet程序会调用。

  1. 执行service方法

每次访问都会调用

  1. 执行destroy方法

在web工程停止的时候调用

2.4 ServletConfig类

Servlet程序的配置信息类

Servlet程序和ServletConfig 对象都是由Tomcat负责创建,我们只负责使用

Servlet程序默认是第一次访问的时候创建,ServletConfig是每个Servlet程序创建时,就创建一个对应的ServletConfig对象。

2.4.1 ServletConfig类的三大作用
  1. 可以获取Servlet程序的别名 Servlet-name的值
  2. 获取初始化参数 init-param
  3. 获取 ServletContext对象
2.5 ServletContext类
2.5.1 什么是ServletContext?
  1. ServletContext是一个接口,他表示Serlvet 上下文对象
  2. 一个web工程只有一个ServletContext 对象实例。
  3. ServletContext对象是一个域对象。 域对象:是可以将Map一样存储数据的对象 域指的是存储数据的操作范围
存数据取数据删除、数据
Mapput()get()remove()
域对象setAttribute()getAttribute()removeAttribute()
2.5.2 ServletContext类的四个作用
  1. 获取web.xml中配置的上下文参数Content-param
  2. 获取当前的工程路径,格式:/工程路径
  3. 获取工程部署后在服务器磁盘上绝对路径。
  4. 像Map一样存储数据
//1. 获取web.xml中配置的上下文参数Content-param
ServletContext servletContext = getServletConfig().getServletContext();
String username = servletContext.getInitParameter("username");
String password = servletContext.getInitParameter("password");
System.out.println("context-param参数username的值是" + username);
System.out.println("context-param参数password的值是" + password);
//2. 获取当前的工程路径,格式:/工程路径
System.out.println("当前工程路径:" + servletContext.getContextPath() );
//3. 获取工程部署后在服务器磁盘上绝对路径。
System.out.println("工程部署的路径是:" + servletContext.getRealPath("/"));

3 HTTP协议

3.1 什么是HTTP协议?

协议是指双方,或者多方,相互约定好,大家都需要遵守的规则,叫协议。

所谓HTTP协议,就是指,客户端和服务器之间通信时,发送的数据,需要遵守的规则,叫HTTP协议。

HTTP协议中的数据又叫报文。

3.2 请求HTTP协议的格式?

客户端给服务器发送数据叫请求。

服务器给客户端回复数据叫响应。

请求分为Get请求个Post请求两种

3.2.1 GET请求
  1. 请求行

    (1)请求的方式 GET
    (2)请求的资源路径[+?+请求参数]
    (3)请求的协议的版本号 HTTP/1.1

  2. 请求头

  3. 请求体

Accept:告诉服务器,客户端可以接收的数据类型
Accept-Language:告诉服务器客户端可以接收的语言类型
zh_CN 中文中国
en_Us 英文美国
User-Agent:就是浏览器的信息
Accept-Encoding:告诉服务器,客户端可以接收的数据编码(压缩)格式Host:表示请求的服务器ip和端口号
Connection:告诉服务器请求连接如何处理
Keep-Alive告诉服务器回传数据不要马上关闭,保持一小段时间的连接

​ Closed马上关闭

3.2.2 POST请求
  1. 请求行

(1)请求的方式 POST
(2)请求的资源路径[+?+请求参数]
(3)请求的协议的版本号 HTTP/1.1

  1. 请求头

(1) key:value 不同的请求头,有不同的含义

Accept:表示客户端可以接收的数据类型
Accpet-Languege:表示客户端可以接收的语言类型

User-Agent:表示客户端浏览器的信息
Host:表示请求时的服务器ip和端口号

  1. 请求体 发送给服务器的数据
3.2.3 哪些是GET请求,哪些是POST请求

GET请求有哪些:
1、form标签method=get

2、a标签
3、link标签引入css

4、script标签引入js文件

5、img标签引入图片

6、iframe引html页面
7、在浏览器地址栏中输入地址后敲回车
POST请求有哪些:
8、form标签method=post

3.4 请求的转发
3.4.1 什么是请求的转发?

请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。

3.4.2 请求转发的特点?
  1. 咯浏览器地址栏没有变化
  2. 他们是一次请求
  3. 他们共享Request 域中的数据
  4. 可以转发到WEB-INF目录下
3.4.5 base 标签的作用

base标签可以设置当前页面中所有相对路径工作时,参观哪个路径来进行跳转。

3.4.6 Web中的相对路径和绝对路径
相对路径

. 表示当前目录

… 表示上一级目录

资源名 表示当前目录/资源名

绝对路径

​ http://ip:port/工程路径/资源路径

3.5 HttpServletResponse类
3.5.1 HttpServletResponse 类的作用

HttpServletResponse类和HttpServletRequest类一样。每次请求进来,Tomcat服务器都会创建一个Response对象递给servlet程序去使用。HttpServletRequest表示请求过来的信息,HttpServletResponse表示所有响应的信息,
我们如果需要设置返回给客户端的信息,都可以通过HttpServletResponse对象来进行设置。|

3.5.2 两个输出流的说明

字节流 getOutputStream(); 常用于下载(传递二进制数据)

字符流 getWriter(); 常用于回传字符串(常用)

3.6 如何往客户端回传数据
3.7 请求重定向

是指客户端给服务器发送请求,然后服务器告诉客户端说,我给你一些地址。你去新地址访问。(因为之前的地址可能已经被废弃)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2oWKRqoU-1669004619539)(C:\Users\HUAWEI\AppData\Roaming\Typora\typora-user-images\image-20221120152738764.png)]

3.7.1 请求重定向的特点:
  1. 浏览器地址栏会发生变化
  2. 两次请求
  3. 不共享Request域中的数据
3.7.2 两个输出流的说明

字节流 getOutputStream(); 常用于下载(传递二进制数据)

字符流 getWriter(); 常用于回传字符串(常用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值