jsp页面的基本组成部分:指令,表达式,小脚本,声明,注释,静态内容。
指令元素有三种:
1、page:eg <%@ page 属性名="属性值" 属性名="属性值;属性值"... %> 常见的属性有 language,import ,contentType。
2、include
3、taglib
jsp注释
HTML注释 在客户端可见。<!-- HTML注释 -->
jsp注释,在客户端不可见。<%-- JSP注释--%>
在jsp脚本当中使用java的单行/多行注释; <% // 单行注释 %> <% /* 多行注释 */ %>
jsp的脚本元素 <% java代码 %>
jsp的声明 <%! String s="zhangsan" ;int add(int i,int y){ return x+y} %>
jsp表达式 <% =表达式 %>
jsp页面的生命周期:一次init,多次调用service方法处理用户的每次请求。
jsp的内置对象:out 、request、response、session、application、page、pageContext、exception、config。
out对象介绍: 主要方法有println clear flush clearbuffer 要注意的是执行了flush之后不能执行了clear,否则回报错,但flush之后可以有clearbuffer方法。
请求转发和请求重定向的区别和联系:请求重定向属于response的一个方法,属于客户端行为,从本质来说是两次请求,前一次不会保存,地址栏会发生变化。与之相对应的是request对象的转发方法,是一种服务器行为,地址栏不会变化。
javaBeans的四个作用域范围:page,request,session,application
jsp的modle1是传统的三层,有jsp接受数据由JavaBean处理业务逻辑和封装数据,再有usedBeans调用持久层。
jsp的状态管理:
1、HTTP的无状态性。这个是先天不足。
2、保存用户状态的两大机制:session 、cookie;cookie是web服务器保存在客户端的数据技术,常见的应用场景在购物车里面;记住登录名和密码都是cookie技术从而简化登陆,但容易泄露用户数据。
3、cookie的创建和使用 使用URLEncode来使中文无法解码的问题,该方法位于java.net包下。
指令与动作
page指令已经讲过了,接下来来是include
1、指令,其有一个file属性可以指明包含页面。
2、动作,有page和flush两个属性。
区别:主要区别有两个:页面包含内容不一样,编译过后文件个数不一样。
forward动作 相当于服务器短的转发效果。属性只有一个page属性。
param动作常常与forward动作一起使用作为forward的子一级。