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,面向连接,可靠
(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 | |
---|---|---|
请求数据的位置 | 附加url之后,暴露在地址栏 | 请求包的包体中,不会暴露在地址栏 |
数据大小 | HTTP规范无限制,实际对url长度有限制 | 理论无限制,实际有限制 |
安全性 | 较低 | 较高 |
servlet响应:
servlet容器创建一个ServletResponse对象,传参给servlet方法,响应Servlet。
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:Data Access Object
组成:dao接口,dao实现类
据 | 不会丢失 | 会丢失 |
找工作先去招聘网平台,找房子先找房产中介,中间媒介,解耦合,
提高程序的可维护性。
dao:Data Access Object
组成:dao接口,dao实现类