JSP:
1.指令
* 作用:用于配置JSP页面,导入资源文件
* 格式:
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2... %>
*分类:
1.page :配置JSP页面
*contentType:等同于response.setCoontentType()
1.设置响应体的mime类型以及字符集
2.设置当前jsp页面的编码(高级开发IDE才有效,如果是记事本则需设置pageEncoding属性来设置当前页面字符集属性)
2.include :包含页面的。导入页面的资源文件
<%@include file = "xxx.jsp"%>将xxx页面包含进当前页面
3.taglib :导入资源
<%@ taglib prefix="c" uri="http://java.sun.com/jsp......">
prefix:自定义前缀
2.注释:
1.html注释:只能注释HTML代码片段
<!-- -->
2.jsp注释:可注释所有,推荐使用
<&-- --%>
3.内置对象:
*在jsp页面中不需要创建,直接使用的对象,共有9个
变量名 真实类型
*pageContext PageContext
*request HttpServletRequest
*session HttpSession
*application ServletContext
*response HttpServletResponse
*page Object
*out JspWriter
*config ServletConfig
*exception Throwable
MVC开发模式
1.MVC:
M:Model 模式(完成具体的业务操作,如:查询数据库,封装对象)V:View 视图(展示数据)C:Controller 控制器(获取用户输入,调用模型,将数据交给试图进行展示) 优缺点
优点:
耦合性低,方便维护,可以利于分工协作重用性高 缺点:
使得项目架构变得复杂,对开发人员要求高
EL表达式
概念:Expression Language 表达式语言作用:替换和简化jsp页面中Java代码的编写语法:${表达式}注意:
jsp默认支持el表达式,如果要忽略el表达式
设置jsp中page指令中:isELIgnored=“true” 忽略当前页面中所有el表达式${表达式} :忽略当前这个el表达式 使用:
运算:
算数运算符: + - * /(div) %(mod)比较运算符:> < >= <= == !=逻辑运算符:&&(and) ||(or) !(not)空运算符:empty
功能:用于判断字符串、集合、数组对象是否为null或者长度是否为0${empty list}:用于判断字符串、集合、数组对象是否为null或者长度是否为0${not empty list}:用于判断字符串、集合、数组对象是否不为null并且长度是否 > 0 获取值:
el表达式只能从域对象中获取值语法:
${域名称 . 键名}:从指定域中获取指定键的值
域名称:
pageScope -----> pageContextrequestScope ----> requestsessionScope ----> sessionapplicationScope ----> application (ServletContext) 举例:在request域中存储了name=张三获取:¥{requestScope . name} ${键名}:表示一次从最小的域中查找是否有该键对应的值,直到找到为止获取对象:List集合、Map集合的值
值为对象:¥{域名称 . 键名称 . 属性名}
本质上会调用getter方法 值为List集合:${域名称 . 键名[索引]}值为Map集合:
${域名称 . 键名 . key名称}${域名称 . 键名[“key名称”]} 隐式对象:
el表达式中有11个隐式都西昂pageContext:
获取jsp其他8个内置对象
¥{pageContext . request . contextPath}:动态获取虚拟目录
JSTL
- 概念:JavaScript Pages Tag Library jsp标准标签库
* Apache组织提供的开源免费的jsp标签
- 作用:用于简化和替换jsp页面上的Java代码
- 使用步骤:
* 导入jstl相关jar包
* 引入标签库:taglib指令:<%@ taglib %>
* 使用标签
- 常用jstl标签
* if :相当于Java代码的if语句
* choose :相当于Java代码的switch语句
1.使用choose标签声明 相当于switch声明
2.使用when标签判断 相当于case
3.使用otherwise标签做其他情况的声明 相当于default
* foreach :相当于Java代码的for语句
<%
request.setContribute("name",1);
%>
<c:choose>
<c:when test="${name == 1}">zhouyi</c:when>
<c:when test="${name == 2}">2</c:when>
<c:when test="${name == 3}">3</c:when>
<c:when test="${name == 4}">4</c:when>
<c:when test="${name == 5}">5</c:when>
<c:when test="${name == 6}">6</c:when>
<c:when test="${name == 7}">7</c:when>
</c:choose>
<%--
foreach:相当于Java代码中的for语句
作用:1.完成重复的操作
属性:
begin:开始值
end:结束值
var:临时变量
step:步长
varStatus:循环状态对象
index: 容器中元素的索引,从0开始
count:循环次数,从1开始
2.遍历容器
属性:
items:容器对象
var:容器中元素的临时变量
varStatus:循环状态对象
index: 容器中元素的索引,从0开始
count:循环次数,从1开始
--%>
<c:forEach begin="1" end="10" var="i" step="3" varStatus="s">
${i} ${s.index} ${s.count}<br>
</c:forEach>
<%
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
request.setAttribute("ls",list);
%>
<c:forEach items="${list}" var="str" varStatus="s">
${s.count} ${s.index} ${str}<br>
</c:forEach>
转载请注明原文地址:https://ipadbbs.8miu.com/read-1225.html