java 操作jsp元素_JavaWeb学习笔记--2.jsp指令元素、动作元素、内置对象

目录:

1.1 page指令 :page指令有13种属性

1.2 include指令:include指令有1种属性,为file。(注意和的区别)

1.3 taglib指令:taglib指令有2种属性,prefix、uri

2.1 :

2.2

2.3 :

2.4 :

2.5 :

2.6 :

一.指令

指令是从JSP向web容器发送的消息,它用来设置页面的全局属性,

格式

指令名有 page include taglib三种

1.1 page常用指令表

属性

定义

language=”ScriptLanguage”

extends=”className”

import=”importList”

session=”true|false”

buffer=”none|size in kb”

autoFlush=”true|false”

isThreadSafe=”true|false”

errorPage=”url”

isErrorPage="true|false”

contentType="text/html;charset=gb2312”

pageEncoding=”ISO-8859-1”

isELLgnored=”true|false”

指定JSP Container用什么语言编译,目前只支持JAVA语言。默认为java

定义此JSP网页产生的Servlet是继承哪个父类

指定导入的java包

决定此页面是否使用session对象。默认为true

决定输出流(Input stream)是否有缓冲区。默认为8kb

决定输出流缓冲区是否自动进行强制输出。true则缓冲区满时正常输出,false缓冲区满会发生异常

是否支持多线程。默认为true  

如果此页发生异常,网页会重新指向一个url

表示此页面是否为错误处理页面。默认为false

表示MIME类型和JSP的编码方式。默认编码格式为 ISO-8859-1

指定网页的编码方式。

表示是否在此JSP页面中EL表达式。true则忽略,false则支持。默认false

1.2 include指令

用于在JSP文件中插入一个包含文本或代码的文件,在转换成Servlet时,将指定的文件和当前的文件进行合并。包含的文件可以是一个HTML文件、文本文件、JSP文件。使用include指令可以将一个网页分成几个不同的模块进行编辑。

语法格式:

注意include指令只有一个属性值file

例子:

文本文件

这里"content"和index.jsp在同一层文件夹,因此url直接为"content"

content内容:this.is.a.text

页面运行结果:

包含文本文件,内容如下:

this.is.a.text

注意:和的区别

1.3 taglib指令

用来声明次jsp文件使用了自定义标签。JSP中可以使用根据业务需要定义的标签,这样比较便于页面功能的实现。同时引用所指定的标签库并设置标签库的前缀。

格式如下

taglib指令包含两个属性,分别为uri和prefix

其中uri属性用来指定标签库的存放位置。prefix属性指定该标签库使用的前缀。

使用标签库

解释:代码第3行使用taglib指令,表示在该jsp文件中将使用JSTL的核心标签库同时指定该标签库的前缀为c。第10行通过使用JSTL核心标签库的标签输出"hello world"

========================================================================

二.JSP动作组件

是一些xml语法格式的标记,被用来控制Web容器的行为

:

:

:

:

:

在页面被请求的时候引入一个文件 

在动作组件中引入参数信息  

把请求转到一个新的页面   

设置JavaBean的属性

输出某个JavaBean的属性

寻找或者实例化一个JavaBean

2.1动作元素

用来包含静态和动态的文件。如果包含的为静态文件,那么只是单纯的加到JSP页面中,不会进行任何处理。如果包含的文件为动态文件,那么会先处理,然后将结果加到JSP页面中

语法格式: 其中flush指定缓冲区满时,是否进行清空。

注意:和的区别

(a)使用

index.jsp

包含一个含JSP代码的文本文件

content2.txt

页面结果:

使用include动作元素包含一个含有JSP代码的文本文件

当前时间与日期:Sun Jun 28 13:34:22 CST 2015

(b)使用

index.jsp

包含一个含JSP代码的文本文件
当前时间与日期:

页面结果:

使用include动作元素包含一个含有JSP代码的文本文件

当前时间与日期: 

可见,使用把txt文件直接输出了。因为动作动态地包含文件。

如果被包含的文件是静态的,则直接包含内容,不会进行处理。

如果被包含的文件是动态的,则先执行,然后包含结果并进行显示。

在上例中,content2.txt是静态文件,里面的jsp代码没有执行,而是原样输出。

小结:

对于(a),使用指令元素是将所有的被包含文件包含进来之后,再进行编译等处理,可以理解为“先包含再处理”

对于(b),使用动作元素师将所有的代码处理完成后,在将处理完成的代码结果包含进行,可以理解为“先处理再包含”

======================================================

2.2 使用forward动作组件时的问题

动作元素用来转移用户的请求,使得用户请求的页面从一个页面跳转到另一个页面。这种跳转为服务端的跳转,因此地址栏不会发生变化

语法格式: 只有page一个属性

forward

if(i>0.5){

%>

}else{

%>

}

%>

如果

写成不在一行的

则出错。

原因:当标签没有参数时,的配对标签不能换行。

======================================================

2.3 param动作组件

param动作组件用于传递参数信息,必须配合include或forward动作组件一起使用

语法如下:index.jspparam与include结合(与forward结合和include类似)

param

加载文件效果

add.jsp

String start=request.getParameter("start");

String end=request.getParameter("end");

int s = Integer.parseInt(start);

int e = Integer.parseInt(end);

int sum =0;

for (int i = s ; i <=e ; i++){

sum+=i;

}

%>

从到的连续和是

结果效果

加载文件效果

从0到100的连续和是5050

======================================================

2.4 plugin动作组件

用来在JSP中嵌入java插件。语法格式:

type="bean|applet"

name="applet名称"

code="java类名"

codebase="java类所在目录"

align="对齐方式"

height="高度"

width="宽度"

hspace="水平间距"

vspace="垂直间距"

archieve="预先加载的类列表"

jreversion="jre版本"

iepluginurl="URL"

nspluginurl="URL"

>

index.jsp

plugin动作组件

Plugin tag OBJECT or EMBED not supported by browser.

Circle.java

public class Circle extends Applet{

public void paint(Graphics g){

g.setColor(new Color(255,0,255));

g.fillArc(0, 0, 50, 50, 0, 360);

}

}

========================================================================

三.JSP内置对象

内置对象为Servlet API的类或接口的实例,JSP规范已经将内置对象完成了初始化,可以直接使用

包含request、response、out、session、application、config、pagecontext、page、exception

解释: 参考 虽然我很菜的博客  http://blog.csdn.net/titilover/article/details/6800782

摘自:李刚 著 《轻量级 Java EE企业应用实战 Struts2+Spring+hibernate整合开发》

(1)application:javax.servlet.ServletContext的实例,该实例代表JSP所属的WEB应用本身,可用于JSP页面,或者Servlet之间交换信息。常用的方法有getAttribute(String attName), setAttribute(String attName,String attValue)和getInitParameter(String Param)等。

(2)config:javax.servlet.ServletConfig的实例,该实例代表JSP的配置信息,常用的方法有getInitparameter(String paramName)及getInitParametername()等方法。事实上,JSP页面通常无需配置,也就不存在配置信息。因此该对象更多地在Servlet中有效。

(3)exception:java.lang.Throwable的实例,该实例代表其他页面中的错误和异常。只有当页面时错误处理页面,即编译指令的isErrorPage属性是true,该对象才可以使用。常用的方法有getMessage()和printStackTrace()等。

(4)out:javax.servlet.jsp.JspWriter的实例,该实例代表Jsp页面输出流,用于输出内容,形成HTML页面。

(5)page:代表页面本身,通常没有太大的用处,也就有是Servlet中的this,其类型就是生成Servlet。

(6)pageContext:javax.servlet.jsp.PageContext的实例,该实例代表JSP页面的上下文,使用该实例可以访问页面中的共享数据。常用的方法getServletContext()和getSevletConfig()等。

(7)request:javax.servlet.http.HttpServletRequest的实例,该对象封装了一次请求,客户端的请求都被封装在该对象里。这是一个常用的对象,获取客户端请求参数必须使用该对象。常用的方法有:getParameter(String paramName),getParamValues(String paramName),setAttribute(String attributeName,String attributeValue),getAttribute(String attributeName)和setCharacterEncoding(String env)等。

(8)response:javax.servlet.http.HttpServletResponse的实例,代表服务器对于客户端的响应。通常,很少使用该对象直接响应,输出响应对象使用out对象,而response对象常用于重定向。常用的对象有sendRedirect(java.lang.String location)等。

(9)session:javax.servlet.http.HttpServlet的实例,该对象代表一次会话。从客户端浏览器和站点建立连接起,开始会话,直到关闭浏览器结束会话。常用的方法有getAttribute(String attName),setAttribute(String attName,String attValue)等

3.1 request对象

最常用的对象,代表的是来自客户端的请求

主要方法

getAttribute(String name)  :返回由name指定的属性值

getAttributeNames() :返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies() :返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding()  :返回请求中的字符编码方式

getContentLength() :返回请求的Body的长度实例

getInputStream() :返回请求的输入流,用于获得请求中的数据

getMethod() :获得客户端向服务器端传送数据的方法

getParameter(String name)  :获得客户端传送给服务器端的有name指定的参数值

getParameterNames()  :获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(String name)  :获得有name指定的参数的所有值

getProtocol()  :获取客户端向服务器端传送数据所依据的协议名称

getQueryString()  :获得查询字符串

getRequestURI()  :获取发出请求字符串的客户端地址

getRemoteAddr()  :获取客户端的IP地址

getRemoteHost()  :获取客户端的名字

getSession([Boolean create])  :返回和请求相关Session

getServerName()   :获取服务器的名字

getServletPath()  :获取客户端所请求的脚本文件的路径

index.jsp

My JSP 'index.jsp' starting page


客户使用的协议是:

out.println(protocol);

%>

姓名:

选出你喜欢的水果:

苹果

西瓜

桃子

葡萄

getParam.jsp

My JSP 'getParam.jsp' starting page

你好!

${param.Username}

你好!

Name = request.getParameter("Username");

String stars = new String("你喜欢的水果有:");

String[] paramValues = request.getParameterValues("fruit");

for(int i = 0 ; i

String x = new String(paramValues[i].getBytes("ISO-8859-1"),"GBK");

stars=stars+x+" ";

//stars=stars+paramValues[i].getBytes("ISO-8859-1")+" ";

}

%>

3.2 application对象

该对象代表web应用本身,整个web应用共享一个application对象,该对象主要用于在多个JSP页面或者Servlet之间共享变量。application通过setAttribute()方法将一个值放入某个属性,该属性的值对整个Web 应用有效,因此Web 应用的每个JSP 页面或Servlet都可以访问该属性,访问属性的方法为getAttribute 。

application对象常用方法

方法名称

方法说明

getAttribute(String name)

setAttribute(String name)

getattributeNames()

getInitParamter(String name)

getServerInfo()

getMimeType()

getRealPath()

返回由name指定名字的application对象属性的值,这是一个Object对象

用object来初始化某个属性值,该属性值由name指定

返回所有application对象属性的名字,结果是一个枚举类的实例

返回application初始化参数属性值,属性由name指定

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

获取组件MIME类型

获取组件在服务器上的真实路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值