JSP


总结:1.Servlet的域对象:request域对象,servletContext域对象,session域对象
Jsp的域对象:pageContext 域对象(作用在当前JSP) application(实际上就是Servlet域)域对象,request域对象,response域对象;
域对象同意方法:setAttribute(), getAttribute(), removeAttribute();内置对象不需要new对象可以直接调用
2.JSP被翻译成Servlet以后service方法中有个对象被定义和初始化结束我们再jsp脚本中可以直接使用这个对象
3.Out对象:out缓冲区默认大小是8kb,也可以改变大小,改成0kb就是删除
4.Out缓冲区关闭以后会直接向页面输出,不放我response缓冲区,优先于response打印
5.<body> aaaaaaaaaaa(翻译到servlet被out.println()打印,out缓冲区); <%1.out.write("bbbbbbbbb")存在out缓冲区 2.response.getWriter().write("ccccccccc")
这个是优先打印,因为存在于response缓冲区; 因为out缓冲区的内容会在输出时会刷进response缓冲区,所以先打印response缓冲区再打印,out缓冲区 % >
<%= "ddddddddddddddddd"%>翻译到servlet里面被out.write()打印out缓冲区
6.pageContext是jsp的内置对象,作用范围是本jsp文件内,1.向域中存值:pageContext.setAttribute("name","校长");2.从域中取值:因为取出的值是Object类型所以需要进行强制
成String, String name=(String)pageContextgetAttribute("name"); 打印:out.write(name);
7.向request域中存值:pageContext.setAttrubute("name","笑话",pageContext.request_scope); 从request域取值:pageContext.getAttribute("name",pageContext.request_scope)
8.向session域中存值:pageContext.setAttribute("name","小草",pageContext.session_scope)从session域中取值:pageContext.getAttribute("name".pageContext.session+scope)
*3.向application域中存值:pageContext.setAttribute)("name","pageContext.appliction_scope)域中取值,pageContext.getAttribute("name")
9.域的取值对象fideAttribute:依次从pageContext(最小的域request域,session域,application(最大的域,整个WEB项目)域中获 取属性,在某个域中获取后将不在向后寻找
10.1.pageContext(作用范围最小):当前jsp页面内容 2.request(第二小):作用范围是一次请求 3.session域:是一次会话 4.application(作用范围最大):整个WEB项目
pageContext.finAttribute("name")+"..."这是findAttribute的取值方式,如果第一次就取到值后就不会继续向下运行
11.请求转发:request(带有数据跳转给页面)重载:response(不带数据跳转页面)
12.静态包含:包含了页面的内容和代码. 动态包含:包含了,页面的地址,
13.EL技术:El表达式可以嵌入jsp的页面代码,减少jsp的脚本代码(java代码),el表达式的出现是为了代替jsp的脚本代码
14.EL表达式相当于findContext域取值,如果取到值那么就不会再向下取值
15.EL依次从四个域中取值依次是:pageContext域,request域,session域,application域依次取值,在某个域取到值后就不会再继续取值
16.EL取值:字符串取值:${name };就是从域中找到name的键取出响应的值,相当于pageContext.findAttribute("name")
El从session域中取一个对象就是存在域中的名字如(user)点出来,user.name ${user.name }(实际上是user.getName()) ${user.name}....${user.age}
17.EL从applicat域中取集合,因为集合是带下标的,所以通过下标先取到一个集合对象,在通过对象.出来 ${List[0].name}.....${List[1].age}
EL表达式可以计算:${2*2} EL表达式可以判断对象是否为空:${empty user} EL可以三元运算符:${Product.is_hot==0?"是":"否"


原文地址:https://www.cnblogs.com/hankai2735/p/11598018.html