JSP基本文法

來源:互聯網
上載者:User

  一,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::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.