JSP基本文法

來源:互聯網
上載者:User
js|文法

一,JSP元素

 1,指令碼元素,包括運算式、程式碼片段(包括內建類)、聲明(成員變數和方法)、注釋(輸出和隱藏)
 2,指令元素,包括page(language,extends,import,session,buffer,autoFlush,isThreadSafe,info,errorPage,isErrorPage,contentType)、include(file)和taglib(uri,prefix)。
 3,動作元素,系統元素:
  jsp:include page=? flush="true"(jsp1.1必須是這個) 可以夾帶jsp:param來添加request
  jsp:forward page=? 可以夾帶jsp:param來添加request
  jsp:param name=? value=?
  jsp:plugin
   type="bean|applet"
   code="classfileName"
   codebase="classfilePathUrl"
   align=?height=? name=?  width=?hspace="與環繞文本之間的水平空白空間的大小" vspace=?
   archive="標識包含對象的Java類的.jar檔案的URL"
   jrevision="標識組件需要的運行時環境JRE版本,預設1.1"
   title="ie使用的對象標題"
   nspluginurl="可以為Netscape下載JRE外掛程式的URL"
   iepluginurl="可以為IE下載JRE外掛程式的URL"
  jsp:params由jsp:plugin封裝一個jsp:action列表 如jsp:param放在中間
  jsp:fallback 載入jsp:plugin失敗時用來提供一個替代的html響應,如一段文本
  jsp:useBean
   id="執行個體名"
   scope="page|request|session|application"
   class="類名,若無type則須有class,若有beanName則須無class"
   beanName="a.b.c|a/b/c.cer,與class不兩立"
   type="有同介面的類名,或類實現的介面名(只能使用介面中的方法)"
  jsp:setProperty name="bean執行個體id" property="bean須有setPropertyName()的方法" [param=?] value=?若不指定value則從request中取與property名字相同或param名字相同的變數,若值為""不執行
  jsp:getProperty name="bean id" property="bean屬性,須有getPropertyName()方法" 該動作元素直接輸出
 4,空白字元:空格(0x20),Tab(0x09),斷行符號(0x0d0a),jsp頁面中的這些符號都會被out.println
 5,逸出字元 %>,,%>,',"都應當用\轉義
 
 
二,隱藏對象

 1,request javax.servlet.HttpServletRequest類型,
  String getParameter(String parameterName);
  java.util.Enumeration getParamerterNames();
  String[] getParameterValues();
 
  Object getAttribute(String name);
  java.util.Enumeration getAttributeNames();
  void removeAttribute(String attributeName);
  void setAttribute(String name, Object object);
 
  javax.servlet.http.Cookie[] getCookies();
 
  java.util.Enumeration getHeaderNames();//訊息頭
  java.util.Enumeration getHeaders(String headerName);
  String getHeader(String headerName);
  int getIntHeader(String headerName);
  long getDateHeader(String headerName);
 
  String getMethod();//要求方法
  String getRequestURI;//協議名和查詢字串之間,無主機名稱
  String getContextPath();//請求的檔案所在的應用程式環境
  String getServletPath();//以contextPath為根,指定小程式或jsp所在的位置
  String PathInfo();//額外的路徑資訊
  String getQueryString();
 
  boolean isSecure();//是否用了HTTPS
  boolean isRequestedSessionIdFromCookie();
  boolean isRequestedSessionIdFromURL();
  boolean isRequestedSessionIdValid();//請求會話的ID是否有效
 
  java.util.Locale getLocale();//客戶同意內容所採取的Locale,取決於AcceptLanguge
  java.util.Enumeration getLocales();
 2,response javax.servlet.http.HttpServletResponse
  int getBufferSize();
  void setBufferSize(int size);//
  boolean isCommitted();//寫入狀態代碼和前序後,響應是否已提交
  void reset();//清除緩衝內的所有資料包括狀態代碼和前序
  void flushBuffer();//強制緩衝中的任何內容寫入客戶
 
  void addHeader(String name,String value);
  void setHeader(String name, String value);
  void addDateHeader(String name, long date);
  void setDateHeader(String name, long date);
  void addIntHeader(String name, int value);
  void setIntHeader(String name, int value);
  boolean containsHeader(String name);
  void setContentType(String type);
  void setLocale(java.uti.Locale, locale);
 
  void sendError(int sc, String msg);
  void sendError(int sc);//狀態代碼和描述性資訊項客戶發送錯誤響應
  void sendRedirect(String location);
 3,pageContext javax.servlet.jsp.PageContext(由具體開發商完成具體化)
  /*int scope:
   pageContext.PAGE_SCOPE
   pageContext.REQUEST_SCOPE
   pageContext.SESSION_SCOPE
   pageContext.APPLICATION_SCOPE
  */
  Object getAttribute(String name);//pageScope變數
  Object getAttribute(String name, int scope);
  Object findAttribute(String name);
  java.util.Enumeration getAttributeNamesInScope(int scope);
  int getAttributeScope(String name);
  void removeAttribute(String name);
  void removeAttribute(String name, int scope);
  void setAttribute(String name, Object object);
  void setAttribute(String name, Object object, int scope);
 
  javax.servlet.jsp.JspWriter getOut();//out
  Exception getException();//exception
  javax.servlet.ServletRequest getRequest();//request
  javax.servlet.ServletResponse getResponse();//response
  javax.servlet.http.HttpSession getSession();//session
  javax.servlet.ServletConfig getServletConfig();//config
  javax.servlet.ServletContext getServletContext();//application
 
  javax.servlet.jsp.JspWriter popBody();
  javax.servlet.jsp.tagext.BodyContent pushBody();//管理taglib內部的嵌套輸出資料流
 
  void forward(String relativeUrlPath);
  void include(String relativeUrlPath);
  void handleException(java.lang.Exception e);
 
 4,session javax.servlet.http.HttpSession
  //安裝cookie
 
  //URL重寫
 
  //SSL會話
 
  Object getAttribute(String attributeName);
  java.util.Enumeration getAttributeNames();
  void setAttribute(String name, Object value);
  void removeAttribute(String name);
 
  long getLastAccessedTime();//最後一次發送本次session相關資料的時間
  /*關於long型時間:指從1970-1-1 00:00:00 開始的毫秒數*/
  void setMaxInactiveInterval(int interval);//秒為單位
  int getMaxInactiveInterval();
  void invalidate();//使會話無效
 
 5,out javax.servlet.jsp.JspWriter
  //錯誤是會引發java.io.IOException
  void clear();//清除緩衝區,response.reset()?
  void clearBuffer();//清除緩衝區當前內容
  void flush();//
  void close();//先重新整理再關閉
  int getBufferSize();
  int getRemaining();//還沒有使用的緩衝區
  boolean isAutoFlush();//page autoFlush屬性
 
  void print(Object object);
  void println(Object object);
 6,application javax.servlet.ServletContext
  String getInitParameter(String name);
  java.util.Enumeration getInitParameterNames();
 
  Object getAttribute(String name);
  void setAttibute(String name, Object object);
  java.util.Enumeration getAttributeNames();
  void removeAttribute(String name);
  //修改的時候,isThreadSafe最好設成false,而且用synchronized()
 
  java.net.URL getResource(String path);
  //URL::getPath()跟application.getRealPath()一樣
  java.io.InputStream getResourceAsStream(String path);//同URL:http://www.alixixi.com/program/a/:openStream();
 
  //RequestDispatcher:工作在伺服器笑程式之間的服務
  javax.servlet.RequestDispatcher getNamedDispatcher(String name);//name 為servlet的名稱
  javax.servlet.RequestDispatcher getRequestDispatcher(String path);//path 為servlet的路徑
 
  void log(String message);
  void log(String message, Throwable throwable);//將一個訊息和棧追蹤記錄到小程式記錄檔中
  String getMimeType(String file);
  String getRealPath(String virtualPath);//URL::getPath
  String getServerInfo();
  int getMajorVertion();
  int getMinerVertion();
 
 7,config javax.servlet.ServletConfig
  String getInitParameter(String name);
  java.util.Enumeration getInitParameterNames();
  String getServletName();
  ServletContext getServletContext();
 8,page javax.servlet.jsp.HttpJspPage
  //通常不是JSP頁面的創作者使用
  javax.servlet.ServletConfig getServletConfig();
  String getServeletInfo();
 9,exception java.lang.Exception
  String getLocalizedMessage();
  String getMessage();
  void printStackTrace();
  void printStackTrace(java.io.PrintStream ps);
  void printStackTrace(java.io.PrintWriter pw);



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.