JAVA--Servlet

引入

web前端

html,css,javascript,vue.js,ElementUI

ajax 网络请求 http请求

前端作用:

1.让用户输入数据

2.显示数据

javaee企业版

servlet serve + applet 服务器程序

接受请求中的数据

处理数据(通过数据库)

响应到前端

javase

贯穿java

数据库

增删改查

WEB和GUI

web程序:网页()+服务器 B/S架构 browser + server (不用装客户端,只要有浏览器就行)

GUI : 客户端+服务器 C/S架构 client + server (需要下载客户端)

流程

前端发请求

后端接受

后端处理响应

前端显示

一、搭建服务器端

引入

之前,java程序都是在本地运行的

从javaee开始,后端程序都在服务器上运行

这就需要搭建一个web服务器,将java程序部署在服务器上,通过网络远程访问数据

服务器:

广义:硬件+软件

狭义:程序(软件),里面部署资料(网页,java)外界可以访问服务器中的文件,访问后就可以向访问者响应

​ 就是驻留于因特网上的某种计算机程序,是连接用户和程序的中间键

Ep:搭建一个服务器

1.下载解压

2.配置环境变量(可以自动根据JAVA_HOME自动找到jdk)

3.打开服务器Tomcat\bin\startup.bat启动这个服务器

4.访问,可以通过本机http://127.0.0.1:8080访问也可以通过局域网分配的IP地址(http://192.168.31.178:8080)访问

Ep:创建一个WEB后端项目

1.打开idea

2.创建一个java项目

开发期间把tomcat部署集成到idea中

开发的代码会自动更新部署到tomcat中

二、Servlet概述

Servlet是Server Applet的简称,Java编写的服务器端的程序.

servlet运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法

作用:

​ 请求:接收用户发送的请求数据

​ 处理:调用其他的java程序来处理请求

​ 响应:根据处理结果,将结果响应给客户端

Ep:创建Servlet

创建一个类继承javax.servlet.http包下的HttpServlet

在web.xml文件中配置Servlet

运行Servlet程序

通过浏览器访问http:localhost:8080/ 项目名/配置的url

三、Serlvet生命周期

实例化:构造方法:只被调用一次,只有第一次访问Servelt时或服务器启动时创建Servlet实例。

初始化:init方法,只被调用一次

服务:service方法,多次调用

消亡:destroy:调用一次,服务器关闭时调用,执行一些操作

四、http协议, http请求

http协议

超文本传输协议 (HyperText Transfer Protocol),应用层的协议,用于定义客户端浏览器和服务器之间交换数据的过程

http请求

概述:

客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个http请求

当一次http请求发送到服务器时,tomcat会将请求的所有数据封装到一个类当中,而这个类实现了HttpServletRequest接口

构成:

​ 请求行:包含http请求方式,请求资源名称,http版本 ,请求的地址,请求的状态

​ 请求头:包含主机地址,服务器信息,以及客户端的一些环境信息,以键值对的形式向后端传递,键是固定的.

​ 请求体 :代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以键值形式传递

获取方式

GET方式:

​ 超链接访问,默认是GET方式

​ form提交,不指定method,默认为GET方式

POST方式:

​ form提交,指定method=“POST”

Get方式与Post方式的区别:

1.Get方式主要是从服务器获取信息,也可以向服务器发送数据的后端地址?键=值&键=值;不会乱码

post主要是想服务器提交信息,向后端发送请求,请求的数据放在请求体中,不在地址中显示;中文可能会乱码,故需要在启动服务器时设置编码格式.

2.Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在请求体中提交,安全

3.GET方式提交少量数据,POST提交大量数据

getParameter(name) — String 通过name获得值

getParameterValues — String[ ] 通过name获得多值

post

​ setCharacterEncoding(编码格式)【text/html;charset=UTF-8】

//处理中文乱码

        //请求中的其他数据
        System.out.println(req.getMethod());//请求方式
        System.out.println(req.getRequestURL());//网路地址
        System.out.println(req.getScheme());//网络协议
        System.out.println(req.getServerName());//服务器的名字(ip/域名)
        System.out.println(req.getServerPort());//服务器端口
        System.out.println(req.getProtocol());//请求协议
        System.out.println(req.getRemoteAddr());//客户端ip/域名
        System.out.println(req.getRemotePort());//客户端端口
        //接受请求头数据
        System.out.println("接受请求头数据");
        System.out.println(req.getHeader("Connection"));

五、http响应

概述

http响应代表服务器向客户端回送的数据

服务器收到http请求时,会针对每一次请求,会创建一个代表响应的HttpServletResponse对象,使用getWriter获得PrintWriter输出流输出数据.

response.setContetnType(“text/html;charset=utf-8”);方法可以同时设定response所使用的字符集编码和浏览器打开所用的字符集编码。

构成

响应行

​ 包含了http协议版本,以及用于描述服务器对请求的处理结果

​ HTTP/1.1 (协议版本) 200(状态吗) OK(状态码描述)

状态码

​ 200:请求成功

​ 500:java程序有误

​ 404:连接到服务器,但没有找到服务器

响应头

用于描述服务器的基本信息,以及数据描述

Content-Type

响应体

服务器向客户端浏览器回送的正文

六、过滤器filter

引入

多个项目需要进行同一个操作,为了降低代码冗余,既可以设置过滤器,在过滤器中写入,让项目经过过滤器即可(在请求进入到servlet之前,可以配置哪些请求进入到指定的过滤器.完成一些公共的处理)

通过Filter技术,对web服务器管理的所有web资源实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信 息等一些高级功能

作用:对服务器web资源进行拦截(权限控制,通过拦截资源进行权限控制,是否可以访问)

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。

Servlet API 中,与过滤器有关的API共有三个接口,分别是

Filter

FilterChain

FilterConfig

实现

Filter接口

是过滤器类必须实现的接口(三个方法):该接口类型作为Filter接口中doFilter方法的参数使用

初始化 init(FilterConfig filterConfig)

过滤 doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

销毁 destroy()

FilterChain接口

该接口类型作为Filter接口中的init方法的参数使用

doFilter(ServletRequest request,ServletResponse response)

将当前的请求和响应传递到过滤链上的下一个资源,可能是下一个过滤器,也可能是目标资源

FilterConfig接口

getInitParameter(String name)

获取过滤器的初始化参数值

意义·

用来实现通用的功能,减少代码冗余,提高可维护性;

多个资源可以使用同一个过滤器,同时一个资源也可以使用多个过滤器

七、web会话跟踪

token

token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,

服务器生成一个token便将此token返回给客户端,以后客户端只需带上这个token前来

请求数据即可。token保存在客户端,并且进行了加密,保证了数据的安全性.

目的

为了减轻服务器的压力,使服务器更加健壮。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值