jsp底层原理
来源:互联网 发布:联想超级相机软件 编辑:程序博客网 时间:2024/06/14 10:16
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP实际上就是Servlet。
如上图所示是jsp的翻译与编译过程:
在tomcat目录中把jsp先编译成_jsp.java类,实际上这个类是servlet类的子类,它有与servlet生命周期相同的方法,与域对象。
如上图所示是jsp与_jsp.java编译文件与原文件的对应关系。
下面介绍下:<% %>,<%=%>,<%!%>的区别
小脚本 <% java代码 %>
表达式 <%= 2+3 %> 等价于out.print(2+3);
声明 <%! %> 表示在类中定义全局成员,和静态块。
1:<%=1%> 等价与<%var a=1;out.writer(a);%>
2:<%! %> 它声明的方法或变量是类成员方法或变量
如图所示num1是类级别的变量,在_jsp.java中,它是声明在类中的,而num2是放在service方法中的,所以
num2每刷新页面一次就初始化一次,这也说明了一个问题在<%%>中是不能放置puliic method的,因为这样
编译不通过相当于
class a {
num1;
service(){
num2;
}
}
这就是上面的例子。
JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量
网页注释:<!-- 网页注释 --> 特点:不安全,费流量
pageEncoding是指导服务器端编码的方式,charset是指导客户端编码的方式。
jsp 3大指令:
page:
include:
tablib:
jsp 6个动作的原理如下,实际上都是被翻译成servlet中的java执行脚本。
<%Student stu = new Student();stu.setName("tom");out.print(stu.getName());request.getRequestDispatcher("/7.jsp").forward(request, response); %> <jsp:useBean id="stu1" class="com.itheima.entity.Student"></jsp:useBean> <jsp:setProperty property="name" name="stu1" value="jerry"/> <jsp:getProperty property="name" name="stu1"/> <!-- http://localhost:8080/day11_02_jsp2/6.jsp?name=123 --> <jsp:forward page="/7.jsp"> <jsp:param value="123" name="name"/> <jsp:param value="333" name="pwd"/> </jsp:forward> <jsp:include/>
jsp 9大内置对象:
pageContext(重要)
1、本身也是一个域对象:它可以操作其它三个域对象(request session application)的数据
void setAttribute(String name,Object o);
Object getAttribute(String name);
void removeAttribute(String name);
操作其它域对象的方法
void setAttribute(String name,Object o,int Scope);
Object getAttribute(String name,int Scope);
void removeAttribute(String name,int Scope);
scpoe的值:
PageContext.PAGE_SCOPE//当前页
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE
findAttribute(String name); 自动从page request session application依次查找,找到了就取值,结束查找。
- jsp底层原理
- jsp技术:day2--jsp的几个容器、myAjax(隐藏帧技术)底层原理、jsp的三代开发技术
- jsp 底层操作cookie
- extern "C"底层原理
- PHP底层工作原理
- PHP底层工作原理
- PHP底层工作原理
- PHP底层工作原理
- ajax的底层原理
- PHP底层工作原理
- PHP底层工作原理
- PHP底层工作原理
- PHP底层工作原理 .
- PHP底层工作原理
- PHP底层工作原理
- PHP底层工作原理
- memcached底层工作原理
- PHP底层工作原理
- velocity json数组解析
- LoadRunner11录制脚本时不能打开IE浏览器
- Android修改包名 方法二:不修改文件名,自动配置
- Kotlin(五)
- 扩展的 HibernateDaoSupport,
- jsp底层原理
- jqGrid 设置是否能行内编辑
- 微信企业号Signature签名算法(搬运官方demo)
- Hive的UDF、UDAF、UDTF
- HDU1401
- 深入理解mybatis原理(十) Mybatis插件原理简单分析
- php csv 导出
- Python中文注释报错和中文输出乱码
- PO条件在交货后更改控制点