jsp渲染
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渲染的更多相关文章
- 对ajax和jsp渲染的一些感想
一个多月来,也算是做了两个javaweb的项目,但是对于用哪种方式渲染页面一直有些抉择不定,第一个项目用的ajax,发现各种对htmlDom节点的操作十分的繁琐,需要找到数据填充的节点并添加id值,引 ...
- SpringBoot使用JSP渲染页面
1.pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- 使用JSP渲染Web视图
Pom文件引入以下依赖 注意,创建SpringBoot整合JSP,一定要为war类型,否则会找不到页面 不要把jsp页面存放在Resources目录下,resources目录是给springboot打 ...
- jsp 增删改查
使用Idea创建项目 1.新建web application项目 Idea 选择 Java Enterprise -> web application 2.新版本没有web-inf文件夹 解决方 ...
- 深入分析Java Web技术内幕(修订版)
阿里巴巴集团技术丛书 深入分析Java Web技术内幕(修订版)(阿里巴巴集团技术丛书.技术大牛范禹.玉伯.毕玄联合力荐!大型互联网公司开发应用实践!) 许令波 著 ISBN 978-7-121- ...
- SpringMVC 初始化网站静态信息
在网站开发中,一些元素经常被访问,例如 网页头部URL导航 的信息,以及Boot版权的信息,在各个页面都是重复出现的 如果每次渲染View都要通过Service层访问数据库 比较麻烦 也没有必要,但是 ...
- Beetl2.2使用说明书20151201
李家智<xiandafu@126.com> Table of Contents 1. 什么是Beetl 2. 基本用法 2.1. 从GroupTemplate开始 2.2. 模板基础配置 ...
- 读阿里巴巴Java开发手册v1.2.0之工程结构有感【架构篇】
首先,把昨天那俩条sql语句的优化原因给大家补充一下,第一条效率极低,第二条优化后的,sql语句截图如下: 经过几个高手的评论和个人的分析: 第一条sql语句查询很慢是因为它首先使用了in关键字查询, ...
- 自己动手实现mvc框架
用过springmvc的可能都知道,要集成springmvc需要在web.xml中加入一个跟随web容器启动的DispatcherServlet,然后由该servlet初始化一些东西,然后所有的web ...
随机推荐
- OC MRC之set方法内存管理(代码分析)
// // main.m // 03-set方法的内存管理 // // Created by apple on 13-8-9. // Copyright (c) 2013年 itcast. All r ...
- oracle12c新特点之可插拔数据库(Pluggable Database,PDB)
1. 12c PDB新特点的优势 1) 可以把多个PDB集成进一个平台. 2) 可以快速提供一个新的PDB或一个已有PDB的克隆. 3) 通过拔插技术,可以快速把存在的数据库重 ...
- 51nod算法马拉松28-c
题解: 按照每一个要求,分类讨论,讨论压下去了多少 代码: #include<bits/stdc++.h> using namespace std; ,N=; int n,A,B,C,an ...
- netstat 问题处理
MySQL SQL Writing to net Creating sort index StatisticsPreparing
- ehlib 安装
EhLibProjGroup110.groupproj,依次编译所有的包,再安装所有的dcl设计时包. == EhLib 7.0.133 Full Source 使用安装器EhLibInstaller ...
- EXCEL FAQ
1.win7双击打开EXCEL07时显示停止工作,但是在打开方式中可以打开,怎么破? 加载项的问题,在选项-信任中心-信任中心设置-加载项-禁用所有应用程序加载项即可,但是这样会丧失一些功能,也可以把 ...
- IOS多线程编程:概述
什么是多线程 多线程是一个比较轻量级的方法来实现单个应用程序内多个代码执行路径.从技术角度来看,一个线程就是一个需要管理执行代码的内核级和应用级数据结构组合.内核级结构协助调度线程事件,并抢占式调度一 ...
- php file文件操作函数
filemtime() 函数: filemtime() 函数返回文件内容上次的修改时间. 若成功,则时间以 Unix 时间戳的方式返回.若失败,则返回 false. <?php echo fil ...
- 【计算机视觉】交并比IOU概念理解
前言 交并比IOU(Intersection over Union)是一种测量在特定数据集中检测相应物体准确度的一个标准. 图示 很简单,IoU相当于两个区域重叠的部分除以两个区域的集合部分得出的结果 ...
- 查看linux安装包的版本信息-TX2
前言 新到手一块TX2板子,想要检查系统是否安装某软件及其版本. 操作命令 Cuda8.:nvcc --version Opencv:pkg-config --modversion opencv G+ ...