Jsp

Jsp是sevlet的简化这里只展示它的语法 , 以便于查阅 

过时的语法,能看懂即可

  小脚本 <% java代码 %>

  表达式 <%= 2+3 %> 等价于out.print(2+3);

  JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量

  网页注释:<!-- 网页注释 -->    特点:不安全,费流量

 

三个指令

  <%@ %>的这种写法

  page : jsp页面的配置信息,决定哪些东西应该创建,一般用默认的就好,用到再查询

  include: 静态包含其他页面 , 

  taglib:自定义标签库 ,挺有用,JSTL的应用后面会说

 

9个内置对象

   out, request,response, session , application, pageContext, exception,config,page(this)

    几个不常用到的解释

      config , 就是ServletConfig啦 , 主要就是读取你写在XML中的配置信息啊 , 挺简单的

      page,  就是在Servlet中的this啊, 主要就是可以通过这个this获取很多东西。 比如ServletContext和servletConfig都可以得到等等等等

    其中最叼的一个属性莫过于PageContext,用他可以获取其他的域对象的属性获取和设置方法 通过Scope区分,最重要的是 ,它可以按照

      pageContext>Request>Session>application的顺序获取值,直到找到对应的属性为止

 

 

那四个域对象哪些比较重要呢(特别注意范围哦)

  PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。

  ServletRequest: request  存放的数据在一次请求(转发)内有效。使用非常多。

  HttpSession: session 存放的数据在一次会话中(下次进入jSessionid就变了所以)有效。使用的比较多。如:存放用户的登录信息,购物车功能。

  ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。

 

!!!!!!!!!!!!!!!!!!!!!!!!注意Session的有效 和 Session的生命周期 不是一个概念 ,不可以相提并论, 不要弄混

 

接下来就是开发中的重点内容拉

  EL表达式 , 有了他再也不用 <%=%>这种反人类的标签了

  你只需要一个${} 便可以获取域对象中指定的值 ,  因为其中可以写表达式 , 所以 ,你可以写一个加减乘除,三木运算,empty存在与否运算

  $中的对象 调用get方法时 不需要写get 直接 .属性名 就可以了

  多么优美的语言啊,不仅简单,而且功能强大

 

  EL中的隐式对象,这个东西感觉我只记住了第一个,用来获取 其他域对象的 , 获取资源名的

  记录在这里吧,如果有用到的,在看看吧

EL隐式对象引用名称

类型

JSP内置对象名称

说明

pageContext

javax.servlet.jsp.PageContext

pageContext

一样的

pageScope

java.util.Map<String,Object>

没有对应的

pageContext范围中存放的数据,页面范围

requestScope

java.util.Map<String,Object>

没有对应的

请求范围数据

sessionScope

java.util.Map<String,Object>

没有对应的

会话范围数据

applicationScope

java.util.Map<String,Object>

没有对应的

应用范围数据

param

java.util.Map<String,String>

没有对应的

一个请求参数

paramValues

java.util.Map<String,String[]>

没有对应的

重名请求参数

header

java.util.Map<String,String>

没有对应的

一个请求消息头

headerValues

java.util.Map<String,String[]>

没有对应的

重名请求消息头

initParam

java.util.Map<String,String>

没有对应的

web.xml中全局参数

cookie

java.util.Map<String,Cookie>

没有对应的

key:cookie对象的name

 

 

 

可视El表达式 , 不能完全替换原来的 % 相关的标签啊 ,我想循环 map怎么办,我想执行判断语句怎么办 , JSTL解决了这些问题

  使用它记得引入taglib

  1.我想在页面中设置一个常量 , 比如计算一下 循环 表达式中 各个值的和 ,用一个 <c:set标签即可 设置 var  value 和 scope 作用域

  2.我想输出一个数据,好像el表达式就可以吧 !  也是这个没啥用 用<c:out , 如果不存在 可以用default设置默认的值

  3.移除一个数据 , <c:remove 没怎么用过

 

  重点作用

  if 判断  

  <c:if     其中test里面写el表达式 , 为真则输出包含的内容

  switch .. case

   <c:choose  里面写多个<c:when 符合条件的就输出  不怎么会,希望以后多用

  

  还有就是foreach了,可以循环各种数组啊,集合啊

  只会循环一些容器,所以功能很多不懂,贴上,以后查询用

  //用自己写的循环

  

 

  遍历容器 , 目前我还是比较常用的

  

  var 是每次循环到元素的 代表 ,例如在map中是一个Map.Entry<>在list中的代表循环到的那个

  注意一个属性,varStatus可以获取到一些遍历的信息

  指向一个字符串,该字符串引用一个对象。  map.put("vs",一个对象);

       这个对象记录着当前遍历的元素的一些信息:

       getIndex():返回索引。从0开始

       getCount():返回计数。从1开始

       isLast():是否是最后一个元素

       isFirst():是否是第一个元素

  

 

posted @ 2017-09-21 00:56  Soe  阅读(143)  评论(0编辑  收藏  举报