有关于服务器的一些问题及思考
话说搞清楚JDK、JRE、javac和JVM的关系之后,我突然感觉好像是恢复了一些大二时候的记忆。233333,遥想当年第一次上java课的时候,用命令提示符先把.java编译成.class,然后在运行.class,查看程序运行情况。
搞清楚四者的关系之后,感觉强迫症得到了缓解,心情舒畅了很多。其实搞清楚四者的关系跟JavaSE有关,和JavaEE关系不大,那么下面来说下跟JavaEE有关的东西——为什么要装Tomcat。
Tomcat,它是使用Java进行Web开发的应用服务器(Application Server)软件,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache(web服务器)服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行Tomcat 时,它实际上作为一个与Apache独立的进程单独运行的。
服务器与浏览器的沟通是通过特定的格式进行的,这个格式被称作HTTP协议,HTTP协议有很多内容需要处理,如果所有这些都由开发者来做,未免负担过重。所以,很多年以前就有人开发出了专门的应用程序服务器软件,专门负责处理HTTP协议中的细节部分,而把真正需要的处理发送给专门的程序,也就是Web开发的程序。
当有请求时,Tomcat会自动将JSP里面的java程序部分提取出来,调用JDK将java程序编译成class,然后再执行这个class。你可以到Tomcat的work目录下看看,你可以找到从jsp里面提取出来的java程序,***_jsp.java,也有编译后的class文件, ***_jsp.class。 所以,如果不装JDK,jsp程序就无法编译。
以Java为例:
所有的Java程序启动入口都是public static void main(String[] args)函数。Tomcat里面就有这么一个函数,运行这个函数后,Tomcat里面会进行各种处理——打开网络端口进行监听、加载HTTP解析模块,称作服务器启动了。
1、Tomcat为网站的服务器,每个网站在后面都有一个服务器来解释哪个网页,因为网页本身多数是动态计算的,就是跟一些编程语言有关系,不关于一些固定的文本内容,多数情况下文本内容是根据你填写的参数计算出来的,这是关于计算这部分。
2、Tomcat 对于 Java 来说它就是一个 Servlet 处理器,支持运行基于 Servlet 的 Java 程序,同时 JSP 本身也是基于 Servlet 的技术,也是支持的,像传说中的 Spring,Struts,JSF 都是基于 Servlet 的,都可以在 Tomcat 上跑起来。
3、另外作为一个 J2EE 中的 Web 服务器,它也需要处理像事务,资源管理,角色认证与授权这些 J2EE 规范中要求达到的标准。
4、像处理客户端请求的网络连接,并发负载分派到不同的服务器这些网络服务器的基本功能也是这些像 Tomcat 一样的服务器需要处理的。
开发一个网站程序时就需要用到类似 Tomcat 的服务器,把写的JSP网站程序打包成一个war文件(其实就是一个zip格式)放到服务器上指定的位置就可以跑了。 当然还有很多种服务器可以用,比如 WebSphere, Weblogic, Resin, Jetty, 等,这前面两个是完整的 J2EE 服务器,除了支持 Web 之外还支持 EJB,但 Resin, Jetty, Tomcat 就只支持 Web 这块。
Sanding原创,转载请标注,thank you~