tomcat,apache
来源:互联网 发布:交易猫软件下载 编辑:程序博客网 时间:2024/05/28 01:35
PHP:
我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的;
PHP通过mod_php5.so模块和Apache相连(具体说来是SAPI,即服务器应用程序编程接口);
1 用户在Web浏览器(客户端)中键入网址以访问网站。此连接还含有HTML表单的HTML页面。
2 浏览器连接到Apache服务器上,服务器中存放有组成该网站的HTML和PHP文件。Apache为客户端的请求提供服务(通过遵守其配置文件中的规则来查找相关的页面并发送回去)并发给客户端仅含有HTML表单的网页。
3 用户在Web服务器填写表单并提交表单给服务器。
4 Apache服务器收到提交的表单后,加载相关的文件来处理表单中提交的内容。文件中含有用语链接到数据库的PHP代码。PHP代码由Apache传给PHP解释程序(interpreter) 并由解释程序加以运行。PHP连接到MySQL数据库(可能位于同一台计算机计算机上,也可以位于其他的计算机上,都一样)上。连上MySQL数据库之后,使用SQL对信息进行查询。SQL是为了与数据库进行通信而专门设计的一种语言。
5 MySQL数据库接受SQL请求并查找信息。找到信息后,将结果发回给提出请求的PHP脚本。
6 PHP脚本从MySQL数据库接收结果并用收到的结果构造HTML页面,然后讲页面发送回Web浏览器客户端。
7 Web浏览器接收查询的HTML结果并将其显示给用户。
Tomcat:
项目放在webapps目录下,启动tomcat时,加载该目录下的项目,首先找到web.xml文件,加载其中定义的Filter,Listenner等,如果是springboot开发的项目,web.xml为空,找到main方法,继续执行,加载其中的东西。一个请求过来后,判断是哪个应用,再继续解析处理,最后返回。
找到tomcat,lib目录先的jsper.jar,其中有一个Service方法:1.该方法将JSP文件变成HttpJspBase的子类。2.子类重写_jspService()方法。为什么会加一个"_",其它的方法有jspInit(),jspDestory().3.一个页面就对应一个Servlet。看到是HTTP代码就是加上out.println(),如果是<%%>就原封不动的放到Java代码中,其他若干功能,比如调用组件库等等。其实这个过程比较复杂。
Tomcat的访问分为两种:1.动态访问,.jsp是动态访问。2.静态访问,直接将请求的内容通过HTTP返回。
jsp文件解析成class文件过程需要利用tomcat的jasper组件。
Jasper是tomcat中使用的JSP引擎,在Tomcat 6中使用的是Jasper 2,相对于原来的版本作了不少的改进,比如:JSP的标签缓冲池、后台编译、页面改变时自动重新编译、Eclipse中JDT编译等等。
简单的说,就是把JVM不认识的JSP文件解析成java文件,然后编译成class文件提供使用。目前有很多的JSP解析引擎,Tomcat中使用的是Jasper。
在Tomcat中可以通过配置 CATALINA_HOME/conf/web.xml 中的内容,配置Jasper的选项(web.xml中的内容很长,截取其中的一部分):
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
- Apache Tomcat、Tomcat、Apache
- apache+tomcat
- Apache+Tomcat
- Apache Tomcat
- apache tomcat
- apache+tomcat
- apache tomcat
- tomcat+apache
- apache tomcat
- apache+tomcat
- Apache & Tomcat
- apache + tomcat
- Apache+tomcat
- apache+tomcat
- apache tomcat
- Apache+Tomcat
- apache-tomcat
- Tomcat Apache
- nginx配置
- JQuery学习随笔
- Eclipse设置、调优、使用
- Go的50度灰:Golang新开发者要注意的陷阱和常见错误
- mtk hal层smoothzoom(缩放)分析
- tomcat,apache
- Android Glide图片加载框架图片变色变绿解决方法
- Android databinding详解(一)--layout解析
- 图文混排
- select下拉框内容文本过长悬浮显示两种方法
- MySQL 导入数据
- 单例模式
- linux命令随笔(2)
- Python实现KNN算法手写识别数字