萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> jsp編程 >> JSP基本語法

JSP基本語法

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

copyright © 萬盛學電腦網 all rights reserved