关于JSP里JavaBean的用法分析

来源:互联网 发布:免费手机工作日志软件 编辑:程序博客网 时间:2024/06/11 14:03

关于JSP里JavaBean的用法分析:我们可以使用Scriptlet的方式: <%! %> / <% %>

还可以用<jsp:useBean>的方式//bean.HelloBean.java:

package bean;public class HelloBean {private String str;public void setStr(String s){str = s;}public String getStr(){return str;}}


//index.jsp
<%@page import="bean.HelloBean"%><html>  <body>    <%!bean.HelloBean memBean = new bean.HelloBean();%>    <%memBean.setStr("memBean!!"); %>    <%=memBean.getStr()%>     <%bean.HelloBean partBean = new bean.HelloBean();%>    <%partBean.setStr("partBean!!"); %>    <%=partBean.getStr()%>        <jsp:useBean id="pageBean" scope="page" class="bean.HelloBean">    </jsp:useBean>        <%pageBean.setStr("pageBean!!"); %>    <%=pageBean.getStr()%>     <jsp:useBean id="requestBean" scope="request" class="bean.HelloBean">    </jsp:useBean>        <%requestBean.setStr("pageBean!!"); %>    <%=pageBean.getStr()%>        <jsp:useBean id="sessionBean" scope="session" class="bean.HelloBean">    </jsp:useBean>        <%sessionBean.setStr("pageBean!!"); %>    <%=sessionBean.getStr()%>        <jsp:useBean id="appBean" scope="application" class="bean.HelloBean">    </jsp:useBean>        <%sessionBean.setStr("appBean!!"); %>    <%=sessionBean.getStr()%>      </body></html>

jsp:useBean各项参数含义:id:对象实例名称scope:Bean作用的范围,

默认为page,对整个jsp页面有效

Scope各项参数的意义:page:仅涵盖使用JavaBean的页面(PageBean.jsp/CounterBean.java)

request:有效范围仅限于使用JavaBean的请求(RequestBean.jsp/RequestBean2.jsp/CounterBean.java)

session:有效范围在用户整个连接过程中(整个会话阶段均有效)(SessionBean.jsp/Session2.jsp/CounterBean.java)

application:有效范围涵盖整个应用程序。也就是对整个web应用均有效(Application.jsp/Application2.jsp/CounterBean.java)

//然后我们去到Tomcat的work目录下查看jsp被编译生成的java文件:

/* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/7.0.22 * Generated at: 2011-11-02 01:36:52 UTC * Note: The last modified time of this file was set to *       the last modified time of the source file after *       generation to assist with modification tracking. */package org.apache.jsp;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import bean.HelloBean;public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase    implements org.apache.jasper.runtime.JspSourceDependent {bean.HelloBean memBean = new bean.HelloBean();  //<%!bean.HelloBean memBean = new bean.HelloBean();%> <%! %> 使这个bean变量这个类的成员变量  private static final javax.servlet.jsp.JspFactory _jspxFactory =          javax.servlet.jsp.JspFactory.getDefaultFactory();  private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;  private javax.el.ExpressionFactory _el_expressionfactory;  private org.apache.tomcat.InstanceManager _jsp_instancemanager;  public java.util.Map<java.lang.String,java.lang.Long> getDependants() {    return _jspx_dependants;  }  public void _jspInit() {    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();    _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());  }  public void _jspDestroy() {  }  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)        throws java.io.IOException, javax.servlet.ServletException {    final javax.servlet.jsp.PageContext pageContext;    javax.servlet.http.HttpSession session = null;    final javax.servlet.ServletContext application;    final javax.servlet.ServletConfig config;    javax.servlet.jsp.JspWriter out = null;    final java.lang.Object page = this;    javax.servlet.jsp.JspWriter _jspx_out = null;    javax.servlet.jsp.PageContext _jspx_page_context = null;    try {      response.setContentType("text/html");      pageContext = _jspxFactory.getPageContext(this, request, response,      null, true, 8192, true);      _jspx_page_context = pageContext;      application = pageContext.getServletContext();      config = pageContext.getServletConfig();      session = pageContext.getSession();      out = pageContext.getOut();      _jspx_out = out;      out.write("\r\n");      out.write("<html>\r\n");      out.write("  <body>\r\n");            out.write("\r\n");      out.write("    ");      out.write("\r\n");      out.write("    ");memBean.setStr("memBean!!");       out.write("\r\n");      out.write("    ");      out.print(memBean.getStr());      out.write("\r\n");      out.write(" \r\n");      out.write("    ");      bean.HelloBean partBean = new bean.HelloBean();  //<%bean.HelloBean partBean = new bean.HelloBean();%> <% %>使bean成为了类的成员函数的局部变量      out.write("\r\n");      out.write("    ");partBean.setStr("partBean!!");       out.write("\r\n");      out.write("    ");      out.print(partBean.getStr());      out.write("\r\n");      out.write("    \r\n");      out.write("    ");            bean.HelloBean pageBean = null;  //<jsp:useBean id="pageBean" scope="page" class="bean.HelloBean">      pageBean = (bean.HelloBean) _jspx_page_context.getAttribute("pageBean", javax.servlet.jsp.PageContext.PAGE_SCOPE);      if (pageBean == null){        pageBean = new bean.HelloBean();        _jspx_page_context.setAttribute("pageBean", pageBean, javax.servlet.jsp.PageContext.PAGE_SCOPE);        out.write("\r\n");        out.write("    ");      }      out.write("\r\n");      out.write("    \r\n");      out.write("    ");pageBean.setStr("pageBean!!");       out.write("\r\n");      out.write("    ");      out.print(pageBean.getStr());      out.write("\r\n");      out.write("    \r\n");      out.write(" \t");                  bean.HelloBean requestBean = null; //<jsp:useBean id="requestBean" scope="request" class="bean.HelloBean">      requestBean = (bean.HelloBean) _jspx_page_context.getAttribute("requestBean", javax.servlet.jsp.PageContext.REQUEST_SCOPE);      if (requestBean == null){        requestBean = new bean.HelloBean();        _jspx_page_context.setAttribute("requestBean", requestBean, javax.servlet.jsp.PageContext.REQUEST_SCOPE);        out.write("\r\n");        out.write("    ");      }      out.write("\r\n");      out.write("    \r\n");      out.write("    ");requestBean.setStr("pageBean!!");       out.write("\r\n");      out.write("    ");      out.print(pageBean.getStr());      out.write("\r\n");      out.write("    \r\n");      out.write("    ");                  bean.HelloBean sessionBean = null;// <jsp:useBean id="sessionBean" scope="session" class="bean.HelloBean">      synchronized (session) {        sessionBean = (bean.HelloBean) _jspx_page_context.getAttribute("sessionBean", javax.servlet.jsp.PageContext.SESSION_SCOPE);        if (sessionBean == null){          sessionBean = new bean.HelloBean();          _jspx_page_context.setAttribute("sessionBean", sessionBean, javax.servlet.jsp.PageContext.SESSION_SCOPE);          out.write("\r\n");          out.write("    ");        }      }      out.write("\r\n");      out.write("    \r\n");      out.write("    ");sessionBean.setStr("pageBean!!");       out.write("\r\n");      out.write("    ");      out.print(sessionBean.getStr());      out.write("\r\n");      out.write("    \r\n");      out.write("    ");                  bean.HelloBean appBean = null;  // <jsp:useBean id="appBean" scope="application" class="bean.HelloBean">      synchronized (application) {        appBean = (bean.HelloBean) _jspx_page_context.getAttribute("appBean", javax.servlet.jsp.PageContext.APPLICATION_SCOPE);        if (appBean == null){          appBean = new bean.HelloBean();          _jspx_page_context.setAttribute("appBean", appBean, javax.servlet.jsp.PageContext.APPLICATION_SCOPE);          out.write("\r\n");          out.write("    ");        }      }      out.write("\r\n");      out.write("    \r\n");      out.write("    ");sessionBean.setStr("appBean!!");       out.write("\r\n");      out.write("    ");      out.print(sessionBean.getStr());      out.write("\r\n");      out.write("    \r\n");                  out.write("  </body>\r\n");      out.write("</html>\r\n");    } catch (java.lang.Throwable t) {      if (!(t instanceof javax.servlet.jsp.SkipPageException)){        out = _jspx_out;        if (out != null && out.getBufferSize() != 0)          try { out.clearBuffer(); } catch (java.io.IOException e) {}        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);      }    } finally {      _jspxFactory.releasePageContext(_jspx_page_context);    }  }}
	
				
		
原创粉丝点击