您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> jsp编程 >> 正文

JSP基本语法

作者:佚名    责任编辑:admin    更新时间:2022-06-22

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