javaWeb-tomcat、servlet

问题导入:

  tomcat的作用是什么?

  servlet的作用是什么?

  tomcat和servlet的关联?

  tomcat的性能调优?

  tomcat和nginx的配合使用?

  tomcat和serlvet的配合使用?

  在windows中的tomcat和linux中使用tomcat的区别是什么?

  

  tomcat的配置文件:

    context.xml

    web.xml

      

 

    server.xml(经常要配置):配置整个服务器信息,例如修改端口号

  部署项目需要放到webapp目录下

    root目录:localhost:8080

  work

    把动态网页网页做一个编译生成.class文件放在目录下

   log目录:

    目录是日志文件。记录了tomcat启动和关闭的信息(一些请求信息),如果启动tomcat时有错误,那么异常也会记录在日志文件的

 

javaWeb:

  C/S(client/server):

    本地安装客户端,客户端会不断的更新,如qq软件

 

  B/S(browser/server):基于浏览器,可以把浏览器看作客户端,不需要更新客户端

  静态网页和动态网页

    动态网页中包含变量,数据的变化就不是问题了,但动态网页只能在服务端使用,客户端浏览器只能识别静态网页,所以,如果用户请求的是动态网页,那么就需要服务器先把动态网页转换成静态网页发送给客户端浏览器

 

tomcat的作用: https://blog.csdn.net/canshou/article/details/79234071   

  tomcat是servlet容器,它可以帮我们对接http请求(做些通用处理),然后将请求转发到我们的servlet处理器进行处理,我们只需要把自己的业务处理放在servlet的service方法即可,不需要关注其他多余的事情。

 

   https://www.cnblogs.com/pzyin/p/8555215.html

首先,tomcat是开源的,基于java语言开发的,部署web项目的容器。

普通的html,浏览器可以直接搞定,可以不需要tomcat等部署,但是如servlet这些,浏览器没法直接将里面的内容解析出来吧。这些就需要一个工具进行处理数据,以让浏览器能够在访问主机的时候,将这些信息正确的识别出来。

可以帮我们对接http请求(做些通用处理),然后将请求转发到我们的servlet处理器进行处理,我们只需要把自己的业务处理放在servlet的service方法即可,不需要关注其他多余的事情。

 

具体处理的方法:

1.首先要使用http访问到你的web应用你服务器需要开一个端口来监听请求吧?
2.既然使用的是http协议,那么需要解析来自网络的http请求吧?
3.解析了之后要访问到对应的应用系统吧?
4.系统处理了请求之后返回的结果集你需要返回给用户让用户能在浏览器中展示吧?

中间件就是帮你完成了这些事情而已:开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。

tomcat和serlvet的区别:

  Java Servlet技术以及衍生的Java Server Pages技术可以让Java程序也具有处理HTTP请求并且返回内容(由程序动态控制)的能力,Tomcat正是支持运行Servlet/JSP应用程序的容器(Container)

  

  Tomcat运行在JVM之上,它和HTTP服务器一样,绑定IP地址并监听TCP端口,同时还包含以下指责:

    管理Servlet程序的生命周期

    将URL映射到指定的Servlet进行处理

    与Servlet程序合作处理HTTP请求——根据HTTP请求生成HttpServletResponse对象并传递给Servlet进行处理,将Servlet中的HttpServletResponse对象生成的内容返回给浏览器

 
Serlvet的作用( https://www.cnblogs.com/liaoyanglong/p/6155069.html ):
  

    在BS架构中,早期的Web服务器只能处理静态资源的请求,也就是无法根据请求进行计算后再生成相应的HTML内容。为了补充Web服务器的这个缺陷,于是增强服务器功能的CGI技术最早产生了。CGI(Common Gateway Interface通用网关接口)也是一种规               范,可以使用不同的语言来开发,如Perl,C,Java等都可以。当客户端请求静态资源时,Web服务器会自己处理并返回,当客户端请求动态资源时,Web服务器会把请求转交给扩展程序来处理,并将扩展程序的处理结果返回给客户端。但是CGI技术开发复杂,               性能较差,只要有一个请求到达,Web服务器就会单独分配一个进程来进行处理,可移植性不好,所以慢慢就由后来的Servlet技术所取代。

  Servlet技术是使用Java语言开发的一套组件规范,不再像CGI技术那样需要分配单独的进程来处理请求,而是单独分配一个线程来处理,于是大大提升了处理效率。并且Java语言是跨平台的语言,也提升了Web服务器扩展程序的可移植性,已经取代了CGI技术,成          为BS架构中的主流技术。所有后续的BS架构中的主流框架本质上都是基于Servlet来实现的。

  

  

  初始化阶段:

    1,Servlet容器(如tomcat)加载servlet类,把servlet类的.class文件中的数据读到内存中。

    2,然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。

    3,Servlet容器创建一个servlet对象。

    4,Servlet容器调用servlet对象的init方法进行初始化。

  

 

  运行阶段:

    当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。

    然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的

    信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和

s    ervletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。


tomcat和nginx配合使用:
  
  • 动静态资源分离——运用Nginx的反向代理功能分发请求:所有动态资源的请求交给Tomcat,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器,这样能大大减轻Tomcat的压力。
  • 负载均衡,当业务压力增大时,可能一个Tomcat的实例不足以处理,那么这时可以启动多个Tomcat实例进行水平扩展,而Nginx的负载均衡功能可以把请求通过算法分发到各个不同的实例进行处理
 

 

posted @ 2018-07-17 17:47  一只发霉的猪  阅读(64)  评论(0)    收藏  举报