servlet笔记

tomcat

支持jsp和servlet的web容器

  • tomcat

    ​ Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。

    ​ 由于 Tomcat 本身也内含了一个 HTTP 服务器,它也可以被视作一个单独的 Web 服务器。但是,不能将 Tomcat 和 Apache HTTP 服务器混淆,ApacheHTTP 服务器是一个用 C 语言实现的 HTTP Web 服务器;这两个 HTTPweb server 不是捆绑在一起的。Tomcat 包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

  • Resin 服务器
      Resin是Caucho公司的bai产品,是一个非常流行的支持Servlet和JSP的服务器,du速度非常快。Resin本身包含了一个支持HTML的Web服务器,这使它不仅可以显示动态内容,而且显示静态内容的能力也毫不逊色,因此许多网站都是使用Resin服务器构建。

  • JBoss服务器
      JBoss是一个种遵从JavaEE规范的、开放源代码的、纯Java的EJB服务器,对于J2EE有很好的支持。JBoss采用JML API实现软件模块的集成与管理,其核心服务又是提供EJB服务器,不包含Servlet和JSP的Web容器,不过它可以和Tomcat完美结合。
      WebSphere 服务器
      WebSphere是IBM公司的产品,可进一步细分为 WebSphere Performance Pack、Cache Manager 和WebSphere Application Server等系列,其中WebSphere Application Server 是基于Java 的应用环境,可以运行于 Sun Solaris、Windows NT 等多种操作系统平台,用于建立、部署和管理Internet和Intranet Web应用程序。

  • WebLogic 服务器
    WebLogic 是BEA公司的产品,可进一步细分为 WebLogic Server、WebLogic Enterprise 和 WebLogic Portal 等系列,其中 WebLogic Server 的功能特别强大。WebLogic 支持企业级的、多层次的和完全分布式的Web应用,并且服务器的配置简单、界面友好。对于那些正在寻求能够提供Java平台所拥有的一切应用服务器的用户来说,WebLogic是一个十分理想的选择。

HTTP与TCP

HTTP TCP
层次不同 应用层 传输层

HTTP基于TCP,面向连接,可靠

servlet

简介

(1) Servlet(Server Applet),全称Java Servlet。是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

(2) Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

(3) Servlet工作模式:

① 客户端发送请求至服务器

② 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器

③ 服务器将响应返回客户端

(4) Servlet的API:

1.javax.servlet 其中包含定义servlet和servlet容器之间契约的类和接口。

2.javax.servlet.http 其中包含定义HTTP Servlet 和Servlet容器之间的关系。

3.javax.servlet.annotation 其中包含标注servlet,Filter,Listener的标注。它还为被标注元件定义元数

据。

4.javax.servlet.descriptor,其中包含提供程序化登录Web应用程序的配置信息的类型。

get和post区别

get post
请求数据的位置 附加url之后,暴露在地址栏 请求包的包体中,不会暴露在地址栏
数据大小 HTTP规范无限制,实际对url长度有限制 理论无限制,实际有限制
安全性 较低 较高

Response接口

servlet响应:

servlet容器创建一个ServletResponse对象,传参给servlet方法,响应Servlet。

HttpServletRequest接口

servley请求:

Http环境中,扩展于javax.servlet.ServletRequest接口,并添加以下方法

String getContextPath();//****返回请求上下文的请求****URI****部分**

**Cookie[] getCookies();//****返回一个****cookie****对象数组**

**String getHeader(String var1);//****返回指定****HTTP****标题的值**

**String getMethod();//****返回生成这个请求****HTTP****的方法名称**

**String getQueryString();//****返回请求****URL****中的查询字符串**

**HttpSession getSession();//****返回与这个请求相关的会话对象**

转发和重定向

重定向:

浏览器到新的网址重新请求该资源。服务器的响应中会带着这个新资源的地址。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vo4Axs7z-1592820308320)(C:\Users\Administrator.ZTKJ-20190727TS\AppData\Roaming\Typora\typora-user-images\image-20200608214526758.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mH3QUDUY-1592820308332)(C:\Users\Administrator.ZTKJ-20190727TS\AppData\Roaming\Typora\typora-user-images\image-20200608214115431.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jdTFYdm2-1592820308341)(C:\Users\Administrator.ZTKJ-20190727TS\AppData\Roaming\Typora\typora-user-images\image-20200608214309868.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KMhGYlFo-1592820308358)(C:\Users\Administrator.ZTKJ-20190727TS\AppData\Roaming\Typora\typora-user-images\image-20200608214335059.png)]

 if (name.equals(username)&&password.equals(passWord)){            // HttpServletResponse.SC_MOVED_TEMPORARILY是302常量            response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);            response.setHeader("Location","https://www.baidu.com");        }

重定向的特点

地址栏:显示新的地址

请求次数:2次

根目录:http://localhost:8080/ 没有项目的名字

请求域中的数据会丢失,因为是2次请求

转发:

由服务端进行的页面跳转

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p3eFzAlg-1592820308372)(C:\Users\Administrator.ZTKJ-20190727TS\AppData\Roaming\Typora\typora-user-images\image-20200608214833927.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aWobeMu5-1592820308389)(C:\Users\Administrator.ZTKJ-20190727TS\AppData\Roaming\Typora\typora-user-images\image-20200608215014926.png)]

转发的特点

地址栏不发生变化,显示的是上一个页面的地址

请求次数:只有1次请求

根目录:http://localhost:8080/项目地址/,包含了项目的访问地址

请求域中数据不会丢失

转发与重定向的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rLaAaT7B-1592820308401)(C:\Users\Administrator.ZTKJ-20190727TS\AppData\Roaming\Typora\typora-user-images\image-20200608215130771.png)]

区别 转发 重定向
跳转地址 服务器内部进行 可跳转任何网址
地址栏变化 会发生变化 不会发生变化
请求次数 一次请求一次响应 两次请求两次响应
路径加工程名 不需要 需要
请求数据 不会丢失 会丢失

dao+工厂模式

工厂

找工作先去招聘网平台,找房子先找房产中介,中间媒介,解耦合,

提高程序的可维护性。

dao

dao:Data Access Object

组成:dao接口,dao实现类

据 | 不会丢失 | 会丢失 |

dao+工厂模式

工厂

找工作先去招聘网平台,找房子先找房产中介,中间媒介,解耦合,

提高程序的可维护性。

dao

dao:Data Access Object

组成:dao接口,dao实现类

你可能感兴趣的:(servlet笔记)