Jsp语法概要

简介:
1. 声明tag <%!     %>
     在声明tag范围里,只可以声明变量和方法。且仅在一个页面内有效。
    <%!
           private String str = "成功!";

           public void  add() {
                  ......
           }
    %>
    当每个页面都用到一些共同的声明,最好把它们写成一个单独的文件,用<%@ include %>或<jsp:include >元素包含到所需要的页面。

2. 程序段Scriptlet <%     %>
      Scriptlet 范围内部的代码就是我们平时写的有效代码,可以包括变量声明,初始化等等。
      <% 
              String userName = null; 
              if (request.getParameter("username") == null) { 
     %> 
                <%@ include file="error.html" %> 
     <% 
              } else { 
                       userBean.setUserName(request.getParameter("username")); 
              }
     %>
 
3. 表达式tag <%=     %>
     表达式tag内的元素可以是变量,有返回值的方法,以及计算表达式总之,相当于System.out.print(元素转换为String的结果)。和声明tag,程序段Scriptlet不同的是,表达式tag的元素是不需要分号“;“结尾的。
      Date : <%= new java.util.Date() %>
 
4. 隐藏注释tag <%--    --%>
      此tag相当于平常用的/*  */,在JSP编译时被忽略掉,而且不会显示在客户的浏览器中。
 
5. page指令
      <%@ page 
      [ language="java" ] 
      [ extends="package.class" ] 
      [ import="{package.class | package.*}, ..." ] 
      [ session="true | false" ] 
      [ buffer="none | 8kb | sizekb" ] 
      [ autoFlush="true | false" ] 
      [ isThreadSafe="true | false" ] 
      [ info="text" ] 
      [ errorPage="relativeURL" ] 
      [ contentType="mimeType [ ;charset=characterSet ]" | "text/html ; charset=GBK18030" ] 
      [ isErrorPage="true | false" ] 
       %> 
       <%@ page %>指令作用于整个JSP页面,同样包括静态的包含文件。但是<% @ page %>指令不能作用于动态的包含文件,比如 <jsp:include>。 

       在一个页面中可以用上多个<% @ page %>指令,但是其中的属性只能用一次,不过也有个例外,那就是import属性,import属性能使用几次。 
Example:
        <%@ page import="java.util.*, java.lang.*" %> 
        <%@ page buffer="5kb" autoFlush="false" %> 
        <%@ page errorPage="error.jsp" %>
 
6. include动作指令
       <jsp:include page="{relativeURL | <%= expression%>}"   flush="true|false" /> 
       or 
        <jsp:include page="{relativeURL | <%= expression %>}"   flush="true|false" > 
            <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />
        </jsp:include>
        or
         <%@ include file|page="relativeURL" flush="true|false" />
  
        两者区别:
        <jsp:include page="..."/> 运行时插入被 include 文件 
        <%@ include file="..." %> 或<%@ include page="..." %>编译时插入被 include 文件
7. forward动作指令
       <jsp:forward page="relativeURL"/>  
       or
       <jsp:forward page="relativeURL">
            <jsp:para name="parameterName" value="{parameterValue | <%= expression %>}"/>
       </jsp:forward>
forward动作指令用来重定向网页,即从当前网页的forward动作指令处转向执行另一个网页程序。
        页面之间的重定向也可以在程序段Scriptlet 中使用 response.sendRedirect("relativeURL")方法来实现。
        forward与重定向是有差别的,使用forward,是服务器端内部进行,所以浏览器的地址栏上的url没有变化;而重定向是在浏览器进行,地址栏的url将改变为相应的relativeURL。

8. usebean动作指令,setProperty动作指令
          见 Jsp使用JavaBean
 
9. Taglib  tag <% @taglib  %>
            <%@ taglib uri="URIToTagLibrary" prefix="tagPrefix" %>
 
10.JSP的内置对象
        JSP的内置对象在JSP页面中无须声明就可以直接使用,内置对象有:request、response、session、application、out、config、pageContext。这些内置对象是Web开发中最为常用的对象。
       request对象可以获取客户端提交的数据,如表单中的数据、网页地址后带的参数等。
 request对象常用方法
getAttribute(String name)
获取指定的属性值,若不存在该属性,则返回null值
getAttributenames()
枚举request对象的所有数据
getCookies()
获取客户端的Cookie对象,返回值为Cookie数组
getParameter(String str)
获取指定名称的客户端提交的参数的值
getParameterNames()
枚举客户端提交的参数的名称
getParameterValues(String str)
返回指定名称的客户端提交的参数值数组,常用于checkBox
setCharacterEncoding(String str)
设置request对象的编码格式

       response对象可用来向客户端输入数据。
response对象常用方法
sendRedirect()
进行页面重定向
setContentType(String str)
设置MIME
setCharacterEncoding(String str)
设置编码格式
addCookie(Cookie name)
添加Cookie对象,以保存客户端的用户信息,Cookie对象的值只能是字符串

 request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值 (只管post方式提交的问题///get需在server.xml中的:
      <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"  URIEncoding="GBK" />
)加入以上粗体,解决post和get之间乱码问题

      response.setContentType("text/html;charset=gb2312")是设置页面中为中文编码
 
      前者(request)是设置动态文字(参数,数据库),后者(response)设置页面静态文字
       response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码. 
       response.setCharacterEncoding设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置.与response.setContentType相同的是,调用此方法,必须在getWriter执行之前或者response被提交之前.
     常见的MIME还有image/gif(GIF图片)、image/bitmap(BMP图象)、text/plain(文本文档TXT)、text/vnd.wap.wml(手机WAP页面)等。

      session对象用来保持在服务器与一个客户端之间需要保留的数据,当客户端关闭网站(或称为系统)的所有网页时,session变量会自动清除。
session对象常用方法
getAttribute(String name) 获取指定的session数据对象
setAttribute(String name, Object value) 设置指定session对象中的数据对象的值
getAttributenames() 枚举session对象的所有数据
getId() 获取当前session对象的ID号
isNew()  判断是否为新用户
invalidate()  使session对象实效(常用于注销操作)
removeAttribute(String name)  删除指定的session数据对象
 
       application对象可用来提供一些全局的数据、对象,一旦创建(在服务器开始提供服务时,即第一次被访问时application对象就会被创建),就会一直保持到服务器关闭服务为止。
 application对象常用方法
getAttributenames()
枚举 application对象的所有数据
getAttribute(String name)
获取指定的 application数据对象
setAttribute(String name, Object value)
设置指定 application对象中的数据对象的值
 
       pageContext用来管理属于JSP中特殊可见部分中已命名对象的访问。
 
       out对象用来向客户端浏览器输出数据。
 out对象常用方法
clear()
清除输出缓冲区的数据,对清除的数据不作处理 
clearBuffer()
清除输出缓冲区的数据,将清除的数据输出到客户端
close()
关闭输出流
flush()
输出缓冲区的数据内容
newLine()
输出换行字符
print()/  println()

       config对象是JSP配置处理程序的句柄,在JSP页面范围内有效。

      在多个JSP页面之间传递参数,可以使用request, session, application对象的setAttribute(),getAttribute()方法进行参数的传递。

共享数据在web应用中的范围
page
       共享数据的有效范围是用户请求访问的当前JSP网页
request
       共享数据的有效范围是用户请求访问的当前Web组件,以及和当前Web组件共享同一个用户请求的其他Web组件。
       例如用户请求访问的是JSP网页,那么该JSP网页的<%@ include>指令以及 <forward>标记包含的其他JSP文件也能访问共享数据。存放在HttpServletRequest对象中。
session
       共享数据的有效范围是整个HTTP会话的生命周期。存放在HttpSession对象中。
application
       共享数据的有效范围是整个Web应用的生命周期,Web应用中的所有Web组建都能共享。存放在ServletContext对象中。


这里有Jsp, servlet, JSF等培训资料,对于初学者来说,可能不太适合,倒适合用来复习和再学习。

本文转自 Icansoft 51CTO博客,原文链接: http://blog.51cto.com/android/108344
相关文章
|
3月前
|
自然语言处理 前端开发 搜索推荐
探索研究JSP 语法
【9月更文挑战第30天】
29 1
|
4月前
|
JavaScript 前端开发 Java
JSP基本语法
这篇文章详细介绍了JSP的基本语法,包括脚本标识、注释、指令标识和动作标识的使用方法和语法格式。
JSP基本语法
|
7月前
|
Java
JSP 教程 之 JSP 语法 13
JSP教程介绍了JSP的基础语法,包括Java的for、while和do...while循环。示例展示了如何使用这些循环控制字体大小。for循环代码显示不同大小的&quot;百度&quot;,while循环版本则因初始 fontSize 为0而多输出一行。
38 2
|
7月前
|
Java
JSP 教程 之 JSP 语法 15
JSP教程简述基础语法,包括支持的Java运算符,如一元、可乘性、可加性等,遵循特定结合性。同时,JSP有布尔、整型、浮点型、字符串和Null字面量。
39 1
|
7月前
|
XML Java 数据格式
JSP 教程 之 JSP 语法 3
**JSP语法简述:**了解JSP声明,用于声明变量和方法,如`&lt;%! int i = 0; %&gt;`, 先声明后使用。也可用XML格式 `&lt;jsp:declaration&gt;...&lt;/jsp:declaration&gt;`。
50 4
|
7月前
|
Java
JSP 教程 之 JSP 语法 14
`JSP语法基础涵盖Java运算符:从后缀()[] .到逻辑&&和||,包括一元++、-,算术* / %,比较&gt; &lt;,位操作符,赋值= +=等,以及条件?:,遵循特定结合性。`
38 1
|
7月前
|
Java
JSP 教程 之 JSP 语法 2
JSP教程简述基础语法,包括解决中文编码问题。在JSP文件头部添加`&lt;%@ page ... charset=UTF-8 %&gt;`和`&lt;meta charset=&quot;utf-8&quot;&gt;`确保中文显示正常。示例代码展示如何输出&quot;Hello World!&quot;及访问者的IP地址。
34 4
|
7月前
|
XML Java 应用服务中间件
JSP 教程 之 JSP 语法 1
JSP教程介绍了基础语法,包括脚本程序的使用,允许插入Java代码。示例展示了一个简单的&quot;Hello World&quot;页面,显示用户IP。要运行,需确保Apache Tomcat已安装并配置好,将代码保存为hello.jsp,放在指定目录下,通过http://localhost:8080/hello.jsp访问。
45 4
|
6月前
|
前端开发 Java
杨老师课堂之jsp基础语法知识理论基础介绍
杨老师课堂之jsp基础语法知识理论基础介绍
23 0
|
7月前
|
Java API
JSP 教程 之 JSP 语法 11
JSP教程介绍了基础语法,包括Java语言的全面支持。示例展示了如何使用if...else和switch...case控制流语句。if...else示例显示非周末情况,switch...case示例根据变量`day`输出对应星期,当`day`为3时输出“星期三”。
43 1