Skip to content

Commit 7eeb88e

Browse files
committed
Site updated: 2018-06-09 01:16:41
1 parent c6cd58a commit 7eeb88e

File tree

7 files changed

+14
-14
lines changed

7 files changed

+14
-14
lines changed

2017/04/09/JavaWeb-11-JSP/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
<meta property="og:url" content="https://geekhoon.github.io/2017/04/09/JavaWeb-11-JSP/index.html">
9393
<meta property="og:site_name" content="geekhoon">
9494
<meta property="og:description" content="概述JSP(Java Server Pages)是建立在Servlet规范之上的动态网页开发技术(实质是一个Servlet)">
95-
<meta property="og:updated_time" content="2018-06-08T15:18:49.765Z">
95+
<meta property="og:updated_time" content="2018-06-08T17:01:49.048Z">
9696
<meta name="twitter:card" content="summary">
9797
<meta name="twitter:title" content="JSP">
9898
<meta name="twitter:description" content="概述JSP(Java Server Pages)是建立在Servlet规范之上的动态网页开发技术(实质是一个Servlet)">
@@ -393,7 +393,7 @@ <h3 id="include"><a href="#include" class="headerlink" title="include"></a>inclu
393393
<h3 id="tablib"><a href="#tablib" class="headerlink" title="tablib"></a>tablib</h3><p>作用: 导入标签库;</p>
394394
<h2 id="九大内置对象"><a href="#九大内置对象" class="headerlink" title="九大内置对象"></a>九大内置对象</h2><figure class="highlight plain"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div></pre></td><td class="code"><pre><div class="line">page --&gt; this</div><div class="line">config --&gt; ServletConfig</div><div class="line">application --&gt; ServletContext</div><div class="line">request --&gt; HttpServletRequest</div><div class="line">response --&gt; HttpServletResponse</div><div class="line">session --&gt; HttpSession</div><div class="line">out --&gt; JspWriter</div><div class="line">exception --&gt; Throwable;</div><div class="line">pageContext --&gt; jsp上下文对象;</div></pre></td></tr></table></figure>
395395
<h3 id="out"><a href="#out" class="headerlink" title="out"></a>out</h3><p>页面输出<br>print(“内容”); –&gt; 向页面输出数据;<br>flush(); –&gt; 刷新;<br>注意:<br> 1.Servlet缓存区 优先于 jsp缓存区;<br> 2.字节流与字符流不能同时使用;<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div></pre></td><td class="code"><pre><div class="line">&lt;% </div><div class="line"> out.print(<span class="string">"a"</span>);</div><div class="line"> response.getWriter().write(<span class="string">"b"</span>);</div><div class="line"> out.print(<span class="string">"c"</span>);</div><div class="line">%&gt;</div><div class="line">上面代码,页面显示b ac,因为response对象属于Servlet,b存在与Servlet缓存中,</div><div class="line">而out是JSP对象,a和c存在于JSP缓存中,要向页面上显示时,统一合并到Servlet中显示,</div><div class="line">JSP缓存中内容,进入到Servlet缓存,就存在了b之后.最后显示了bac</div><div class="line">&lt;br&gt;</div><div class="line">&lt;% </div><div class="line"> out.print(<span class="string">"a"</span>);</div><div class="line"> out.flush();</div><div class="line"> response.getWriter().write(<span class="string">"b"</span>);</div><div class="line"> out.print(<span class="string">"c"</span>);</div><div class="line">%&gt;</div><div class="line">上面代码,页面显示abc,因为a存入JSP缓存后,直接刷新,刷新后a进入Servlet缓存,</div><div class="line">然后b又存入Servlet缓存,c进入JSP缓存,最后页面要显示时,c进入Servlet缓存,</div><div class="line">显示abc</div></pre></td></tr></table></figure></p>
396-
<h3 id="pageContext"><a href="#pageContext" class="headerlink" title="pageContext"></a>pageContext</h3><p>当前页面的上下文根对象,管理servlet 或者 管理jsp<br>作用:<br>1.可以引用其他八个内置对象<br> getXxx();<br>2.简化四个域操作(存储/删除数据)<br> (1)默认操作page域:<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">pageContext.setAttribute(String key,Object obje);</div><div class="line">pageContext.getAttribute(String key);</div></pre></td></tr></table></figure></p>
396+
<h3 id="pageContext"><a href="#pageContext" class="headerlink" title="pageContext"></a>pageContext</h3><p>当前页面的上下文根对象,管理servlet 或者 管理jsp<br><strong>注意:</strong><br>request.getContextPath()和${pageContext.request.contextPath}都是项目的根路径,或者说是项目名<br>学了pageContext前,form表单中的action路径可以写成action=”&lt;%=request.getContextPath() %&gt;/Servlet路径”<br>学了pageContext后,form表单中的action路径可以写成action=”${pageContext.request.contextPath}/Servlet路径”<br>servlet中重定向的路径写法:response.sendRedirect(request.getContextPath()+”/Servlet路径或jsp路径等等”)<br><strong>作用:</strong><br>1.可以引用其他八个内置对象<br> getXxx();<br>2.简化四个域操作(存储/删除数据)<br> (1)默认操作page域:<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div></pre></td><td class="code"><pre><div class="line">pageContext.setAttribute(String key,Object obje);</div><div class="line">pageContext.getAttribute(String key);</div></pre></td></tr></table></figure></p>
397397
<p> (2)操作指定域:<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div></pre></td><td class="code"><pre><div class="line"> pageContext.setAttribute(String key,Object obje,<span class="keyword">int</span> scope);</div><div class="line"> pageContext.getAttribute(String key,<span class="keyword">int</span> scope);</div><div class="line"> pageContext.removeAttribute(String key,<span class="keyword">int</span> scope);</div><div class="line">注意: </div><div class="line"> pageContext.removeAttribute(String key):一次删除四大域中指定名称的数据</div></pre></td></tr></table></figure></p>
398398
<p>简化四个域对象的操作,实际上是统一API<br> setAttribute<br> getAttribute<br> removeAttribute<br><figure class="highlight java"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div></pre></td><td class="code"><pre><div class="line">向域中存储数据:</div><div class="line">&lt;% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"page_geekhoon"</span>, PageContext.PAGE_SCOPE); %&gt; </div><div class="line">&lt;% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"request_geekhoon"</span>, PageContext.REQUEST_SCOPE); %&gt;</div><div class="line">&lt;% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"session_geekhoon"</span>, PageContext.SESSION_SCOPE); %&gt;</div><div class="line">&lt;% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"appliction_geekhoon"</span>, PageContext.APPLICATION_SCOPE); %&gt;</div><div class="line">获取数据:</div><div class="line">&lt;%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.PAGE_SCOPE) %&gt;</div><div class="line">&lt;%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.REQUEST_SCOPE) %&gt; </div><div class="line">&lt;%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.SESSION_SCOPE) %&gt; </div><div class="line">&lt;%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.APPLICATION_SCOPE) %&gt;</div><div class="line">移除数据:</div><div class="line">&lt;% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.PAGE_SCOPE); %&gt;</div><div class="line">&lt;% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.REQUEST_SCOPE); %&gt;</div><div class="line">&lt;% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.SESSION_SCOPE); %&gt;</div><div class="line">&lt;% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.APPLICATION_SCOPE); %&gt;</div><div class="line">移除所有数据:</div><div class="line">&lt;% pageContext.removeAttribute(<span class="string">"name"</span>) %&gt;</div></pre></td></tr></table></figure></p>
399399
<p>3.依次从四个域中查找数据<br> pageContext.findAttribute(String key);<br> 按照从小到大的顺序,依次(page,request,session,application)查找四大域对象数据;</p>

0 commit comments

Comments
 (0)