凡客诚品首页html,网站百度关键词seo排名优化,网站开发工具教程,个人网站建设制作 (一)EL的基本语法 1优点 1 jsp的java太长了,el自己的语言${ 开始 }结束 2el直接返回空字符转,而java直接报错 3使用“lt”代替“”运算符#xff0c;如果运算符后面是数字#xff0c;在运算符 *EL取值时#xff0c;没有数组的下标越界#xff0c;没有… (一)EL的基本语法 1优点 1 jsp的java太长了,el自己的语言${ 开始 }结束 2el直接返回空字符转,而java直接报错 3使用“lt”代替“”运算符如果运算符后面是数字在运算符 *EL取值时没有数组的下标越界没有空指针异常没有字符串的拼接。 2java请求转发到jsp里 el与jsp对比 2RequestDispatcher dispatcher request .getRequestDispatcher(/myjsp.jsp);request.getRequestDispatcher(/myjsp.jsp) 是一个方法调用它返回一个 RequestDispatcher 对象该对象可以用于将请求转发到 /myjsp.jsp 这个资源。 3作用域 pageContext..JSP的作用域request、 session、 application 以及pageEL不仅可以访问一般变量还可以访问JavaBean中的属性、嵌套属性和集合对象。 4.中括号 如“-”或“?”等非字母或数字的符号就只能使用中括号运算符访问该属性。中括号运算符的用法示例如下${user[My-Name]} 什么时候用:联合使用集合里有多个对象,对象又有属性${users[0].userName} 一般情况可以互换 ${student.name}等价于${student[name]}。 (二)EL中常见的隐式对象 可分为5种 1pageContext ${pageContext.request.requestURI}对象对象的属性 body 请求URI为${pageContext.request.requestURI} br / Content-Type响应头${pageContext.response.contentType} br / 服务器信息为${pageContext.servletContext.serverInfo} br / Servlet注册名为${pageContext.servletConfig.servletName} br / /body 2.4个scope 最后会打印itcase因为找的顺序是pageScope、requestScope、 sessionScope和applicationScope都可以通过setAttribute()方法存储属性通过getAttribute()方法获取属性。 % page languagejava contentTypetext/html; charsetutf-8% html head/head body % pageContext.setAttribute(userName, itcast); % % request.setAttribute(bookName, Java Web); % % session.setAttribute(userName, itheima); % % application.setAttribute(bookName, Java 基础); % 表达式\${pageScope.userName}的值为${pageScope.userName} br / 表达式\${requestScope.bookName}的值为${requestScope.bookName} br / 表达式\${sessionScope.userName}的值为${sessionScope.userName} br / 表达式\${applicationScope.bookName}的值为${applicationScope.bookName} br / 表达式\${userName}的值为${userName} /body /html 3param对象用于获取请求参数的某个值与request.getParameter()方法相同 它是Map类型 例子:获取客户端请求参数的值 ${param.num}获取一个 ${paramValues.nums[0]} 获取数组 body styletext-align: center; form action${pageContext.request.contextPath}/param.jsp num1input typetext namenum1br / num2input typetext namenumbr / num3input typetext namenumbr / br / input typesubmit value提交 /nbsp;nbsp; input typesubmit value重置 /hr / num1 ${param.num1} br / num2 ${paramValues.num[0]} br / num3 ${paramValues.num[1]} br / /form /body 4Cookie隐式对象,第一次只有cookie字段,第二次才会获取对象和值 第一次访问服务器时服务器会向浏览器回写一个Cookie此时的Cookie信息是存储在浏览器中的当刷新浏览器 第二次访问cookie.jsp页面时由于浏览器中已经存储了名为userName的Cookie信息浏览器会将此Cookie信息一同发送给服务器这时使用表达式${cookie.userName.name }和${cookie.userName.value }便可以获取Cookie的名称和值。 一开始访问一下都是空 获取cookie对象的信息${cookie.userName} 获取cookie对象的名称${cookie.userName.name} 获取cookie对象的值${cookie.userName.value} 5initParam获取(web.xml里面)参数的值 Web应用初始化值 ${initParam.author} (三)JSTL标签库 JSTL 1在使用这些标签库前必须在JSP页面的顶部使用% taglib%指令定义引用的标签库和访问前缀。 % taglib prefixc urlhttp://java.sun.com/jsp/jstl/core % 用于输出文本内容的c:out标签、用于条件判断的c:if标签、用于迭代循环的c:forEach标签 2.格式标签库Fmt SQL标签库sql XML标签库xml 函数标签库fn 每个厂商都有一个标签库,所以jsp里面要自定义标签 (四)JSTL的下载与使用 jstl.jar文件包含JSTL规范中定义的接口和相关类standard.jar文件包含用于实现JSTL的.class文件以及JSTL中5个标签库描述符文件TLD。 Tld 写上核心地址 (五)Core标签库中的常用标签 1c:out语法 escapeXml属性default属性value属性 escapeXmltrue下面就不会编码输出 输出:meta http-equivrefresh content0;urlhttp://www.itcast.cn / 单标签c:out valuevalue [defaultdefaultValue] 双标签c:out valuevalue [escapeXml{true|false}]unknown/c:out 输出都是unknown 可以在网页里面直接传入键值输出 2c:remove移除标签 c:remove varname [scope”范围”]/ 范围page、request、session和application 3c:if标签, 双标签在标签体中指定要输出的内容 c:if testtestCondition varresult [scope{page|request|session|application}] body content /c:if c:choose标签该标签用于指定多个条件选择的组合边界它必须与c:when、c:otherwise标签一起使用。 c:when都不成立就执行c:otherwise里面语句 body c:choose c:when test${empty param.username} unKnown user. /c:when c:when test${param.usernameitcast } ${ param.username} is manager. /c:when c:otherwise ${ param.username} is employee. /c:otherwise /c:choose /body 可以用c_choose.jsp?usernameitcast传参 4.c:forEach标签 双标签:迭代指定范围内的集合start,end,步长就行 迭代包含多个对象的集合 % List colorsListnew ArrayList(); colorsList.add(red); colorsList.add(yellow); colorsList.add(blue); colorsList.add(green); colorsList.add(black); % c:forEach varcolor items%colorsList% begin1 end3 step2 ${color}nbsp; /c:forEach 5.url标签 双标签中构造URL参数 其中c:param标签用于获取URL地址中的附加参数c:url标签用于按特定的规则重新构造URLc:redirect标签负责重定向。 c:url的var属性用于指定将构造的URL地址保存到域对象的属性名称。 body 使用绝对路径构造URL:br / c:url varmyURL valuehttp://localhost:8080/chapter07/c_out1.jsp c:param nameusername value张三 / /c:url a href${myURL}c_out1.jsp/abr / 使用相对路径构造URL:br / c:url varmyURL valuec_out1.jsp?usernameTom / a href${myURL}c_out1.jsp/a var和 value就可以 参数值进行编码