Jsp基础

来源:互联网 发布:sql数据库查询语句 编辑:程序博客网 时间:2024/05/02 05:02

                                                   JSP语法基础

一: JSP的语法结构:

JSP页面结构

Html标记符

声明:变量、方法、类<%! %>

JAVA程序片<%%>

JAVA 表达式<%=%>

JSP标签、分为指令标签和动作标签

注释标签

 

二:声明<%! %>

a.       变量的声明

b.       方法的声明

c.       类的声明

<%! %>中声明的变量、方法、类、在整个jsp文件内都有效!!

 

Java程序段(Scriptle

一个Jsp页面可以有多个Java程序段

语法格式如下:

<%Java程序段       %>

…..

<%Java程序段       %>

Scriptlet示例代码1

<%@ page content="text/html; charset=Shift_JIS"%>
<HTML>
<BODY bgcolor=cyan><FONT size=1>
<% 
    
String name = null; 
    
if (request.getParameter("name") == null) { 
%> 
<%@ include file=
"error.html" %> 
<% 
  } 
else { 
         foo.setName(request.getParameter(
"name")); 
... ... ...
</BODY>
</HTML>

 

四:Java表达式

用户在页面输出信息语法格式如下:

<%= expression     %>

示例:

<%  a=12;b=a; c=a+b; %>

 a=<%= a %><br> 

b=<%= b %><br>

 c=<%= c %><br> 

 

五:注释

HTML注释<!-- 注释内容 -->

JSP注释<%-- 注释内容 --%>

 

<%程序段

   /*多行注释内容

           多行注释内容*/

         程序段

    //单行注释内容

   程序段

 %>

 

六:JSP标签

分为指令标签和动作标签

最常用的指令标签是Page指令和include指令

它们包含在<%@ %>卷标里。

示例:

<%@ page contentType="text/html; charset=Shift_JIS" %> 
<%@ include file=
"/pages/global/jsp/template/html_import.jsp" %>

八种常用Page指令

Page

<% Page

       [language = “java’]

       [import = “{package.class | package.*},…”]

       [contentType = “text/html;charset= Shift_JIS”]

[session=”true | fasle”]

[buffer = “none | 8kb | sizekb”]

[autoFlush = “ture | false”]

[isThreadSafe = “true | false”]

[info = “hello wicresoft”]

%>

 

包含指令include

静态嵌入的文件其实是主体文件的一部分,page指令的约束是有效的。

 

作用:分块,增强Jsp页面开发的管理性

 

七:JSP标签:动作标签

Include

Param

Forwoard

Plugin

useBean

 

<jsp:include>标签

例如:

<jspinclude page = “/friend/info/info.txt” %>

<jsp:include page = “hello.html”%>

<jsp:include page = “welcome.jsp’ %>

 

包含指令与包含标签的区别:

<%@ include file = “文件名”%>

<jsp:include page = “文件名“%>

指令标签的“包含指令include,是将静态嵌入文件作为文件的一部分,所以文件和子文件其实是一一体。

动作标签的“include“,是动态的嵌入文件,子文件不必考虑主文件的属性。

指令标签在编译是就将子文件载入

动作标签在运行是,才将文件载入

 

动作标签:forward

JSP语法格式如下:

JSP 语法格式如下:

1<jsp:forward page={"relativeURL" | "<%= expression %>"} />

2<jsp:forward page={"relativeURL" | "<%= expression %>"} >

              <jsp:param name="parameterName" value="{parameterValue | <%= expression %>}" />

             [<jsp:param … />]

   </jsp:forward>

“[<jsp:param … />]”指可以有多个“<jsp:param/>”标记。)

 

<jsp:forward>例子 

<%@ page contentType="text/html; charset=Shift_JIS" %><html> 
<head> 
<title>test</title> 
</head> 
<body> 
<jsp:forward page=
"forwardTo.jsp"
<jsp:param name=
"userName“ value="riso"/> 
</jsp:forward> 
</body> 
</html> 

 

动作标签:plugin

使用“<jsp:plugin>“插入一个applet bean,必要的话还可以下载一个Java插件用与执行他

 

Jsp语法格式如下:

<jsp:plugin type="bean | applet" code="classFileName" codebase=“classFileDirectoryName“
… … 
太多了,就不写了。 

 

 

动作标签useBean

Jsp语法格式如下:


JSP 
语法格式如下: 
<jsp:usebean 
id=
"beaninstancename" 
scope=
"page|request|session|application" 
class="package.class" | 
type=
"package.class" | 
class="package.class" type="package.class" | 
beanname=
"" type="package.class"  
 /> 

 

.JSP内置对象

Jsp程序中8个默认的内置对象

       对于他们而言,不用声明就可以直接使用,这8个对象分别是requestresponsepageContextsessionapplicationoutconfigpage.

内置对象

类型

代表内容

范围

Request

依赖协议的java.servlet.ServletRequest 子类(例如,javax.servlet.HttpServletRequest

触发服务调用的请求

request

response

依赖协议的java.servlet.ServletResponse 子类(例如,javax.servlet.HttpServletResponse

对请求的应答

page

pageContext

Javax.servlet.jsp.PageContext

JSP 的页面上下文

page

session

Javax.servlet.http.HttpSession

为请求的客户创建的session对象

session

application

Javax.servlet.ServletContext

servlet 配置对象获得的 servlet 上下文(如在 getServletConfig() getContext()的调用中)

application

out

Javax.servlet.jsp.JspWriter

向输出流写入内容的对象

page

config

javax.servlet.ServletConfig

JSP ServletConfig

page

page

java.1ang.Object

实现处理本页当前请求的类的实例

page

 

 

Rquest对象的方法

方法

描述

getAttribute

返回请求的给出名字的属性的值

getCharacterEncoding

返回为请求的输入进行编码的字符集合

getContentLength

返回请求实体数据的大小

getContenType

返回请求实体数据的 InternetMedia 类型

getlnputStream

返回在请求体中读取二进制数据的输入流

getParameter

返回包含指定参数的单独值的字符串

getParameterName

返回本次请求的参数名字

getParameterValues

返回作为字符串列举的指定参数的值

getProtocol

返回请求的协议和版本号

getReader

返回从请求体中读取的文本的缓存数据

getRealPath

返回运用替换规则从虚拟地址中获得的实际地址

getRemoteAddr

返回发送请求的接口程序的 IP 地址

getRemoteHost

返回发送请求的接口程序的完全限定的主机名

getScheme

返回发出请求的 URL 的机制

getServerName

返回接收请求的服务器的主机名

getServerPort

返回接收请求的端口

 

 

 

response对象的方法

getCharacterEncoding

返回用于MIME编码的字符集合

getCharacterEncoding

返回用于书写二进制应答数据的输出流

getWriter

返回用于格式化文本应答的打印程序

setContentLength

为应答设置内容长度

setContentType

为应答设置内容类型

addCookie

添加一个Cookie对象,用来保存客户端的用户信息

addHeader

添加HTTP文件头(Header),将会传送到客户端

containsHeader

判断指定的HTTP文件头是否存在

sendError

向客户端发送错误信息

setHeader

设定指定名字的HTTP文件头的值

sendRedirect

重定向客户端的地址

8.3session对象

 

sessionJSP程序中是一个内置的对象
  每一个客户端都有一个session对象用来存放于这个客户端相关的数据。
  在JSP的程序中,通常不用任何代码,就可以直接使用session对象。不过为了确认,可以加入以下代码,以表示需要启动session功能。
  <%@page session=true
%>
  如果设置上述的session值为false,则说明禁用session功能。

  session对象的类为HttpSession,它提供了很多使用的方法。

 

Session对象的方法

getCreationTime

返回会话创建的时间

getId

返回会话标识符

getLastAccessTime

返回客户端上一次发送携带会话账号的时间

getSessionContext

返回会话相连的上下文

getValue

返回和应用层数据中指定名字相联系的对象

getValueNames

返回和会话相连的应用层数据对象的名字

invalidate

使会话无效,并将其从上下文中移出

isNew

检查是否客户端参加了会话

putValue

将指定的对象和使用指定名字的会话应用层数据相连

removeValue

移去和会话应用层数据中指定名字相连的对象

 

8.4 application 对象的方法

对象

含义

getAttribute

Object对象的形式返回对应名称的application对象的属性值

getAttributeNames

Enumeration数据形式返回所有application对象的属性名称

getInitParameter

返回application某个属性的值

getServerInfo

获得当前版本的Servlet编译器的信息

setAttribute

设置某个application对象的某个属性值

 

8.5out  对象

 out对象用于输出数据,它可以是javax.servlet.jsp.JspWriter的一个实例。out对象的范围是page
  从java.io.Writer拓展而来的公共抽象类JspWriter效仿了java.io.BufferedWriterjava.Io.PrintWriter中的某些功能。但是,不同之处在于它会在打印方法中抛出(throw) java.Io.IOException异常,而PrintWriter不这样做。
  JSP中的out对象就是这种类型的。如果page指令选择了autoflush="true",那么当出现由于当前的操作不清空缓存而造成缓冲区溢出的情况时,这个类的所有I/O操作会自动清空缓冲区的内容。如果autoflush="false",那么当操作造成了缓冲区溢出时,这个类的所有的I/O操作将抛出一个IOException