首页 > Web开发 > 详细

JSP入门

时间:2021-06-01 16:52:40      阅读:21      评论:0      收藏:0      [点我收藏+]

简述

  jsp是java server page的缩写,即java服务器端页面,可以理解为一个特殊的页面。JSP页面是由HTML语句和嵌套在其中的Java代码组成的一个普通文本文件。其中既可以直接定义html的标签,也可以定义java代码。一句很精髓的话:servlet就是在java里写html代码,jsp就是在html里写java代码。

  在JSP页面中编写的Java代码需要嵌套在<%和%>中,嵌套在<%和%>之间的Java代码被称之为脚本片段(Scriptlets),没有嵌套在<%和%>之间的内容被称之为JSP的模版元素。

应用场景

  如果一个页面既有动态资源,又有静态资源,那么如果用servlet来干的话,就必须从response获得输出流输出动静资源到页面,光从代码上就非常的复杂,你写标签还要放在函数里面,没有代码提示还得自己缩进对齐。

技术分享图片

 jsp的原理

  我们可以把jsp理解为一种特殊的servlet类形式,客户端请求服务器,服务器解析请求消息,则会找到对应的jsp资源,然后服务器就会把jsp文件转换为.java类文件,然后编译.java变为.class字节码文件提供servlet服务。其中的转换是由tomcat来做的。

技术分享图片

 

  我们通过查看被转化的jsp页面,即xxx.java文件,可以看到被自动转换的jsp变成了一个java类,它继承HttpJspBase,然后我们查看HttpJspBase的源码,发现它继承HttpServlet,所以逻辑很清晰了,jsp本质上就是一个servlet

技术分享图片

  我们也从HttpJspBase类中找到了service方法:

技术分享图片

   转换的过程很好理解,就是把html的页面代码放到response输出流的write方法里,然后被<%%>括住的原封不动。

jsp脚本

  jsp提供了三种的脚本定义方式:

<%  代码 %> 定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么.
<%! 代码 %> 定义的java代码,在jsp转换后的java类的成员位置。
<%= 代码 %> 定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。

jsp的内置对象

  内置对象就是在jsp的页面中,不需要创建和获取,可以直接使用的对象。

  一共有9个内置对象。

  首先是<%%>脚本里的代码会放到service方法里,所有request对象和response对象可以直接用。

  一个字符输出流对象out,和response的getWriter类似,out对象可以直接用于输出页面(使用print方法)。

  需要注意的是,tomcat服务器真正地给客户端做出响应之前,会现在response缓冲区拿数据,再到out缓冲区拿数据,所以response的输出永远比out的快。

  所以我们一般用out输出,不混用response。

JSP入门

原文:https://www.cnblogs.com/qq2210446939/p/14835813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!