【0】JSP简介
- Java Server Page
- JSP的本质就是一个Servlet
- jsp –翻译–> java –编译–> class
【1】JSP九大隐含对象
- pageContext
类型:PageContext
作用:可以获取到页面中的其他隐含对象,同时它还是一个域对象 - request
类型:HttpServletRequest
作用:可以获取用户发送的请求信息,它也是一个域对象 - session
类型:HttpSession
作用:可以作为域对象,用来共享数据 - application
类型:ServletContext
作用:是JavaWeb中最大的域对象 - response
类型:HttpServletResponse
代表:响应
作用:向浏览器发送响应信息 - out
类型:JspWriter
代表:输出流
作用:可以向页面输出内容 - config
类型:ServletConfig
代表:当前JSP的配置信息
作用:可以获取到Servlet标签中初始化参数 - page
类型:Object 在service方法中有如下代码 Object page = this;
代表:代表当前JSP的对象 - exception
类型:Throwable
代表:异常信息
作用:获取页面中的异常
【2】JSP基本语法
- 模板元素:JSP中html代码;其内容最终会作为out.write()的参数
- 脚本片段:<% %>
脚本片段中的代码会原封不动的复制到java文件的service方法中的指定的位置 - 表达式:<%= %>
内容最终会作为out.print()的参数输出到页面中 - 声明:<%! %>
声明中的内容会直接写到jsp对应的java类中
【3】前端后台简单传值
-
通过href在捕获到servlet方法后使用?携带参数传值(问题:参数会明文显示在地址栏中,不安全,但可以用来传id等不重要数据);
后台通过request.getParameter()方法获取到参数值; 表单传值
方法如上,href改为aciton捕获;对于常用的且对安全不产生影响的数据可以放在session域对象中存储,方便各页面取值查询;
HttpSession session = request.getSession();
session.setAttribute(“test”, test);
【4】JSTL(用于在jsp页面使用循环等java语句)
JSTL的使用需要导入两个taglibs jar包
导入核心库:<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core” %>
c:when和c:otherwise不能脱离c:choose使用,想当于if else if else语句
c:forEach遍历集合时 var对集合中的对象引用的名字
遍历数组: step :步长,每次自增的大小- c:url 作用:创建一个完整的绝对路径 还可以携带参数只需要在c:url下加入
<c:param name="name" value="孙悟空"></c:param>
可以直接作为字符串放在<a href="">
的href中 - c:redirect:这个重定向跟response的sendRedirect不一样,sendRedirect需要加上项目名,而c:redirect自动补上了项目名
【5】EL(用于向页面输出内容)
1.${表达式}
2.域:pageScope requestScope sessionScope applicationScope
3.通过EL表达式读取对象的属性时,只需要${对象.属性名}
4.内置对象:
pageContext 可以获取到JSP中其他的隐含对象
pageScope可以获取到page域中的属性
requestScope可以获取到request域中的属性
sessionScope可以获取到application域中的属性
param可以获取请求参数
paramValues获取到一个请求参数对应的多个值
范围比较:page《request《session《application
5.EL运算:在EL中可以使用Empty元素符 如果值为null , empty则返回 true;如果为空串, 则返回 true;
空的集合 返回true