JavaEE &&http协议

7 篇文章 0 订阅
1 篇文章 0 订阅

通过一段时间对于JavaSE的学习,我们也简单的了解了一下Java的基础用法。JavaSE通常是指Java Standard Edition,Java标准版,就是一般Java程序的开发就可以(如桌面程序)。

而今天我们要学习的JavaEE、是指Java Enterprise Edition,Java企业版,多用于企业级开发,包括web开发等等。也叫J2EE。

比如说我们在SE中写GUI 是在本地安装运行的,不能通过远程访问。而在JavaEE中,则是把写好的程序部署在服务器上,用户可以通过浏览器远程访问服务器,让服务器去调用部署在服务器上的Java程序,然后Java程序去处理用户发送的请求(与数据库连接)。

servlet

web开发概述

学习web开发,需要先安装一台web服务器,将开发好的web项目 部署在web服务器中供外界访问。

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

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

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

Tomcat

在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器: Apache 的Tomcat,该服务器支持全部JSP以及Servlet规范。

 Apache软件基金会(也就是Apache Software Foundation,),是专门为 运作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织。

Tomcat的安装

● Tomcat官方站点:http://tomcat.apache.org

● 获取Tomcat安装程序包

       tar.gz文件是Linux操作系统下的安装版本

       zip文件是Windows系统下的压缩版本

●安装JDK

        设置JAVA_HOME环境变量

        设置PATH环境变量

● 安装Tomcat

         解压tomcat压缩文件

Tomcat的目录层次结构

 

创建并发web项目

1.创建java项目,添加web功能

2.发布web应用到服务器 自动将web应用发布到web服务器下,需要在开发工具中集成tomcat进来

Servlet概述

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

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

servlet的创建和使用

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

2.在web.xml文件中配置Servlet

3.运行Servlet程序 通过浏览器访问http:localhost:8080/ 项目名/配置的url

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

<servlet>元素用于注册Servlet,它包含有两个主要的子元素:
<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和
Servlet的完整类名。
一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路
径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定
Servlet的注册名称和Servlet的对外访问路径。
url-pattern配置模式:”/”代表当前web应用的根目录
精确匹配 例如/test 访问http://127.0.0.1/项目名/test
<servlet-mapping>
<servlet-name>myServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>

web.xml文件 

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

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

servlet生命周期

 

http协议

首先我们要先了解什么是http?

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

1. HTTP是一个基于TCP/IP通信协议来传递数据.

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

 http请求

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

请求包括: 请求行,请求头,请求体 .

请求行包含  http请求方式,请求资源名称,http版本 .

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

Host: 127.0.0.1:8088 请求的主机地址

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8。 浏览器能够处理的内容类型

Accept-Encoding: gzip, deflate, br 浏览器能够处理的压缩编码

Accept-Language: zh-CN,zh;q=0.9 浏览器当前设置的语言

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 使用的浏览器和操作平台信息

Connection: keep-alive 浏览器与服务器之间连接的类型

请求体代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以 键值形式传递, 多个用&链接,服务器接收到后再解析.

username=admin&userpwd=123

请求方式

GET方式:

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

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

POST方式:

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

 Get方式与post方式的区别

1. Get方式主要是从服务器获取信息;post主要是想服务器提交信息

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

3. GET方式提交的数据大小受限制一般1kb(不同浏览器也会有不同);而 POST则没有此限制。

servlet中的请求接收

请求和响应是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:服务内部错误(代码异常)

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

Server      Apache-Coyote/1.1

Content-Type       text/html;charset=UTF-8

Content-Length      0     

Date        Wed, 13 Sep 2017 02:26:07 GMT

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

servlet中请求响应

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

 HttpServletResponse对象代表响应。

用getWriter()获得一个PrintWriter字符输出流输出数据 response会默认以ISO8859-1将需要输出到浏览器的字符进行解码, 如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。

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

 

过滤器

Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过 Filter技术,对web服务器管理的所有web资源:例如Servlet, 从而实现一些 特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信 息等一些高级功能。

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

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

过滤器的应用

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

● Filter

● FilterChain

● FilterConfig

以下我们主要来讲讲Filter接口的用法。

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

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

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

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

 

FilterChain该接口类型作为Filter接口中doFilter方法的参数使用。FilterChain接 口中有一个方法。

 doFilter(ServletRequest request,ServletResponse response), 该方法可以将当前的请求和响应传递到过滤链上的下一个资源,可能 是下一个过滤器,也可能是目标资源。 

 FilterConfig该接口类型作为Filter接口中的init方法的参数使用,FilterConfig接口 中有一个常用方法。

 getInitParameter(String name),该方法用来获得过滤器的初始 化参数值。在web.xml中,可以为每一个filter配置需要的初始化参 数,与Servlet的类似。过滤器的初始化参数即可通 过FilterConfig中的getInitParameter方法获取。

 同时写完过滤器类同样也要像servlet类一样,在web.xml文件中要进行配置。

 过滤器的功能

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

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

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

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值