jsp是什么以及jsp运行原理
一.JSP的简单介绍
1. JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
1.1 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
1.2 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
1.3JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
1.4 JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。 JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。JSP可用一种简单易懂的等式表示为:HTML+Java+JSP标记=JSP。
jsp文件的搭建
右击→New→Dynamic Web Project→填写Filename→Next→Next→勾选Generate web.xml deployment desciptor 最后点击Finish即可
在webContent目录(或者子目录)下创建JSP文件。右击→JSP File→填写Filename→Naxt→选中New JSP File(html5)→点击Finish,即可完成创建。
其中<%@ page language=“java” contentType=“text/html; charset=UTF-8” pageEncoding=“UTF-8”%>是jsp指令,如果创建出来的文件中不是UTF-8,那么需要手动的变更UTF-8,否则传递中文是可能会出现乱码。
如果想要每次创建jsp文件时,默认的编码格式UTF-8,需要进行设置,Window→Preferences→Web→JSP File→Encoding→选择UTF-8→Apply And Close
在JSP中填写信息
访问JSP文件
首先启动Tomcat
如上图所展示的启动Tomcat成功 然后在浏览器上面搜索http://localhost:8088/jsp-1.0/index.jsp
jsp运行原理
1、运行原理
当第一次访问jsp页面时,会向一个servlet容器(tomcat等)发出请求,servlet容器先要把 jsp页面转化为servlet代码(.java),再编译成.class 文件 再进行调用。当再次访问jsp页面时 跳过翻译和编译的过程 直接调用。
2、JSP的运行原理
1.用户发送http请求到web服务器(tomcat)
2.web服务器根据请求的Url找到对应的jsp文件
3.将找到的jsp文件转译成.java文件
4.将.java文件编程成.class字节码文件
5.执行.class字节码文件,根据客户端动态请求的生成相应HTML文件 并使用response将HTML文件发送给浏览器.
6.浏览器解析发送HTML文件,将效果展示在浏览器页面
3.jsp页面元素:
1.静态的内容:有html代码,js代码,css样式
2.Jsp注释:<%–客户端不可见注释–%>这种注释是用于开发人员内部,关于代码用途,逻辑等的注释 < !-- 用户端可见注释 --> 脚本注释://单行注释;/**/多行注释
3.指令: 以<%@开始,以%>结尾 jsp的指令注意有3种:page,include,taglib
(1).page指令:一般书写在jsp页面顶端,同一个页面可以有多个paeg指令
(2).include指令:通常就是将一个外部的jsp文件嵌入到当前的jsp文件中,同时解析这个页面中的jsp语句。
(3).tagilb指令:使用标签库定义新的自定义标签,在jsp页面中用户定制行为
4.表达式:在jsp页面执行的表达式,可以用来调用声明的变量和方法
注意:表达式中的内容默认打印到页面,表达式中不可以加;分号
6.声明:在jsp页面中定义的变量或方法(函数)格式:<%!变量或方法%>
jsp静态导入和动态导入的区别
静态导入代码:<%@ include file=“xxx.jsp”%>
动态导入代码:<jsp:include page=“xxx.jsp” />
1.静态导入是将被导入页面的代码完全融入,两个页面融合成一个整体Servlet;而动态导入则在Servlet中使用include方法来引入被导入页面的内容。
2.静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。
3.动态包含还可以增加额外的参数。