|
92 | 92 | <meta property="og:url" content="https://geekhoon.github.io/2017/04/09/JavaWeb-11-JSP/index.html"> |
93 | 93 | <meta property="og:site_name" content="geekhoon"> |
94 | 94 | <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"> |
96 | 96 | <meta name="twitter:card" content="summary"> |
97 | 97 | <meta name="twitter:title" content="JSP"> |
98 | 98 | <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 |
393 | 393 | <h3 id="tablib"><a href="#tablib" class="headerlink" title="tablib"></a>tablib</h3><p>作用: 导入标签库;</p> |
394 | 394 | <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 --> this</div><div class="line">config --> ServletConfig</div><div class="line">application --> ServletContext</div><div class="line">request --> HttpServletRequest</div><div class="line">response --> HttpServletResponse</div><div class="line">session --> HttpSession</div><div class="line">out --> JspWriter</div><div class="line">exception --> Throwable;</div><div class="line">pageContext --> jsp上下文对象;</div></pre></td></tr></table></figure> |
395 | 395 | <h3 id="out"><a href="#out" class="headerlink" title="out"></a>out</h3><p>页面输出<br>print(“内容”); –> 向页面输出数据;<br>flush(); –> 刷新;<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"><% </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">%></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"><br></div><div class="line"><% </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">%></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=”<%=request.getContextPath() %>/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> |
397 | 397 | <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> |
398 | 398 | <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"><% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"page_geekhoon"</span>, PageContext.PAGE_SCOPE); %> </div><div class="line"><% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"request_geekhoon"</span>, PageContext.REQUEST_SCOPE); %></div><div class="line"><% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"session_geekhoon"</span>, PageContext.SESSION_SCOPE); %></div><div class="line"><% pageContext.setAttribute(<span class="string">"name"</span>, <span class="string">"appliction_geekhoon"</span>, PageContext.APPLICATION_SCOPE); %></div><div class="line">获取数据:</div><div class="line"><%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.PAGE_SCOPE) %></div><div class="line"><%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.REQUEST_SCOPE) %> </div><div class="line"><%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.SESSION_SCOPE) %> </div><div class="line"><%=pageContext.getAttribute(<span class="string">"name"</span>, PageContext.APPLICATION_SCOPE) %></div><div class="line">移除数据:</div><div class="line"><% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.PAGE_SCOPE); %></div><div class="line"><% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.REQUEST_SCOPE); %></div><div class="line"><% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.SESSION_SCOPE); %></div><div class="line"><% pageContext.removeAttribute(<span class="string">"name"</span>, PageContext.APPLICATION_SCOPE); %></div><div class="line">移除所有数据:</div><div class="line"><% pageContext.removeAttribute(<span class="string">"name"</span>) %></div></pre></td></tr></table></figure></p> |
399 | 399 | <p>3.依次从四个域中查找数据<br> pageContext.findAttribute(String key);<br> 按照从小到大的顺序,依次(page,request,session,application)查找四大域对象数据;</p> |
|
0 commit comments