JSP执行步骤

完整步骤:

第一步:用户通过浏览器发出一个Http请求;

第二步:web服务器识别是对jsp页面的请求;

第三步:jsp容器通过jsp引擎将jsp页面转化为servlet代码(纯java代码);

第四步:servlet容器通过servlet引擎加载servlet类,常驻内存,并以html的形式做出response返回给web容器。

第五步:web服务器将Http Response返回给客户端浏览器,这个response实质上是jsp在服务器端动态产生的在客户端静态显示的html文件。

JSP生命周期

public void jspInit(){
// Initialization code...
}
void _jspService(HttpServletRequest request,
HttpServletResponse response)
{
// Service handling code...
}
public void jspDestroy()
{
// Your cleanup code goes here.
}

JSP语法

JSP脚本

//java代码
<% out.println("hello world");%>
//jsp变量或者方法声明
<%!int i=0;int a,b,c;%>
//赋值
<%=(new java.util.Date()).toLocaleString() %>

JSP注释

<%--  --%>  //服务器端注释,客户端不可见,jsp引擎不转化
<!-- --> //客户端可见注释

JSP动作

<jsp:include page="" />

以下是对 include 两种用法的区别 , 主要有两个方面的不同 ;

一 : 执行时间上 :

<%@ include file="relativeURI"%> 是在翻译阶段执行

<jsp:include page="relativeURI" flush="true" /> 在请求处理阶段执行 .

二 : 引入内容的不同 :

<%@ include file="relativeURI"%>

引入静态文本 (html,jsp), 在 JSP 页面被转化成 servlet 之前和它融和到一起 .因此两个页面不允许有相同的变量

<jsp:include page="relativeURI" flush="true" /> 引入执行页面或 servlet 所生成的应答文本

<jsp:useBean id="name" class="package.class" scope="application/page/request"/>

<jsp:useBean>指令用于在scope内定位或实例化JavaBeans组件

<jsp:setProperty name="name" property="" value=""或者param=""/>

通过上述指令加载一个类后,就可以通过<jsp:setProperty>设置属性,如果property="*",那么传递的参数会和所有的property进行匹配赋值。

<jsp:getProperty name="name" property="" />

获得某个javabean组件的属性值,并且直接输出在html流中。

<jsp:forward page="" ><jsp:param name="" value=""></jsp:forward>

forward指令就相当于请求转发,可以跳转到静态或者是动态的页面。forward指令可以包含param标签,在页面跳转时有额外的参数请求。

JSP指令

//定义页面作用域的属性,例如:脚本语言,编码方式,异常处理
<%@ page...%>
//加载该jsp文件的时候,包含其他静态的jsp文件
<%@ include ...%>
//
<%@ taglib...%>

 JSP内置对象

request :用户请求后JSP引擎创建一个请求实例

response :通过response可以添加cookie

out: 输出流对象,out.flush()可以清空缓冲区

session:客户端建立连接后就建立一个会话

application:ServletContext的一个实例,application对于web服务器下某一个web应用中的所有servlet共享

config,pageContext,page ,exception,

jsp小结的更多相关文章

  1. Java EE - JSP 小结

    Table of Contents 前言 JSP 与 Servlet JSP 初始化参数 脚本元素 page 指令 禁用脚本元素 EL 表达式 EL 函数 taglib 指令 标记 TLD 文件的位置 ...

  2. java学习笔记-JavaWeb篇一

    JavaWEB篇一 1 Tomcat的安装和配置 2 JavaWeb开发的目录结构 3 使用Eclipse开发JavaWeb项目 4 第一个Servlet程序 5 Servlet 的配置及生命周期方法 ...

  3. struts2 动态Action

    1.java 2.struts.xml struts2.5,默认关闭动态Action,着色的是开启和使用动态action 3.JSP 小结:访问时,用!后跟方法名的方法,方法返回值----->r ...

  4. nginx中 location正则的理解

    文章转载自:https://blog.csdn.net/wzj_110/article/details/110142902 正则表达式在线测试工具:https://tool.lu/regex loca ...

  5. JSP基本语法小结

    jsp表达式:<%=???%> 在jsp页面嵌入java代码<%Java代码%>可以用多个<% %>分割代码段 jsp声明:<%!用这样的方法可以声明java ...

  6. JSP中文乱码问题解决方法小结

    在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱 码问题以及解决方法. 1.JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要 ...

  7. jsp base标签与meta标签学习小结

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...

  8. js、JSP、servlet之间的传递小结

    @ JS 与 JSP :JSP无法直接获取JS的值,只能通过隐藏表单或者dom节点设置. JSP中设置隐藏表单input,或者设置任意一个隐藏或者不隐藏的节点比如div, 而JS就通过document ...

  9. jsp请求转发与重定向区别小结

    1.当使用转发时,JSP容器将使用一个内部方法来调用目标页面,新的页面继续处理同一个请求,而浏览器不会知道这个过程; 2.重定向是第一个页面通知浏览器发送一个新的页面请求. 3.转发不改变URL,重定 ...

随机推荐

  1. Laravel ORM 数据model操作

    1.ORM操作需要创建对应的model         class User extends Eloquent   2.有两种方式使用数据操作对象            a. 使用new关键字创建对象 ...

  2. windows平台python 2.7环境编译安装zbarlight

    类似于前一篇博文,http://www.cnblogs.com/zhongtang/p/7148082.html中描述的情况. 编译zbarlight同样出现问题,简要处理步骤如下: 1.到https ...

  3. 【三十三】thinkphp之SQL查询语句(全)

    一:字符串条件查询 //直接实例化Model $user=M('user1'); var_dump($user->where ('id=1 OR age=55')->select()); ...

  4. Java泛型集合

    所谓泛型就是允许在定义类.接口时指定类型形参,这个类型形参将在声明变量.创建对象时确定.增加了泛型支持后的集合,完全可以记住集合 中元素的类型,并可以在编译时检查集合中元素的类型.即解决一些安全问题, ...

  5. 【批处理学习笔记】第十一课:常用DOS命令(1)

    [ 文件夹管理 ]cd 显示当前目录名或改变当前目录.md 创建目录.rd 删除一个目录.dir 显示目录中的文件和子目录列表.tree 以图形显示驱动器或路径的文件夹结构.path 为可执行文件显示 ...

  6. NOI 2004 郁闷的出纳员

    Description OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常 ...

  7. [bzoj3910] 火车

    一开始看错题了... 求经过的道路数量就求个lca,把路径上的点置为已经过的话,可以写一个并查集,把某个点往上连续已经过的一段点并起来. #include<cstdio> #include ...

  8. 以太坊RPC机制与API实例

    上一篇文章介绍了以太坊的基础知识,我们了解了web3.js的调用方式是通过以太坊RPC技术,本篇文章旨在研究如何开发.编译.运行与使用以太坊RPC接口. 关键字:以太坊,RPC,JSON-RPC,cl ...

  9. angular $cookies、$cookieStore

    js 文件 加载 <script src="angular-cookies/angular-cookies.js"></script>注入:angular. ...

  10. 《JavaScript设计模式与开发实践》知识点笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p2 { margin: 0.0px ...