SP与Servlet什么关系?JSP和ASP什么关系?下面我们一一来探讨。
 
第一个.jsp文件:
<html>
    <head>
           <title>HelloWorldJSP~</title>
    </head>
    <body>
           <%
                  out.println("HelloWorld");
           %>
    </body>

</html>

其实就是当你通过http请求一个JSP页面是,首先Tomcat会将JSP编译成为Servlet,然后执行Servlet.

详细说说这个运行过程:

1,             首先web客户端发送URL请求给Tomcat。服务器获得请求,对请求字符串分析,如果后缀名是.jsp文件的,则Tomcat把调用JspServlet处理。JspServlet是

2,             如果JSP文件第一次被调用,则会把jsp编译成servlet(编译后的servlet文件在tomcat下的work文件夹中,就是那个存放类似于缓存的文件夹),如果jsp不是第一次调用则不会被编译。Jsp文件在没有修改的情况下,只会编译一次。

3,             Tomcat调用service()方法编译jsp文件,创建一个.Java和.class文件。该java文件继承自父类HttpJspBase类。

4,             创建HttpServletRequest类和HttpServletResponse类
5,             调用.java继承父类的HttpJspBase类方法service(request,response)
6,             在service方法里面调用jspService(request,reponse)方法,渲染html返回给客户端。

由此可见,什么是渲染?就是把tomcat把jsp编译成servlet,而servlet会将以HTML格式返回给浏览器,这就是渲染。可以简单理解为:浏览器可以直接运行html文件(双击打开一个html文件,就可以在浏览器中运行),而不能直接运行jsp文件(双击打开一个jsp文件,它是不可以再浏览器中运行的。而如果某个jsp如index.jsp在某个工程如test中的WebContent路径下(不能放在WEB-INF中,因为WEB-INF下的文件是不允许直接访问的),而把test工程在tomcat服务器中运行,那么输入http://127.0.0.1:8080/tes/index.jsp就可以运行,并显示jsp页面的内容了),所以需要通过tomcat服务器将jsp转换成HTML格式,然后再返回给浏览器进行显示。所以渲染工作时tomcat服务器做的。

jsp渲染的更多相关文章

  1. 对ajax和jsp渲染的一些感想

    一个多月来,也算是做了两个javaweb的项目,但是对于用哪种方式渲染页面一直有些抉择不定,第一个项目用的ajax,发现各种对htmlDom节点的操作十分的繁琐,需要找到数据填充的节点并添加id值,引 ...

  2. SpringBoot使用JSP渲染页面

    1.pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  3. 使用JSP渲染Web视图

    Pom文件引入以下依赖 注意,创建SpringBoot整合JSP,一定要为war类型,否则会找不到页面 不要把jsp页面存放在Resources目录下,resources目录是给springboot打 ...

  4. jsp 增删改查

    使用Idea创建项目 1.新建web application项目 Idea 选择 Java Enterprise -> web application 2.新版本没有web-inf文件夹 解决方 ...

  5. 深入分析Java Web技术内幕(修订版)

    阿里巴巴集团技术丛书 深入分析Java Web技术内幕(修订版)(阿里巴巴集团技术丛书.技术大牛范禹.玉伯.毕玄联合力荐!大型互联网公司开发应用实践!) 许令波 著   ISBN 978-7-121- ...

  6. SpringMVC 初始化网站静态信息

    在网站开发中,一些元素经常被访问,例如 网页头部URL导航 的信息,以及Boot版权的信息,在各个页面都是重复出现的 如果每次渲染View都要通过Service层访问数据库 比较麻烦 也没有必要,但是 ...

  7. Beetl2.2使用说明书20151201

    李家智<xiandafu@126.com> Table of Contents 1. 什么是Beetl 2. 基本用法 2.1. 从GroupTemplate开始 2.2. 模板基础配置 ...

  8. 读阿里巴巴Java开发手册v1.2.0之工程结构有感【架构篇】

    首先,把昨天那俩条sql语句的优化原因给大家补充一下,第一条效率极低,第二条优化后的,sql语句截图如下: 经过几个高手的评论和个人的分析: 第一条sql语句查询很慢是因为它首先使用了in关键字查询, ...

  9. 自己动手实现mvc框架

    用过springmvc的可能都知道,要集成springmvc需要在web.xml中加入一个跟随web容器启动的DispatcherServlet,然后由该servlet初始化一些东西,然后所有的web ...

随机推荐

  1. oracle12c中新能优化新特性之热度图和自动数据优化

    1. Oracle12c热度图和自动数据优化 信息生命周期管理(ILM)是指在数据生命周期内管理它们的策略.依赖于数据的年龄和对应用的业务相关性,数据能被压缩,能被归档或移到低成本的存储上.简言之,I ...

  2. 关于const的一些注意事项

    1.const对象必须初始化,一旦创建其值就无法更改 2.默认情况下,const对象仅在文件内有效,若想在多个文件中使用同一个const对象,就是不在每个文件独立的定义一个const对象,可以进行如下 ...

  3. 1.2 C++命名空间(namespace)

    参考:http://www.weixueyuan.net/view/6326.html 总结: C++语言引入命名空间(Namespace)这一概念主要是为了避免命名冲突,其关键字为 namespac ...

  4. 线程局部存储TLS

    1 .使用线程局部存储的理由 当我们希望这个进程的全局变量变为线程私有时,而不是所有线程共享的,也就是每个线程拥有一份副本时,这时候就可以用到线程局部存储(TLS,Thread Local Stora ...

  5. 玩转X-CTR100 l STM32F4 l 基础例程printf、LED、蜂鸣器、拨码开关、位带操作

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器基础板载资源 ...

  6. path--diff

    vdom--patch(一)我们讲了,整个Vue对象初始化并渲染到页面中的过程. 本篇文章我们主要来谈谈当页面绑定的数据修改后,是如何更新dom结构的, 即vdom的diff算法,网上讲解这部分内容的 ...

  7. SWIFT中用Switch case 类类型

    有时觉得SWIFT的语法真的强大而又变态,不说了,直接上代码瞅瞅: 首先先定义一个交通工具的父类 class Vehicle{ var wheels:Int! var speed:Double! in ...

  8. Xcode清理垃圾

    摘抄自https://blog.csdn.net/hu434587115/article/details/54602449 ~/Library/Developer/Xcode/DerivedData/ ...

  9. lintcode 刷题 by python 总结(1)

    博主之前在学习 python 的数据结构与算法的基础知识,用的是<problem-solving-with-algorithms-and-data-structure-using-python& ...

  10. makefile for opencv

    makefile #################################################### # Generic makefile - 万能Makefile # for ...