栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

tomcat

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tomcat

web开发简述

web(World Wide Web)即全球广域网,也称万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。

是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。

javabweb就是使用Java语言进行WEB的开发

软件架构

CS结构的软件

CS:Client/Server 客户端和服务器,这种软件往往需要安装。比如QQ、迅雷、播放器。

优点:可以减轻服务器端压力,将部分代码写到客户端;界面很美观。
缺点:一旦服务器更新了,客户端也需要更新。 分布式开发比较弱。

BS结构的软件

BS:Browser/Server 浏览器和服务器,这种软件不需要安装,只需要通过浏览器就可以访问。

优点:服务器一旦更新,不需要更新客户端,因为客户端就是浏览器;比较强的分布式能力
缺点:服务器端压力会比较大。 界面效果不如CS结构软件。

WEB服务器

帮助我们把项目发布出去,可以通过浏览器访问。

  • 硬件:其实就是一台电脑(这台电脑配置要求很高)。

  • 软件:需要在这台电脑上安装web服务器的软件。

对于java来说,这属于企业级开发。

JAVAEE 企业级开发规范。

名字企业特点
weblogicoracle大型、收费、支持所有JAVAEE开发规范
webshereIBM大型、收费、支持所有JAVAEE开发规范
tomcatapache中小型、开源免费、支持所有JAVAEE开发规范(servlet jsp)
jbossredhat中小型、开源免费、支持所有JAVAEE开发规范(EJB )
常见的WEB服务器
  • Tomcat:Apache组织提供的一个开源的免费的web服务器。满足EE的Servlet和JSP的规范。

  • WebSphere :IBM公司开发的一个收费的大型web服务器。满足了EE开发的所有规范。

  • WebLogic:BEA公司开发的一个收费的大型web服务器。满足了EE开发的所有规范。

  • Apache :应用在PHP平台上。

Tomcat

Tomcat是一个轻量级web的服务器,用来发布web项目。

Tomcat目录结构

webapps目录结构

tomcat内存溢出解决办法

tomcat是目前应用十分广泛的一个Java servlet container与web服务器,但java.lang.OutOfMemoryError与java.lang.OutOfMemoryError: PermGen space的异常相信真正用过tomcat的人都遇到过(用户量大,应用使用频繁等),这个异常和JVM默认划分的内存上限是128M有关,如果你的业务足够繁忙,128M是远远不够的,所以你可以给JVM分配上1G甚至更多,这样就可以避免内存溢出。

linux下分配方法
编辑tomcat的catalina.sh文件,在第一行的后面增加一句:
JAVA_OPTS=‘-server -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=256M’

注意:单引号不能少,-server表示以server模式运行(运行效率比默认的client高很多,自己云去测试),

  • -Xms256m是最小内存,
  • -Xmx512m是最大内存,其中的256与512可根据你自己的内存做相应调整,
  • PermSize/MaxPermSize最小/最大堆大小.一般报内存不足时,都是说这个太小,堆空间剩余小于5%就会警告,建议把这个稍微设大一点,不过要视自己机器内存大小来设置,我自己的文件如下:
    #!/bin/sh JAVA_OPTS='-server -Xms1024m -Xmx1024m XX:PermSize=128M -XX:MaxPermSize=256M'
为什么使用tomcat做服务器,而不是nginx?
  • 从应用方面

tomcat,一般是做动态解析才会用得到,支持jsp的解析,需要配置JDK支持;

nginx,则一般是做静态,本身不具备动态解析功能,需要配置其他插件或通过其他软件协同才具备动态功能,但nginx在静态上的功能非常强大,也可做访问控制,而且可以做成各种协议负载服务器,包括流媒体的也可以做,具体得去官方网站去看;

  • 在性能方面

tomcat一般支持并发并不高100个差不多了
nginx在静态方面支持并发轻松达几万

  • 总结:
    两者应用领域不一样:tomcat是做java语言的动态解,而nginx则是一款功能强大的负载软件,配合各种插件可以实现各种功能.
servlet

Tomcat 是Web应用服务器,是一个Servlet/JSP容器. Tomcat 作为Servlet容器,负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件。

servlet入门小程序


    
    
        
        helloServlet
        
        com.itlx.servlet.HelloServlet
    
    
    
    
        helloServlet
        /hello
    

package com.itlx.servlet;

import javax.servlet.*;
import java.io.IOException;

// Servlet需要引入tomcat lib目录下的jar包
public class HelloServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

        servletResponse.getWriter().write("hello servlet");
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

servlet执行流程

部分知识引用自:
https://www.cnblogs.com/xiaoquan-blog/p/12611851.html
https://blog.csdn.net/liangmengbk/article/details/99177782
https://www.jianshu.com/p/d8bd75c0fb1b
https://www.jianshu.com/p/332361db0dd7
https://www.jianshu.com/p/959e73761654?utm_campaign

只要有了活下去的理由,几乎什么都能够忍受。

尼采

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/854601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号