servlet

您所在的位置:网站首页 java后端接收文件 servlet

servlet

2023-06-01 18:30| 来源: 网络整理| 查看: 265

web开发概述

Web服务器是指驻留于因特网上某种类型计算机的程序

可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览; 它是一个容器,是一个连接用户与程序之间的中间件

Web服务器有很多,流行的WEB服务器有Tomcat 、 WebSphere 、 WebLogic、Jboss等。

web前端:html,css,javascript,vue.js,ElementUI

web程序:网页(界面)服务器

前端作用

1.让用户输入数据

2.显示数据

web开发环境搭建 步骤

1.搭建后端服务器

2.前端向后端发送请求

3.后端处理,向前端进行响应

4.在前端动态显示数据

搭建后端服务器

以前的java程序都是在本地运行,在idea执行main()开始运行

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

现在电脑上安装一个web服务器,把开发的java程序部署在服务器中,从前端通过网络访问

服务器

广义上讲:硬件+软件

狭义上讲:软件,是一款程序,里面部署资料(网页,java)

外界可以访问服务器中的文件,访问到之后,就可以向访问者响应文件

安装一款免费的有apache提供的服务器--tomcat服务器

下载

解压

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

进入tommcat安装文件的bin目录,找到startup.bat启动tomcat

创建一个web后端项目,并将项目部署到tomcat中

1.创建一个java项目

2.为项目添加web功能

3.在idea中集成tomcat进来,并将web后端的项目部署到tomcat中

创建web后端程序(javaEE)

HttpServlet是javaEE中的一个类,servlet处理类必须继承此类,这样就具备了servlet程序功能,启动服务器时就会加载这些类

Servler创建和使用-Servlet配置

Servlet是Server Applet的简称,意思为用Java编写的服务器端的程 序. 它运行在web服务器中,web服务器负责Servlet和客户的通信以及调 用Servlet方法。 

Servlet的作用:

1.接收用户发送的请求数据

2.调用其他的java程序来处理请求

3.根据处理结果,将结果响应给客户

搭建servlet程序:

1.搭建一个类集成HttpServlet

2.重写方法

3.在web.xml文件中配置servlet

由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被 外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文 件中使用元素和元素完成

元素用于注册Servlet,它包括两个主要的子元素

和,分别用于设置Servlet的注册名称和完整类名

一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定 Servlet的注册名称和Servlet的对外访问路径。

url-pattern配置模式:”/”代表当前web应用的根目录

Web.xml文件为web应用的配置文件,它必须放在web应用目录WEB-INF目录下。 

Web.xml文件用于对web应用下的web资源进行配置,服务器在启动时会读取web.xml文件中的内容

Servlet生命周期 实例化

无参构造方法,初始化创建的对象

在第一次访问这个servlet时或服务器启动时,被调用,只调用了一次

初始化

init方法:在构造方法执行后,紧接着来实行,用来初始化servlet,只调用了一次,如果没有初始化需要,也可以不重写,会调用父类中的init方法

服务

service方法:提供服务,每次访问servlet程序都会执行,多次执行,提供一个用来封装请求和一个用来封装响应的对象

消亡

destory方法:在服务器关闭时会被调用,可以在服务器关闭时执行一些必要的操作,此方法在我们的类中可以不重写(调用父类中的destory方法)

http协议

超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本 到本地浏览器的传送协议,是互联网上应用最为流行的一种网络协议,用于 定义客户端浏览器和服务器之间交换数据的过程

HTTP是一个基于TCP/IP通信协议来传递数据,客户端与服务器交互必须建立连接

HTTP是一个属于应用层的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统.

浏览器连接服务器时,向服务器发送请求,称为http请求

一个http请求包含三个部分

请求行:请求的地址,http版本,状态码,都是由浏览器自动处理

请求头:包含主机地址,客户端的一些环境信息,以键值对的形式传递

请求体:表单post方式提交的数据区域,以键值形式传递

http请求分为GET请求方式和POST请求方式

GET:超链接请求,地址栏直接访问,主要用于从服务器端获取数据,向服务器端传输数据量小,且在地址栏显示

POST:表单post方式提交数据,主要用于从前端向后端传输大量数据(可上传文件),数据存放在请求体中,相对安全

请求和响应是Web交互最基本的模式,在Servlet中,用HttpServletRequest 来表示请求。HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息

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

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

处理中文乱码 post setCharacterEncoding(编码格式)

getMethod()得到客户机请求方式

getScheme()请求协议

getRemoteAddr()返回发出请求的客户机的IP地址

getServerName()服务器名(ip或域名)

getServerPort()服务器端口

http响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。

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

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

状态码:服务器和浏览器用于确定状态的固定数字号码

200:请求成功

302:请求重定向

400:语义有误,当前请求无法被服务器理解或请求参数有误

404:请求资源不存在,通常是路径写错了或者服务器资源删除了

500:服务内部错误(代码异常)

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

响应体代表服务器向客户端浏览器回送的正文

Web服务器收到客户端的http请求,会针对每一次请求,分别创建 一个代表响应的HttpServletResponse对象。

HttpServletResponse对象代表响应

用getWriter()获得一个PrintWriter字符输出流输出数据

response会默认以ISO8859-1将需要输出到浏览器的字符进行解码, 如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。

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

过滤器

Filter也称之为过滤器,在请求进入servlet之前,可以配置那些请求进入到指定的过滤器,完成一些公共的处理,对服务器web资源进行拦截(权限控制,通过拦截资源进行权限控制,是否可以访问)

Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实 现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人 员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截

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

 Filter

FilterChain

FilterConfi

Filter接口是过滤器类必须实现的接口,该接口中有三个方法。

init(FilterConfig filterConfig):该方法是对filter对象进行初始化 的方法,仅在容器初始化filter对象结束后被调用一次。参数 FilterConfig可以获得filter的初始化参数。

doFilter(ServletRequest request, ServletResponse response, FilterChain chain):该方法是filter进行过滤操作的方法,是最重 要的方法。过滤器实现类必须实现该方法。方法体中可以对request 和response进行预处理。其中FilterChain可以将处理后的request 和response对象传递到过滤链上的下一个资源。

destroy():该方法在容器销毁过滤器对象前被调用

该接口类型作为Filter接口中doFilter方法的参数使用。FilterChain接 口中有一个方法 doFilter(ServletRequest request,ServletResponse response), 该方法可以将当前的请求和响应传递到过滤链上的下一个资源,可能 是下一个过滤器,也可能是目标资源

作用

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

一个过滤器可以配置给多个资源使用

一个资源也可以配置多个过滤器,按照配置顺序调用

前端发送请求

1. 表单向后端发送请求,属于同步请求 同步:发送一个请求,给一个回应,会用回应的内容覆盖掉浏览器中原来的内容 这样会打断前端其他的正常操作,在现在的前端中不太友好

2. 异步请求 异步:不同步  前端正常输入时可以同时与后端进行交互,后端相应的数据不会影响前端正常操作 可以使用一个js中提供的对象,向后端发送请求,服务器响应的内容,会被js对象接收 然后在js中,用接收到内容的,局部的更新网页,这样整个过程页面不会出现刷新,覆盖操作,不会打断页面的正常操作

前后端交互中出现一个跨域问题:

在前端的服务页面中(8848),接受后端服务器(8080)响应的数据 使用ajax技术前后端交互,前端默认会阻止,不让前端的服务接收其他后端的数据 为了安全性 协议,域名,端口有一个不相同就是跨域问题 跨域问题解决:前端解决,后端解决:在响应头中设置说明,告知浏览器,此次的响应是安全的



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3