博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsp的语法
阅读量:6864 次
发布时间:2019-06-26

本文共 4896 字,大约阅读时间需要 16 分钟。

jsp的基本语法

 

<%--   <% %>用于写java代码--%><%    String msg=(String)request.getAttribute("msg");    if(msg!=null)    out.write(msg);%><%--      <%=msg %> 等价于  out.write(msg) --%><%=msg %><%-- <%!定义全局变量或静态块--%><%!     int i=10;%><%-- <%定义局部变量 --%><%    int i=10;%><%--这是jsp注释,特点:安全,不费流量 --%>

 

jsp的基本语法

JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。

JSP 2.0规范中共定义了三个指令:page指令、Include指令、taglib指令

语法:

<%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”。。。%>或者:<%@ 指令名称 属性1=“属性值1”%><%@ 指令名称 属性2=“属性值2”%>如:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page language="java" %><%@ page import="java.util.*" %>

1page:

作用:用于定义JSP页面的各种属性

属性:

1.1、 import 和java代码中的import是一样的<%@ page import="java.util.Date,java.util.List"%>或者:<%@ page import="java.util.Date"%><%@ page import="java.util.List"%>JSP会自动导入以下的包:import java.lang.*;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;1.2、 session: 是否会自动创建session对象。默认值是true;1.3、 buffer: JSP中有javax.servlet.jsp.JspWriter输出字符流。设置。输出数据的缓存大小,默认是8kb.1.4 errorPage: 如果页面中有错误,则跳转到指定的资源。errorPage="/uri" 如果写“/”则代表当前应用的目录下,绝对路径。如果不写“/”则代表相对路径。    1.5、 isErrorPage: 是否创建throwable对象。默认是false;1.6、 contextType: 等同于response.setContextType("text/html;charset=utf-8");1.7、 pageEncoding: 告诉JSP引擎要翻译的文件使用的编码。1.8、 isELIgnored: 是否支持EL表达式。 默认是false<%@ page  pageEncoding="gbk" %>

2include:

静态包含:把其它资源包含到当前页面中。

<%@ include file="/include/header.jsp" %>

动态包含:

两者的区别:翻译的时间段不同

前者:在翻译时就把两个文件合并

后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。

原则:能用静的就不用动的。

3taglib

作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

实际使用中当使用“Alt+/”快捷键时,没有反应,显示如下,这样的话需要先导入jstl.jar包

 

导入jstl.jar

 

aaaaaa

 

 jsp6个动作

 

使用标签的形式来表示一段java代码。如: 
动态包含
请求转发
设置请求参数
创建一个对象
给指定的对象属性赋值
取出指定对象的属性值

 

四大域对象:实际开发

PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。ServletRequest: request  存放的数据在一次请求(转发)内有效。使用非常多。HttpSession: session 存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。

 EL表达式

 EL表达式:expression language 表达式语言,要简化jspjava代码开发。它不是一种开发语言,是jsp获取数据的一种规范

EL的具体功能 

 

EL表达式只能获取存在4个作用域中的数据

 

EL获取对于null这样的数据,在页面中表现为空字符串${u.name} == u.getName()方法点(.) 运算符相当于调了getter方法,点后页面跟的是属性名。

 

[]运算符:点能做的,它也能做; 它能做的,点不一定能做

 

<%        List list=new ArrayList();        list.add("aaa");        list.add("bbb");        list.add("ccc");        request.setAttribute("list", list);                Map map=new HashMap();        map.put("a", "a");        map.put("b", "b");        map.put("c", "c");        request.setAttribute("map", map);    %>        ${list[0] },${list },    ${map['b'] },${map.c }

 

运算empty判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true

 

 

 

<%         String str="";         request.setAttribute("str",str);         String str1=null;         request.setAttribute("str1", str1);         String str2="abc";         request.setAttribute("str2", str2);         List list=new ArrayList();         list.add("5656");         request.setAttribute("list", list);         Map map=new HashMap();         request.setAttribute("map", map);       %>        ${empty str },true
${empty str1 },true
${empty str2 },false
${empty list },false
${empty map },true

三元运算符  

<%    int sex=1;    request.setAttribute("s", sex);%>    

JSTL

1、什么是JSTL

JSTLJavaServerPages Standard Tag LibraryJSP标准标签库

2JSTL的作用

使用JSTL实现JSP页面中逻辑处理。如判断、循环等。

3、使用JSTL

1)在JSP页面添加taglib指令

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

2)使用JSTL标签

<%-- 申明一个变量num 值为 10 --%>   
<%-- 将变量num输出 --%>
<%-- 移除变量num --%>
<%-- 再次输出变量num,如num无值,则默认aaa --%>
<%-- if判断语句,无else --%>
5>3
<%-- 判断语句不满足走默认值 --%>
5>3
默认值

出现以下错,是由于<c:if test="${5>3 }">,变量${}要使用双引号“”引起来。

 foreach标签:

<%    List list=new ArrayList();    list.add("aaa");    list.add("bbb");    list.add("ccc");    list.add("ddd");    list.add("fff");    request.setAttribute("list", list);%>
${i }
<%-- c:forEach中的varStatus属性。 指向一个字符串,该字符串引用一个对象。 map.put("vs",一个对象); 这个对象记录着当前遍历的元素的一些信息: getIndex():返回索引。从0开始 getCount():返回计数。从1开始 isLast():是否是最后一个元素 isFirst():是否是第一个元素 --%>
<%-- var申明变量 begin初始化 end结束条件 step步长 --%>
数据 从0开始 从1开始 最后一个 第一个
${l } ${vs.index } ${vs.count } ${vs.first } ${vs.last}

 

 

 

 

 

转载于:https://www.cnblogs.com/xiaotang5051729/p/9927956.html

你可能感兴趣的文章
BZOJ5343[Ctsc2018]混合果汁——主席树+二分答案
查看>>
linux 如何降低入向收包软中断占比
查看>>
小知识点(不定更新)
查看>>
css绝对定位中的初始包含块问题
查看>>
智能指针
查看>>
phpcms导航栏多个栏目调用
查看>>
人脸识别 参考 转盒子
查看>>
SDUT OJ 顺序表应用2:多余元素删除之建表算法
查看>>
CSS
查看>>
Android笔记之为TextView设置边框
查看>>
【Lift】Scala Web 框架——Lift(一)准备工作
查看>>
【转载】增强学习(Reinforcement Learning and Control)
查看>>
GNU使用find命令
查看>>
java的执行与加载的过程
查看>>
8.2 sikuli 集成进eclipse 报错:Getting the VisionProxy.dll: Can not find dependent libraries......
查看>>
2.6.1 XML配置:创建XML文件
查看>>
第六天-数据分类型
查看>>
排版类
查看>>
Java中如何遍历Map对象
查看>>
iOS开发的技能树
查看>>