Web---JSP---②基础语法2

37 篇文章 0 订阅
9 篇文章 0 订阅

JSP中注释方式:

<!-- 在JSP页面中可以写的注释1,HTML的方式, 在客户端的源代码中可以看到 -->   
      <%
         //在JSP页面中可以写的注释2,Java的方式, 客户端看不到,但jspService()中可看到
         /*
            ...
         */
      %> 
      <%--
                       在JSP页面中可以写的注释3,真正的JSP方式。客户端看不到,jspService()中也看不到,保密性最好。
           该注释JSP翻译程序直接略过,不翻译到jspServlet类中
      --%>

JSP的隐含对像

  1. request

  2. response

  3. config

  4. pageContextjavax.servlet.jsp.PageContext为帮助页面快速获取信息

  5. application-ServletContext

  6. out – javax.servlet.jsp.JspWriter - PrintWriter

  7. session –  session=false.

  8. exception  - 只有当isErrorPage=true时才会拥有此对像。

  9. page

对照jsp编译好的Servlet类找到相对应的隐藏对像。

本次重点演示pageContext,其他内置对象在Servlet中已经演示过了。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>JSP中的隐藏对象</title>
	</head>
	<body>
		<h1>JSP语法演示5---隐藏对象</h1>
		JSP共有9个隐藏对象:<br/>
		 4个容器: pageContext, request, session, application<br/>
		 3个读取或输出信息: config, out, response<br/>
		 2个不常用的: page, exception(只有当页面page指令设置属性isErroPage=true时才能用)<br/>
		 <hr/>
		 pageContext: 本身当作容器使用不多,我们一般是利用它方便操作其它隐藏对象<br/>
		 pageContext.getServletConfig(),pageContext.getSession()<br/>
                 pageContext.getException(),pageContext.getServletContext()<br/>
                 pageContext.getOut(),pageContext.getRequest()<br/>
                 pageContext.getResponse(), pageContext.getPage()<br/>
                 通过pageContext可以获得到其他8个隐藏对象。<br/>
         <hr/>
         <% 
	         pageContext.setAttribute("name", "Jack_Page"); //不常用
	         request.setAttribute("name", "Jack_Req"); 
	         session.setAttribute("name", "Jack_Session"); 
	         application.setAttribute("name", "Jack_App"); 
         %>
         通过容器自身的 getAttribute(key) 方法  获取存储在自身容器中 key 对应的值:<br>
         pageContext>><%=pageContext.getAttribute("name")%>&nbsp;&nbsp;
         request>><%=request.getAttribute("name")%>&nbsp;&nbsp;
         session>><%=session.getAttribute("name")%>&nbsp;&nbsp;
         application>><%=application.getAttribute("name")%>&nbsp;&nbsp;
         <hr/>
         通过pageContext的 getAttribute(key,scope) 方法  获取分别存储在4个容器中 key 对应的值:<br>
          <%=pageContext.getAttribute("name",PageContext.PAGE_SCOPE)%>&nbsp;&nbsp;
          <%=pageContext.getAttribute("name",PageContext.REQUEST_SCOPE)%>&nbsp;&nbsp;
          <%=pageContext.getAttribute("name",PageContext.SESSION_SCOPE)%>&nbsp;&nbsp;
          <%=pageContext.getAttribute("name",PageContext.APPLICATION_SCOPE)%>&nbsp;&nbsp;
         <hr/>
         同理:通过pageContext的 setAttribute(key,value,scope) 方法 修改各个容器中 key-value<br>
         <% 
	         pageContext.setAttribute("name", "Jack_Page_2",PageContext.PAGE_SCOPE); //不常用
	         pageContext.setAttribute("name", "Jack_Req_2",PageContext.REQUEST_SCOPE); 
	         pageContext.setAttribute("name", "Jack_Session_2",PageContext.SESSION_SCOPE); 
	         pageContext.setAttribute("name", "Jack_App_2",PageContext.APPLICATION_SCOPE); 
         %>
          通过容器自身的 getAttribute(key) 方法  获取存储在自身容器中 key 对应的值:<br>
         pageContext>><%=pageContext.getAttribute("name")%>&nbsp;&nbsp;
         request>><%=request.getAttribute("name")%>&nbsp;&nbsp;
         session>><%=session.getAttribute("name")%>&nbsp;&nbsp;
         application>><%=application.getAttribute("name")%>&nbsp;&nbsp;
         <hr/>
         通过pageContext的 pageContext.findAttribute(key) 方法 可以如EL表达式那样实现通过key值自底向上在4个容器中查找,找到第一个就停止,否则按照:<br>
         pageContext --> request --> session --> applicatio  顺序一直找下去,如果一个都没有则返回""<br>
   	 <% 
   	 	//试着逐级放开注释,观察下面输出结果
   	 	//pageContext.removeAttribute( "name", PageContext.PAGE_SCOPE );
   	 	//pageContext.removeAttribute( "name", PageContext.REQUEST_SCOPE );
   	 	//pageContext.removeAttribute( "name", PageContext.SESSION_SCOPE );
   	 	//pageContext.removeAttribute( "name", PageContext.APPLICATION_SCOPE );
   	 %>
    EL表达式:${name}<br/>
         模拟EL表达式:<%=pageContext.findAttribute("name")==null?"":pageContext.findAttribute("name") %><br/>
        
         <div style="width: 100%;height: 400px"></div>
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值