一、Web应用程序的工作原理
1、理解Web应用
Web应用程序是一种可以通过Web访问的应用程序;Web程序的用户只需要通过浏览器就可以使用Web应用程序。
Web应用中的浏览器和服务器的是基于HTTP协议进行通信的。
2、理解HTTP 工作原理
HTTP 协议工作于客户端-服务端架构。
浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。
Web 服务器有:Apache 服务器,IIS 服务器(Internet Information Services)等。
Web 服务器根据接收到的请求后,向客户端发送响应信息。
二、JSP原理
JSP页面是如何向客户端提供Web信息服务的呢?
JSP页面都必须在一个容器里进行执行,这个容器被称为JSP容器(JSP Container),它和下一章将提到的Web容器实际上是一个东西。JAVA EE服务器通过JSP容器将每个JSP页面进行处理执行得到最终的内容,提供给最后用户。JSP容器对JSP页面进行两个阶段的操作,它们分别是解译阶段(Translation Phase)和执行阶段(Execution Phase)。
1.解译阶段
JSP容器验证JSP页面的语法是否合法,并且将页面里的动态元素(Element,即动态的页面指令、标签行为和JAVA代码段)进行分析,改写为执行相应指令或者调用某种行为的代码,同时把静态内容模板(template,即静态的文本内容)转化为相应的输出文本代码,最终生成一个对应的JSP页面实现类。
一般的,这个类实际上是一个Servlet(在第四章将会详细说明Servlet)。
解译阶段有可能在Web用户访问之前进行,也有可能在用户首次访问JSP页面时进行,这与具体的JAVA EE服务器实现有关。如 Tomcat是访问之前进行。
2.执行阶段
当用户发出对JSP页面的请求时,JSP容器将会检查请求网址,并创建对应的JSP页面实现类的实例(在创建该实例时,JSP容器还会实例化相应的Request对象和Response对象)。
当JSP页面实现类处理完毕后,JSP容器将结果通过Response对象发送给用户,发送的结果是已经生成好的文本或二进制内容。一般是HTML页面。
JSP页面执行的原理图:

案例:JSP文件生成生成一个对应的JSP页面实现类
新建一个jsp文件,具体内容如下:
<body>
I'm so good!
</body>
可以看到该jsp文件对应生成的java和class文件,也即是类文件存储在:工作空间所在的目录中。
“工作空间所在的路径\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\“项目名”\org\apache\jsp
工作空间文件夹径:通过Eclipse菜单栏中File->Switch Workspace可查看。
视频:再JSP文件生成生成一个对应的JSP页面实现类
JSP容器还会实例化相应的Request对象和Response对象
视频:再次认识JSP-实例化相应的Request对象和Response对象
视频中的案例代码节选:
<h1>中奖了!</h1>
中了${param.score}人民币!
可以是:
<h1>中奖了!</h1>
中了<%=request.getParameter("num")%>元!

