JSP全称是Java Server Pages
它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术
JSP实际上就是Servlet
jsp运行原理
浏览器访问服务器上jsp页面
服务器中jsp-->翻译成.java文件-->编译成.class文件
jsp和servlet最佳使用方式
servlet:获取参数 处理逻辑 请求转发
jsp:html界面 数据回显
jsp的基本语法
jsp注释<%--注释内容--> 特点:安全,省流量
网页注释:<!-- 网页注释 --> 特点:不安全,费流量
小脚本 <% java代码 %>
声明成员变量和方法 <%! %>
显示数据 <%= %>相当于out.print()
3个指令
(1)page
<%@page ...%>
session开关 默认开启
pageEncoding 设置本页面的编码格式
contextType: 等同于response.setContextType("text/html;charset=utf-8");
errorPage: 如果页面中有错误,则跳转到指定的资源。
isErrorPage:默认是关闭的 开启后可以使用exception对象来获取异常信息
(2)include
静态包含:把其它资源包含到当前页面中。
在翻译时就把两个文件合并
<%@ include file="/include/1.jsp" %>
动态包含:不会合并文件,当代码执行到include时,才包含另一个文件的内容。
<jsp:include page="/include/1.jsp"></jsp:include>
(3)taglib
作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
6个动作
<jsp:include > 动态包含
<jsp:forward> 请求转发
<jsp:param> 设置请求参数
<jsp:forward page="/7.jsp">
<jsp:param value="wanglong" name="username"/>
<jsp:param value="123" name="password"/>
</jsp:forward>
<jsp:useBean> 创建一个对象
<!-- 使用userbean标签创建一个对象
id表示创建对象的名字
class表示使用哪个类创建该对象
-->
<jsp:setProperty> 给指定的对象属性赋值
<jsp:getProperty> 取出指定对象的属性值
//name表示要赋值那个对象
jsp的9个内置对象
request
response
session
application
exception 获取异常信息 默认是关上的
page 当前servlet实例 this
config
out
pageContext(利用pageContext对象 往各个域中存值)
参数3表示向哪个域里存值
pageContext.setAttribute("www", "request",PageContext.REQUEST_SCOPE);
全域查找 域从小到大进行查找
<%=pageContext.findAttribute("www") %>
EL表达式
一个书写规范,提供了java代码在jsp页面的简便书写方式
功能
1.获取存在4个作用域中的数据
${u} 相当于 pageContext.findAttribute("u");
EL获取对于null这样的数据,在页面中表现为空字符串
判断空值的方法
关键词 empty
${empty u}
支持三目判断
${empty str3?"我是前面的":"我是后面的" }
获取对象的属性值 javaBean导航(对象导航)
内部就相当于调用了getUsername()方法
用点能获取的 用[]都能获取
用[]获取的 点获取不了
使用隐式对象 指定域找对应的值
${pageScope.xx}
${requestScope.xx }
${sessionScope.xx }
${applicationScope.xx }
获取表单提交的数据
${param.username }
${param.password }
${paramValues.hobby[0] }