当前位置:文档之家› JSP内置对象详解

JSP内置对象详解

JSP内置对象详解
JSP内置对象详解

JSP脚本中的九个内置对象

JSP脚本中包含九个内置对象,这九个内置对象都是Servlet API接口的实例,只是JSP规范对它们进行了默认初始化(由JSP页面对应的Servlet的_jspService()方法来创建这些实例)。

内置对象名

所属类型有效范围说明

application javax.servlet.ServletContext application 该对象代表应用程序上下

文,它允许JSP页面与包括

在同一应用程序中的任何

Web组件共享信息

config javax.servlet.ServletConfig page 该对象允许将初始化数据传

递给一个JSP页面exception https://www.doczj.com/doc/1c15608675.html,ng.Throwable page 该对象含有只能由指定的

JSP“错误处理页面”访问

的异常数据

out javax.servlet.jsp.JspWriter page 该对象提供对输出流的访问page javax.servlet.jsp.HttpJspPage page 该对象代表JSP页面对应

的Servlet类实例pageContext javax.servlet.jsp.PageContext page 该对象是JSP页面本身的

上下文,它提供了唯一一组

方法来管理具有不同作用域

的属性,这些API在实现

JSP自定义标签处理程序时

非常有用

request javax.servlet.http.HttpServletRequest request 该对象提供对HTTP请求数

据的访问,同时还提供用于

加入特定请求数据的上下文response javax.servlet.http.HttpServletResponse page 该对象允许直接访问

HttpServletReponse对象,

可用来向客户端输入数据session javax.servlet.http.HttpSession session 该对象可用来保存在服务器

与一个客户端之间需要保存

的数据,当客户端关闭网站

的所有网页时,session变

量会自动消失

application (javax.servlet.ServletContext的实例)

application对象代表Web应用本身,因此使用application来操作Web应用相关的数据。application通常有如下两个作用:

?在整个Web应用的多个JSP、Servlet之间的共享数据。通常被定义为数据字典来使用。通常在一处实现application.setAttribute(“name”,value);来定义一个变量,在JSP中使用application.getAttribute(“name”);获取值;在Servlet中使用一个实例的ServletContext 对象sc.getAttribute(“name”);获取值。

我们可以把application理解成一个Map对象,任何JSP、Servlet都可以把某个变量放入application中保存,并指出一个属性名;而该应用的其他JSP、Servlet就可以根据该属性名来得到这个变量。由于application对象代表整个Web应用,所以只应该把Web应用的状态数据放入到application中。

?访问Web应用的配置参数,在web.xml中配置类似的参数,该标签是

下的子标签。即

name

value

在JSP中可以通过application.getInitParameter(“name”);取得配置的参数,在Servlet中可以先实例一个ServletContext对象即:

final javax.servlet.ServletContext application;

然后就可以取值了,即:

application = pageContext.getServletContext();

application.getInitParameter("name");

这里通常被用作普通java Web开发中数据库用户名,密码的获取时使用,因为在项目开发用的密码不一定和部署在服务器上的密码一致,但是把它写到这里便于修改这些有关项目的参数。

config (javax.servlet.ServletConfig的实例)

config对象代表当前的JSP配置信息,但JSP页面通常无需配置,因此也就不存在配置信息,该对象在JSP页面用的比较少,但在Servlet中用处则相对较大,因为Servlet需要在web.xml文件中进行配置,可以指定配置参数。但是如果说要为某个JSP配置一些参数的话,也是跟配置Servlet一样需要在web.xml中配置,也就说吧JSP当成Servlet配置

Configure

/getcontextparam.jsp

conn

connnn

Configure

/configure

其中这里“/getcontextparam.jsp”是表明把某个JSP配置成Servlet。在地址栏中访问时要输入http://localhost:8080/test/configure(url-pattern中内容)

在JSP中获取参数时使用config.getInitParameter("conn")即可。

exception (https://www.doczj.com/doc/1c15608675.html,ng.Throwable的实例)

exception对象是Throwable的实例,代表JSP脚本中错误和异常,是JSP异常机制的一部分。在JSP脚本中无需处理异常,即使该异常是checked异常,事实上,JSP脚本包括的所有的可能出现的异常都可交给错误页处理。异常处理结构如下。

try{

//代码处理段

}

catch(Throwableexception){

//异常处理段

}

其中代码处理段交给普通的JSP脚本,异常处理段是由异常处理界面负责的。在异常处理段,可以看到有个异常对象,该对象就是异常处理对象exception。看一下变异后的servlet 文件中有一段:

if(_jspx_page_context != null) _jspx_page_context.handlePageException(t);

else throw new ServletException(t);

这表明JSP脚本和静态的HTML部分都会转换成_jspService()方法里的可执行性代码,既然如此,那么JSP就根本不需要处理异常,因为这一切都是属于try里面的内容。一旦捕获到JSP页面的异常,并且该页面的page指令指定了errorPage属性

(_jsp_page_context!=null),则请求forward到errorPage属性指定的页面,否则使用系统页面来输出异常信息。

如果把某一页面指定为errorPage页面,那么在编译成Servlet时他也就具有了exception 内置对象。也就是说普通的页面不会有exception对象,错误页才会有。在错误页面中可以通过

<%=exception.getClass()%>//获取异常类型

<%=exception.getMessage()%>//获取异常信息

out (javax.servlet.jsp.JspWriter的实例)

out对象代表一个页面输出流,通常用于在页面上输出变量值及常量。一般在使用输出表达式的地方都可以使用out对象达到同样的效果。out是个页面输出流,负责输出页面的内容,但是用out需要编写更多的代码。<%= %>表达式的本质就是out.write(…);

对于页面上的某个html标签来讲

如果使用了out即:

<%

out.println(“

”);

out.println(“

”);

out.println(“

”);

out.println(“

”);

%>

page (javax.servlet.jsp.HttpJspPage的实例)

page代表页面本身,通常没有太大的用处。也就是Servlet中的this,其类型就是生成的Servlet类,能用page的地方就可以使用this。

pageContext (javax.servlet.jsp.PageContext的实例)

该对象代表JSP页面的上下文,使用该对象可以访问页面中的共享数据。使用pageContext 可以访问page、request、session、application范围的变量。pageContext时PageContext 类的实例,它提供了两个方法访问四个范围的变量

1getAttribute(https://www.doczj.com/doc/1c15608675.html,ng.String name);

2getAttribute(https://www.doczj.com/doc/1c15608675.html,ng.String name, int scope)

?PageContext.PAGE_SCOPE:对应page范围--->1

?PageContext.REQUEST_SCOPE:对应request范围--->2

?PageContext.SESSION_SCOPE:对应session范围--->3

?PageContext.APPLICATION_SCOPE:对应application范围--->4

与之相对应的也有两个对应的setAttribute()方法。

3

4<%

5pageContext.setAttribute("page", "page's");

6pageContext.setAttribute("request1", "page's",pageContext.REQUEST_SCOPE);

7request.setAttribute("request", "request's");

8

9out.println(pageContext.getAttributesScope("page"));

10out.println(pageContext.getAttributesScope("request1"));

11out.println(pageContext.getAttributesScope("request"));

12

13%>

14

15

结果是:1 2 2

除了可以获取4个范围的变量的值以外还可以获取其他的内置对象:

?ServletRequest getRequest();获取request对象

?ServletResponse getResponse();获取response对象

?ServletConfig getServletConfig();获取config对象

?ServletContext getServletContext();获取application对象

?HttpSession getSession();获取session对象

一旦在JSP、Servlet中获取的了pageContext对象,就可以通过上面的方法获得其他的内置对象。

16<%

17pageContext.getRequest();

18pageContext.getResponse();

19pageContext.getServletConfig();

20pageContext.getServletContext();

21pageContext.getSession();

22

23%>

session(javax.servlet.http.httpSession的实例)

session对象是一个非常常用的对象,这个对象代表一次会话。一次会话的含义是从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止。通常一个没有任何操作session 的生命周期是30分(可在Tomcat下web.xml中修改)。

-30

session通常用于跟踪用户的会话信息,如判断用户是否登录、注销等信息。每个session 对象都表示不同的访问用户,因为它是javax.servlet.http.httpSession的接口的实例化对象,所以session只能应用在HTTP协议中。HttpSession接口的常用方法有:

1. public String getId();取得Session Id

2. public long getCreatTime();取得session的创建时间

3. public longgetLastAccessedTime();取得session的最后一次操作的时间

4. public Boolean isNew();判断是否是一个新的session

5. public void invalidate();让session失效

6. public EnumerationgetAttributeNames();获得全部属性名称

24<%@ page language="java"contentType="text/html; charset=utf-8"

25pageEncoding="utf-8"%>

26

"https://www.doczj.com/doc/1c15608675.html,/TR/html4/loose.dtd">

27

28

29

30Insert title here

31

32

33<%

34

35out.println("ID"+session.getId());

36out.println("IDLength"+session.getId().length());

37out.println("CreateTime"+session.getCreationTime());

38session.setAttribute("new param", "param value");

39out.println(session.getAttribute("new param"));

40out.println("是否是新用户"+session.isNew());

41out.println("最后一次操作时间"+session.getLastAccessedTime());

42session.invalidate();

43

44%>

45

46

当你把SessionId的长度输出来的时候你会发现它的长度是32,而Cookie的JESSIONID 的长度也是32。两者之所以长度相等是因为两者是一样的,因为Session使用了Cookie的机制,即在客户端的Cookie中保存着每一个Session ID,这样用户每次发出请求时都会将此Session Id发送到服务器端,这样服务器端才能依靠此Session ID区分每一个不同的客户端。

Session的isNew()方法也是通过Cookie的方式进行判断的,在request取得全部的Cookie 时是不会出现JESSIONID的,而第二次却会出现这个系统内建的JESSIONID,这是由于此Cookie是在第一次访问时由服务器设置给客户端的,所以服务器可以依靠是否存在JESSIONID来判断此用户是否是一个新用户。

request(javax.servlet.http.HttpServletRequest的实例)

request是JSP中非常常用的对象之一,每个request对象封装着一次用户请求,并且所有的请求参数都被封装在request对象中,因此request对象是获取请求参数的重要途径。而且还可以用于操作request范围的属性。request的继承关系如下图:

1. 获取请求头/请求参数

Web应用是请求/响应架构应用,浏览器发送请求时通常会附带一些请求头,还可能包含一些请求参数给服务器,服务器端负责解析请求头/请求参数的就是JSP/Servlet,而二者取得请求参数的途径就是request。request是HttpServletRequest接口的实例。

request提供了如下几个方法获取请求参数:

(1) String getParameter(StringparameterName):获取paramName请求参数的值

(2) Map getParameterMap():获取所有请求参数名和参数值所组成的Map对象。

(3) Enumeration getParameterNames():获取所有请求参数名所组成的Enumeration

对象。

(4) String[] getParameterValues(String name):parameterName请求参数的值,当请求参数有多个值时,该方法返回多个值所组成的数组。常用来获取多选框的值。

(5) request.getMethod():取得提交方式

(6) request.getRemoteAddr():取得访问的IP地址

(7) request.getContextPath():取得上下文路径(工程名),用于解决跳转问题

(8) request.getServletPath():取得访问路径

request提供了如下方法来访问请求头。

(1) String getHeader(String name):根据指定请求头的值。

(2) java.util.EnumerationgetHeaderNames():获取所有请求头的名称。

具体使用时可以使用:

47Enumeration enu =request.getHeaderNames();

48while(enu.hasMoreElements()){

49 String str =(String) enu.nextElements();

50}

(3) java.util.EnumerationgetHeaders(String name):获取指定请求头的多个值。

(4) int getIntHeader(String name):获取指定请求头的值,并将该值转换成整数值。

对于开发者来讲,请求头和请求参数都是由用户发送到服务器的数据,它们的区别在请求头是浏览器自动添加,因此一次请求总是包含着若干个请求头,请求头包括客户点IP地址、Cookie、语言什么的;而请求参数则通常需要开发人员控制添加,让客户端发送请求参数通常分为两种情况:

?GET方式的请求:直接在浏览器地址栏输入访问的地址所发送的请求或提交表单发送时以XX.jsp?name=123&sex=man 形式发送的。表单默认为get提交。get方式请求会将请求参数的名和值转换成字符串,并附在原URl之后,因此可以在地址栏上看见请求参数的名和值。且get请求的数据量比较小,一般不能大于2KB。如果在get请求中包含了非西欧字符,使用setCharacterEncoding()设置request编码的字符集是不好使的,如果含有中文字符我们需要借助https://www.doczj.com/doc/1c15608675.html,.URLDecoder类

51<%

52String name =request.getParameter("name");

53//使用URLDecoder解析字符串

54String correct = https://www.doczj.com/doc/1c15608675.html,.URLDecoder.decode(name, "gbk");

55//也可以先转换成字符数组,然后再重新解码成字符串

56//将请求参数值使用ISO-8859-1字符串分解成字节数组

57byte [] temp =name.getBytes("ISO-8859-1");

58String correct1 =new String(temp);//将字节数组重新解码成字符串

59%>

?POST方式的请求:这种方式通常用于提交表单的方式发送,post传递的数据量比较大,通常认为请求参数大小不受限制,但往往取决于服务器端的限制,而且POST 方式发送的请求参数以及对应的值放在html header中传输,安全性相对较高。

值得注意的是并不是每个表单域都会生成请求参数的,而是由name属性的表单域才会生成请求参数,每个有name属性的表单域对应一个请求参数;如果多个表单域有相同的name 属性,则多个表单域只生成一个请求参数,只是该参数有多个值;表单域的name属性指定请求参数的名字,value指定请求参数的值;如果某个表单域设置了disabled=”disabled”属性,则该表单域不再生成请求参数。

值得一提的是request还可以做一个类似设置家用路由器访问时用户验证的那种用户角色

验证,这个验证的框使用了request.isUserINRole(String Role)àboolean类型返回值。这个应用是在李兴华老师的java Web开发实战经典上看到的,虽然我没用过,但是为了知识的完整性就简单提一下。

2. 操作request范围的属性

HttpServletRequest提供了两个方法用来设置和获取request范围的属性。

?setAttribute(String attName,Object attValue):将attValue设置成request范围的属性。

?Object getAttribute(String attName):获取request范围的属性。

我们在最开始接触使用JSP时会遇到许多细枝末节的问题,作为纯粹的JSP开发已经很少了,因而像setAttribute()这类的方法已经使用的很少了,但是getParameter()和getAttribute()比较相似,但是两者使用方法是完全不同的:凡是能使用getAttribute(···)方法的时候在使用之前一定有一个setAttribute()方法与之对应。而我们在使用getParameter()方法时前面必有一个表单的提交、地址的重写、或者

response(javax.servlet.http.HttpServletResponse的实例)

response对象代表服务器端对客户端的响应,将Web服务器处理后的结果发回给客户端。

之前为了更好的理解request对象时画了一个图,但是看了李兴华老师的《Java Web开发实战经典时》觉得讲解的非常好。response对象属于

javax.servlet.http.HttpServletResponse接口的实例,HttpServletResponse接口的定义如下:

public interfaceHttpServletResponse extends ServletResponse

我们可以发现此接口是javax.servlet.ServletResponse的子接口,而ServletResponse也只有HttpServletResponse一个子接口,这一点与request对象是一样的。大部分时候,程序无需使用response来响应客户端的请求,因为有个更简单的响应对象——out,它代表页面输出流,直接使用out生成响应更简单。但out是JspWriter的实例,JspWriter是Writer 的子类,Writer是字符流,无法输出非字符的内容。所以加入需要在JSP页面中生成一幅位图、pdf时我们就必须用response作为响应输出了。而且还可以用来设置头信息、实现页面跳转(请求转发)、和向客户端增加Cookie。

response设置头信息

客户端在进行请求时会发送许多额外的信息,这些就是头信息。服务器端也可以根据需要向客户端设置头信息。

刷新指令:

response.setHeader(“refresh”,”2”);//页面2秒刷新一次

定时跳转指令:主要用于新用户注册什么的,缺点是后退以后自动跳转会失效。response.setHeader(“refresh”,”3;ERL=welcome.html”);

当然我们也可以把这个实现写成html风格的:

页面跳转

response.sendRedirect(“hello.jsp”);

该跳转属于客户端跳转,值得注意的是该跳转无法传递request属性范围的内容。

和response.sendRedirect()两种跳转的区别:

前者的forward指令跳转:

1、属于服务器端跳转,地址栏不改变,可以传递request范围的属性。

2、属于无条件跳转,执行到该跳转指令处立即跳转,跳转之前的语句会执行,跳转之后的语句不会执行。如果你不幸在此处使用了JDBC那么他的关闭部分一定要找好自己的位置,否则它将永远都关不上。

后者sendRedirect(“xx.jsp”);

1、属于客户端跳转,跳转之后地址栏改变,不可以传递request范围的属性。

2、当所有的语句都执行完了之后才执行跳转

操作Cookie

Cookie是浏览器所提供的一种技术,这种技术让服务器端的程序能将一些只需保存在客户端,或者在客户端进行处理的数据,放在本身使用的计算机中,不需通过网络的传输,因而提高了网页的效率,而且能够减少服务器端的负载。但是由于Cookie是服务器端保存在客户端的信息,所以安全性也是很差的。客户端浏览器也是可以设置禁用Cookie的。Cookie 与session的区别是:session会随浏览器的关闭而失效,但是Cookie会一直保存在客户端的机器上,除非超出了Cookie的生命期限。

添加Cookie:

60<%@ page language="java"contentType="text/html; charset=utf-8"

61pageEncoding="utf-8"%>

62

"https://www.doczj.com/doc/1c15608675.html,/TR/html4/loose.dtd">

63

64

65 66Insert title here

67

68

69<%

70

71String name=request.getParameter("name");//获取参数

72Cookie cookie = new Cookie("UserName",name);//javax.servlet.http.Cookie 73cookie.setMaxAge(24*60*60);//设置Cookie的生命周期,单位为s',如果没有设置保存时间,则默认是在一个浏览器上保存,如果浏览器关闭,则Cookie消失

74response.addCookie(cookie);

75

76%>

77

78

读取Cookie:

79<%@page import="https://www.doczj.com/doc/1c15608675.html,.URLDecoder"%>

80<%@ page language="java"contentType="text/html; charset=utf-8"

81pageEncoding="utf-8"%>

82

"https://www.doczj.com/doc/1c15608675.html,/TR/html4/loose.dtd">

83

84

85 86Insert title here

87

88

89<%

90

91Cookie [] cookies = request.getCookies();//通过request获取Cookie,返回值是一个Cookie类型的数组

92

93for(Cookie c :cookies){

94 out.println(c.getName());

95 out.print(c.getValue());

96 out.print(URLDecoder.decode(c.getValue(),"utf-8"));//对含有非西欧字符的字符

进行解码

97}

98

99%>

100

101

其中值得一提的是https://www.doczj.com/doc/1c15608675.html,.URLDecoder.decode()和https://www.doczj.com/doc/1c15608675.html,,URLEncoder()这两个方法,以下内容摘自JDK API

https://www.doczj.com/doc/1c15608675.html,ng.Object

https://www.doczj.com/doc/1c15608675.html,.URLEncoder

public class URLEncoder

extends Object

HTML 格式编码的实用工具类。该类包含了将String 转换为

application/x-www-form-urlencoded MIME 格式的静态方法。有关HTML 格式编码的更多信息,请参阅HTML规范。

对 String 编码时,使用以下规则:

· 字母数字字符 "a" 到 "z"、"A"到 "Z" 和 "0" 到 "9" 保持不变。 · 特殊字符 "."、"-"、"*" 和 "_" 保持不变。

· 空格字符 " " 转换为一个加号 "+"。

· 所有其他字符都是不安全的,因此首先使用一些编码机制将它们转换为一个或多个字节。然后每个字节用一个包含 3 个字符的字符串 "%xy " 表示,其中xy 为该字节的两位十六进制表示形式。推荐的编码机制是 UTF-8。但是,出于兼容性考虑,如果未指定一种编码,则使用相应平台的默认编码。

例如,使用 UTF-8 编码机制,字符串 "The string ü@foo-bar" 将转换为

"The+string+%C3%BC%40foo-bar",因为在 UTF-8 中,字符 ü 编码为两个字节,C3 (十六进制)和 BC (十六进制),字符 @ 编码为一个字节 40 (十六进制)。

从以下版本开始:

JDK1.0

方法摘要

static String encode (String s)

已过时。 结果字符串可能因平台默认编码不同而不同。因此,改用

encode(String,String) 方法指定编码。

static String encode (String s,String enc)

使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格

式。

encode

public static String encode (String s,

String enc)

throws UnsupportedEncodingException

使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式。该方法使用提供的编码机制获取不安全字符的字节。

注:World WideWeb Consortium Recommendation 声明应使用 UTF-8。如果不使用该编码,可能造成不兼容性。

参数:

s - 要转换的 String 。

enc - 所支持的字符编码名称。

返回:

已转换的String。

抛出:

UnsupportedEncodingException - 如果不支持指定的编码

从以下版本开始:

1.4

另请参见:

URLDecoder.decode(https://www.doczj.com/doc/1c15608675.html,ng.String, https://www.doczj.com/doc/1c15608675.html,ng.String)

https://www.doczj.com/doc/1c15608675.html,ng.Object

https://www.doczj.com/doc/1c15608675.html,.URLDecoder

public class URLDecoder

extends Object

HTML 格式解码的实用工具类。该类包含了将String 从

application/x-www-form-urlencoded MIME 格式解码的静态方法。

该转换过程正好与URLEncoder 类使用的过程相反。假定已编码的字符串中的所有字符为下列之一:"a" 到"z"、"A" 到"Z"、"0" 到"9"和"-"、"_"、"." 以及"*"。允许有"%" 字符,但是将它解释为特殊转义序列的开始。

转换中使用以下规则:

·字母数字字符"a" 到"z"、"A"到"Z" 和"0" 到"9" 保持不变。

·特殊字符"."、"-"、"*" 和"_" 保持不变。

·加号"+" 转换为空格字符" "。

·将把"%xy" 格式序列视为一个字节,其中xy为8 位的两位十六进制表示形式。然后,所有连续包含一个或多个这些字节序列的子字符串,将被其编码可生成这些连续字节的字符所代替。可以指定对这些字符进行解码的编码机制,或者如果未指定的话,则使用平台的默认编码机制。

该解码器处理非法字符串有两种可能的方法。一种方法是不管该非法字符,另一种方法是抛出IllegalArgumentException异常。解码器具体采用哪种方法取决于实现。

从以下版本开始:

1.2

decode

public static String decode(String s,

String enc)

throws UnsupportedEncodingException

使用指定的编码机制对application/x-www-form-urlencoded 字符串解码。给定的编码用于确定任何"%xy" 格式的连续序列表示的字符。

注:WorldWide Web Consortium Recommendation声明应使用UTF-8。如果不使用该编码,可能造成不兼容性。

参数:

s - 要解码的String

enc - 所支持的字符编码的名称。

返回:

新解码的String

抛出:

UnsupportedEncodingException - 如果需要参考字符编码,而指定的字符编码不被支持

从以下版本开始:

1.4

另请参见:

URLEncoder.encode(https://www.doczj.com/doc/1c15608675.html,ng.String, https://www.doczj.com/doc/1c15608675.html,ng.String)

JSP隐式对象

Jsp的隐式对象和EL的隐式对象学习 2009-09-02 21:48 JSP共有九大内置对象: (1) HttpSession类的session对象 作用:主要用于来分别保存每个用户信息,与请求关联的会话; 会话状态维持是Web应用开发者必须面对的问题。 (2) HttpServletRequest类的request对象 作用:代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。 (3) HttpServletResponse类的respone对象 作用:代表响应对象,主要用于向客户端发送数据 (4) JspWriter类的out对象 作用:主要用于向客户端输出数据; Out的基类是javax.servlet.jsp.JspWriter (5) ServletContext类的application对象 作用:主要用于保存用户信息,代码片段的运行环境; 它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享. (6) PageContext类的pageContext对象 作用:管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由容器来完成的。 (7) ServletConfig类的config对象 作用:代码片段配置对象,表示Servlet的配置。 (8) Object类的page(相当于this)对象 作用:处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。 (9)Exception 作用:处理JSP文件执行时发生的错误和异常 EL共有11大内置对象: JSP开发人员可以在EL表达式中使用EL隐式对象,而无须任何显式的编码活声明。隐式对象就是设计用

“jsp内置对象”单元习题

“JSP内置对象”单元习题 一、填空题 1.JSP 中有9 种内置对象,它们分别是:___________、___________、response 对象、pageContext 对象、session对、applicationt 对象、page 对象、config 对象和exception 对象。 2.Request对象可以使用___________方法获取表单提交的信息。 3.客户端向服务器端提交数据的方式通常有两种:一种是___________提交方式;另一种是 ___________提交方式。 4.在JSP 内置对象中,与请求相关的对象是______________________。 5.___________被封装成javax.servlet.JspWriter 接口,它用来向客户端输出内容。 6.Out 对象中用来输出各种类型数据并换行的方法是______________________。7.Out 对象中用来输出各种类型数据但不换行的方法是 ______________________。 8.Out 对象中用来输出一个换行符的方法是______________________。9.Out 对象中用来关闭输出流的方法是______________________。 10.Out 对象中用来输出缓冲区里的数据的方法是______________________。11.Out 对象中用来清除缓冲区里的数据,并把数据写到客户端的方法是 ________________。 12.Out 对象中用来清除缓冲区里的数据,但不写到客户端的方法是 ___________________。 13.Out 对象中用来获得缓冲区大小的方法是______________________。14.Out 对象中用来获得缓冲区剩余空间大小的方法是 ______________________。 15.Out 对象中用来判断缓冲区是否自动刷新的方法是 ______________________。 16.Request 对象中用来获得服务器名字的方法是______________________。17.Request 对象中用来获得服务器的端口号的方法是 ______________________。 18.Request 对象中用来获得客户端的IP 地址的方法是 ______________________。 19.Request 对象中用来获得客户端的计算机名字的方法是 ______________________方法。 20.Request 对象中用来获得客户端向服务器端传送数据的协议名称的方法是 __________________。 21.___________是同应答相关的HttpServletResponse类的一个对象,它封装了服务器对客户端的响应,然后被送到客户端以响应客户请求。 22.Response对象中用来动态改变contentType属性的方法是 ______________________。 23 .Response 对象中用来把响应发送到另一个指定的位置进行处理的方法 是______________________。

张建伟-《WEB系统与技术》课程教学大纲

《WEB系统与技术》课程教学大纲 课程代码:90613602 课程类型:专业必修课适合专业:计算机科学与技术 总学时数:48 学分:3 一、课程教学目的与任务 《WEB系统与技术》是计算机科学与技术专业的专业必修课。通过本课程的学习,培养学生团队合作开发Web应用程序的能力,能够运用JAVA EE的知识和技巧编写Web应用程序,例如信息发布系统、论坛、留言板、聊天室、博客等系统;培养学生的自学能力及提出问题、分析问题和解决问题的能力并最终把其转化为相应的系统功能来进行实现。 二、理论教学的基本要求 通过系统的理论教学将培养学生达到以下要求:掌握WEB的相关开发技术,能熟练的使用JAVA EE技术结合HTML和JAVASCRIPT技术综合开发系统,熟练掌握JAVA EE的核心JSP/SERVLET技术,学习相关的衍生的技术和使用组件,为以后学习SSH打下基础,并锻炼学生的编程思维以及对项目业务逻辑的综合分析和处理能力。 实践教学的目的是通过设置验证性和设计性的实验培养学生团队合作开发Web应用程序的能力,使学生能运用JAVA EE技术编写Web应用程序;实验教学采用演练结合的实验方式;实验考核由三部分组成:实验操作、实验报告、实验纪律。 四、教学学时分配

五、教学内容 第一章 Web应用开发概述 教学目的和要求:初步认识 WEB项目,了解网络程序开发体系结构,掌握B/S和C/S 两种开发模式的优缺点以及常规的应用场合,学习WEB项目的工作原理和发展历史,认识目前主流的WEB开发技术。 教学重点:B/S和C/S模式的比较;WEB项目的初步认识以及工作原理和发展;主流的WEB开发技术。 教学难点:WEB项目的工作原理;B/S和C/S。 教学内容:网络程序开发体系结构:C/S结构介绍,B/S结构介绍;Web的工作原理;Web的发展历程;Web开发技术。 第二章 HTML与CSS网页开发基础 教学目的和要求:通过本章的学习,培养学生对HTML和CSS的使用的能力,要求学生了解网页的制作过程,能根据实际要求制作相应的网页,培养学生对dreamweaver等开发工具的使用,使得学生能够解决简单实际问题,为后续的WEB开发打下基础。 教学重点:HTML的开发和标记;CSS的规则和选择器;CSS在HTML中的应用;CSS3的新特性。 教学难点:HTML开发;CSS的规则和选择器以及使用。 教学内容:HTML文档结构、常用标记、表格标记、HTML表单标记、超链接与图片标记;CSS规则、CSS选择器、在页面中包含CSS、CSS 3的新特征、模块与模块化结构。

“jsp内置对象”单元习题教学提纲

“j s p内置对象”单 元习题

“JSP内置对象”单元习题 一、填空题 1.JSP 中有9 种内置对象,它们分别是:___________、___________、response 对象、 pageContext 对象、 session对、 applicationt 对象、page 对象、 config 对象和 exception 对象。 2.Request对象可以使用___________方法获取表单提交的信息。 3.客户端向服务器端提交数据的方式通常有两种:一种是___________提交方式;另一种是 ___________提交方式。 4.在JSP 内置对象中,与请求相关的对象是______________________。5.___________被封装成 javax.servlet.JspWriter 接口,它用来向客户端输出内容。 6.Out 对象中用来输出各种类型数据并换行的方法是 ______________________。 7.Out 对象中用来输出各种类型数据但不换行的方法是 ______________________。 8.Out 对象中用来输出一个换行符的方法是______________________。9.Out 对象中用来关闭输出流的方法是______________________。 10.Out 对象中用来输出缓冲区里的数据的方法是______________________。11.Out 对象中用来清除缓冲区里的数据,并把数据写到客户端的方法是 ________________。

12.Out 对象中用来清除缓冲区里的数据,但不写到客户端的方法是 ___________________。 13.Out 对象中用来获得缓冲区大小的方法是______________________。14.Out 对象中用来获得缓冲区剩余空间大小的方法是 ______________________。 15.Out 对象中用来判断缓冲区是否自动刷新的方法是 ______________________。 16.Request 对象中用来获得服务器名字的方法是______________________。17.Request 对象中用来获得服务器的端口号的方法是 ______________________。 18.Request 对象中用来获得客户端的 IP 地址的方法是 ______________________。 19.Request 对象中用来获得客户端的计算机名字的方法是 ______________________方法。 20.Request 对象中用来获得客户端向服务器端传送数据的协议名称的方法是__________________。 21.___________是同应答相关的 HttpServletResponse类的一个对象,它封装了服务器对客户端的响应,然后被送到客户端以响应客户请求。22.Response对象中用来动态改变 contentType属性的方法是 ______________________。 23 . Response 对象中用来把响应发送到另一个指定的位置进行处理的方法 是______________________。

实验六 JSP内置对象二含答案

实验六JSP内置对象(二) 实验性质:设计性实验学时:1学时实验地点: 一、实验目的与要求 1、理解常用JSP内置对象的含义。 2、掌握session和application对象的使用方法。 二、实验内容 1、session对象的使用 (1)设计一个简单的在线问卷调查程序,共有3个页面,分别是one.jsp、two.jsp、three.jsp。 其中,shiyan6_1_one.jsp页面效果如下图所示: 例如:输入“九寨沟”,单击下一题按钮,即可进入shiyan6_1_two.jsp页面,two.jsp页面效果如下图所示: 例如:输入“三国演义”,单击提交按钮后,进入shiyan6_1_three.jsp页面,three.jsp页面效果如下图所示: 请写出相应代码: shiyan6_1_one.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Insert title here

你喜欢的一本书是:
shiyan6_1_two.jsp: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

web总结

Tomocat服务器的默认端口:8080 默认端口需要被修改时,应该修改哪一个文件?Web-xml Mvc的三层开发结构?含义是什么?(模型,视图,控制) Jsp九大内置对象有哪些?分别代表哪些含义? 如果要实现不同网页之间的数据共享,且跨机共享? 表单提交的两种方法?Get 和post Jsp注释放在<%-- 注释内容--%>中 在网页中插入一张图片/像,html中的代码是? Jsp代码是? Cookie的使用包含:删除和添加(p172页),如何使用? 一个网页中只包含一个表单吗?(X) Html标记的属性区分大小写吗?不 Html的换行标记是:

Tab表格的换行标记: 图形文件和网页文件是分开存储的吗?(对)网页中不能放图片 Jsp运行的必要条件是() 1.JDK 2.jsp的web服务器 3. OS 4.数据库(错误) 当多个用户同时请求一个JSP服务器,tomocat将为用户提供一个(线程)Internet上应用最为广泛的服务是WWW服务(对) Session数据有哪几种情况会被清空?分别为? JSP要使用驱动Jar,必须放在WEB-INF/lib目录下 Html中网页标题放在 JDBC连接数据库的基本步骤?(p205页) 表单域一定要放在表单中才有效吗?(对) Http:超文本传输协议 FTP:文件传输协议 Severlet中正确获取Session对象语句是怎么写的? (HttpSession session=request.getSession();) 在Session对象中,设置超时时间的方法是什么?(setmaxlnactiveInterval()) 在JSP中设置重定向 编写一个完整的severlet文件中,需要在哪个文件中配置路径? Java异常处理代码,放在(try-catch中) Tomcat/web文件发布时,需要打包为War文件, 拷贝哪个文件也可以? Request的功能? Get 和post 参数? 判断:get 请求处理数据量大小设限制吗?(要) 补考:四种会话跟踪技术?

实验三 JSP内置对象

实验三JSP内置对象 一.实验目的 (1)了解JSP中9个内置对象request、reponse、out、session、application、config、 pagecontext、page、exception的基本概念。 (2)理解JSP内置对象的常用方法的功能。 (3)掌握JSP内置对象的应用。 二. 主要仪器设备及环境 (1)PC机 (2)操作系统:WINDOWSXP (3)软件:记事本, JDK、TOMCAT,IE 三. 实验内容与步骤 1.用JSP的内置对象request在前后台页面间传递表单数据; 用内置对象前后台页面间的参数传递 (1)客户端主界面experiment3_1.jsp,表单封装了三个参数: <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page contentType="text/html;charset=GBK"%> 这是第一个JSP 大家好!恭喜你的第一个JSP

第一个数:
第二个数:
第三个数:
(2)第一个后台响应experiment3_2.jsp,用request对象提取前台传过来的参数,验证输入的数据a、b、c分别是西文、数字、中文: <%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%!String s1,s2,s3;%> <% s1=request.getParameter("a"); s2=request.getParameter("b");

Java基础面试题及答案(在后面)

JAVA基础部分-选择题 (单选)1.在Java语言中,字符串“Java程序员”在内存中所占用的字节数是:()。 A.10 B.7 C.13 D.14 2. (单选)下列表达式中,可以得到精确结果的是()。 A.double d1 = 3.0 - 2.6; B.double d4 = 2.5 * 1.5; C.double d2 = 30/300; D.double d3 = 1/2 + 0.5; 3.(多选)所谓“水仙花”数是一个整数等于各位数字立方的和,例如:153 = 下列选项中,空白处可以填入的代码是:()。 A.int s = 0, n1 = n; while (n1 > 0) { int t = n1 % 10; s += t * t * t; n1 /= 10; } B.int s = 0, n1 = n; while (n1 > 0) { int t = n1 / 10; s+= t * t * t; n1 %= 10; } C.int s = 0; for(int n1 = n; n1>0; n1 /= 10) { int t = n1%10; s += t * t * t; } D.int s = 0; for(int n1 = n; n1>0; n1 %= 10) { int t = n1 / 10; s += t * t * t; } 4.下列语句序列执行后,k 的值是 ( )

A.60 B.5 C.0 D.54 5.设 a = 8,则表达式 a >>> 2 的值是:(无符号右移动)( ) A.1 B.2 C.3 D.4 6.下列程序 在程序中插入下列哪一行代码可以编译通过: A static void doSomething(int[] args){} B static void doSomething(int... args){} C static coid doSomething(int...args,int x){}

JSP题库

一、选择 1、下面哪一个不是JSP本身已加载的基本类?(B) A、https://www.doczj.com/doc/1c15608675.html,ng.* B、java.io.* C、javax.servlet.* D、javax.servlet.jsp.* 2、以下关于JavaBeans的说法中,错误的是(B)。 A、JavaBeans是基于JA V A语言的。 B、JavaBeans是JSP的内置对象之一。 C、JavaBeans是一种Java类。 D、JavaBeans是一个可重复使用的软件组件。 3、下面的说法错误的是:(D) A Jsp可以处理动态内容和静态内容 B 在Jsp最终会编译成字节码后执行 C 在jsp中可以使用脚本控制Html的标签生成 D Jsp中不能使用//注释Java脚本中的代码 4、下述选项中不属于JDBC基本功能的是:(D) A. 与数据库建立连接 B. 提交SQL语句 C. 处理查询结果 D. 数据库维护管理 5、JSP 页面经过编译之后,将创建一个(B) A.applet B.severlet C.application D.exe文件 6、在jsp中,要定义一个方法,需要用到以下(C)元素。 A.<%= %> B. <% %> C. <%! %> D. <%@ %> 7、JSP在WEB服务器上运行结果:(A) A.可以在WEB浏览器看到, B.只能在WEB浏览器看到。 C.可能在WEB浏览器看到, D.不可能在WEB浏览器看到。 8、Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:(D) A. <%@ page %>作用于整个JSP页面。 B. 可以在一个页面中使用多个<%@ page %>指令。 C. 为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的。 D. <%@ page %>指令中的属性只能出现一次。 9、(D)的范围是从Web应用服务器一开始执行服务一直到Web应用服务器结束服务为止。 A.页内有效 B.请求有效 C.会话有效 D.应用有效 10、选择、在JSP中使用标记时,不会出现的属性是:(c) https://www.doczj.com/doc/1c15608675.html, B.property C.value D.以上皆不会出现 11、对于预定义<%!预定义%>的说法错误的是:(c) A、一次可声明多个变量和方法,只要以“;”结尾就行 B、一个声明仅在一个页面中有效 C、声明的变量将作为局部变量 D、在预定义中声明的变量将在JSP页面初始化时初始化 12、从“员工” 表的“姓名”字段中找出名字包含“玛丽”的人,下面哪条select语句正确:(D)

四大域对象-JSP九大内置对象-11个EL隐式对象

四大域对象详解 JSP中隐式对象的名称范围名称具体的类型 pageContext page javax.servlet.jsp.PageContext request request javax.servlet.ServletRequest (显示完数据就没有用了)session session javax.servlet.http.HttpSession (显示完数据了,过一会自己还要用) application application javax.servlet.ServletContext (显示完数据了,大家都要用。不建议使用,如果使用,必须同步处理) JSP九大内置对象 JSP的内置对象引用名称对应的类型 request HttpServletRequest response HttpServletResponse session HttpSession(有开关的:page指令的session属性的取值) application ServletContext config ServletConfig page this(当前Servlet对象) exception https://www.doczj.com/doc/1c15608675.html,ng.Throwable(有开关的:page指令的isErrorPage属性改为true) out JspWriter pageContext javax.servlet.jsp.PageContext非常重要 pageContext有三大作用: 1、本身是一个域对象。同时还能操作其他三个域对象(PageContext ServletRequest HttpSession ServletContext) 本身表示的域范围是本页面。 void setAttribute(String name,Object value)

JavaWeb测试题

JavaWeb测试题 1、page指令的import属性的作用是(C) A、定义JSP页面响应的MIME类型 B、定义JSP页面使用的脚本语言 C、为JSP页面引入JAVA包中的类 D、定义JSP页面字符的编码 2、以下对象中的(D)不是JSP的内置对象。 A、request B、session C、application D、bean 3、在JSP中,内置对象(B)封装了用户提交的信息,使用该对象可以获取用户提交的信息。 A、session B、request C、response D、out 4、从(A)开始,到()结束,被称为一个会话。 A、访问者连接到服务器,访问者关闭浏览器离开该服务器 B、服务器启动,服务器关闭 C、访问者连接到服务器,服务器关闭 D、服务器启动,访问者关闭浏览器离开该服务器 5) 在下面哪个web应用目录中可以放置所需要的类库(A) A. /WEB-INF/lib放置jar文件 B. /META-INF/lib放置jar文件 C. /WEB-INF/classes 放置已经编译的类文件 D. /META-INF/classes 放置已经编译的类文件 6) 在J2EE中,test .jsp文件中有如下一行代码:要使User对象一直存在于会话中,直至其终止或被删除为止,下划线中应填入( D )。 a) page b) request c) session d) application 7) 在JSP中,要定义一个方法,需要用到以下( C )元素。 a) <%= %>b) <% %> c) <%! %>d) <%@ %>:jsp指令 8假定login.getName() 返回类型为https://www.doczj.com/doc/1c15608675.html,ng.String,给定JSP代码: Welcome <%= login.getName() %>以下那个选项与此语句的功能相同? A A. Welocome<% out.print(login.getName());%> B. Welocome<% Writer.print(login.getName());%> C. Welocome<% response.out.print(login.getName());%> D. Welocome<% response.getwriter.write.(login.getName());%> Servlet 9在JSP页面中,正确引入JavaBean的是(C) A. <%jsp: useBean id =”myBean”scope =”page”class=”pkg.MyBean”%>

JSP9大内置对象

为简化页面的开发提供了一些内部的对象,在所有的JSP页面中都能使用这些内部对象。编写JSP的人员不需要对这些内部对象进行例化,只要调用其中的方法就能实现特定的功能。JSP主要有如下内置对象: 1.request对象 2.response对象 3.pageContext对象 4.session对象 5.application对象 6.out对象 7.config对象 8.page对象 9.exception对象 下面分别介绍这些对象的使用。 2.2.1:request对象 request对象代表请求的对象,它被包装成HttpServletRequest 接口。通过getParameter方法可以得到request的参数,通过GET、POST、HEAD等方法可以得到request的类型,通过Cookies、Referer等方法可以得到请求的Http头。 Request的主要方法有:

isUserInRole(String role):判断认证后的用户是否属于逻辑role 中的成员。 2.getAttribute(String name):返回由name指定的属性值,如果属性值不存在,则返回一个空值,即null。 3.getAttributeNames():返回request对象的所有属性的名字的集合,其结果是一个枚举的实例。 4.getCookies():返回客户端的所有Cookies对象,结果是一个Cookies数组。 5.getCharacterEncoding():返回请求中的字符编码方式。 6.getcontentLength():返回请求的Body的长度,如果不确定长度则返回-1。 7.getHeader(String name):获得Http定义的文件头信息。 8.getHeaders(String name):返回指定名字的request Header的所有值,其结果是一个枚举的实例。 9.getInputStream():返回请求的输入流,用于获得请求中的数据。 10.getMethod():获得客户端向服务器端传送数据的方法。 11.getParameter(String name):获得客户端传送给服务器端的参数值,该参数是由name指定的,通常是表单的控件的参数名。 12.getParameterNames(String name):获得客户端传送给服务器端的所有参数的名字,其结果是一个枚举的实例。 13.getParameterValues(String name):获得指定参数的所有值,参数由name指定。

JSP内置对象(9个常用的内置对象)

JSP内置对象(9个常用的内置对象) 1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 序号方法说明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLength() 返回请求体的长度(以字节数) 5 String getContentType() 得到请求体的MIME类型 6 ServletInputStream getInputStream() 得到请求体中一行的二进制流 7 String getParameter(String name) 返回name指定参数的参数值 8 Enumeration getParameterNames() 返回可用参数名的枚举 9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组 10 String getProtocol() 返回请求用的协议类型及版本号 11 String getScheme() 返回请求用的计划名,如:http.https及ftp等 12 String getServerName() 返回接受请求的服务器主机名 13 int getServerPort() 返回服务器接受此请求所用的端口号 14 BufferedReader getReader() 返回解码过了的请求体

jsp内置对象实验练习

实验四JSP内置对象阶段实验 1.1 实验目的 1、熟悉与掌握 JSP 九大内置对象的使用 2、掌握重定向与服务器转发的使用 3、熟悉 MyEclipse 工程项目结构的设置 1.2 实验要求 1、本实验要求学生通过独立读程序,完成程序的填空 2、建立一个实现简单登陆功能的项目,按实验步骤完成代码。 1.3 实验内容 1.3.1 实现简单登陆功能 1、功能描述: (1)由于目前尚未学习数据库的使用,因此需要指定登陆的用户名和密码(自己设定,如:用户名:晚香玉,密码:123456,请结合自己的名字缩 写) (2)实现登陆表单login.jsp 图1 登陆界面 login.jsp (3 )编写dologin.jsp ,实现功能:登陆成功使用服务器内部转发到login_success.jsp 页面,并在该页面显示登陆成功的用户名。如果登陆失败则重定向到login_failure.jsp页面。

图2登陆成功界面 图3登陆失败界面 2、建立工程项目 (1)建立Web project项目,在WebRoot根目录下添加三个文件夹:assets(存放图像资源文件)、css(存放css样式文件)、js(存放js脚本文件)。 (2)将本实验报告文件夹中的assets、css文件中的内容复制到自己项目中对应的文件夹中。包括图像资源文件和写好的样式文件。 (3)按实验步骤 1.3.2完成实验 1.3.2 实验代码 1、login.jsp代码

2、dologin.jsp 代码 3、login_success.jsp代码

4、login_failure.jsp代码 5、运行

JSP常用内置对象

JSP常用内置对象使用说明 内置对象特点: 1.由JSP规范提供,不用编写者实例化。 2.通过Web容器实现和管理 3.所有JSP页面均可使用 4.只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>) 常用内置对象: 1.输出输入对象:request对象、response对象、out对象 2.通信控制对象:pageContext对象、session对象、application对象3.Servlet对象:page对象、config对象 4.错误处理对象:exception对象

对象常用方法说明:1 2

3 4 5

6 7 8 它代表JSP被编译成Servlet,可以使用它来调用Servlet类中所定义的方法 9.exception对象(运行时的异常,https://www.doczj.com/doc/1c15608675.html,ng.Throwable) 被调用的错误页面的结果,只有在错误页面中才可使用, 即在页面指令中设置:<%@page isErrorPage=“true”%> Request(Javax.servlet.ServletRequest)它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。 Response(Javax.servlet.ServletResponse)作为JSP页面处理结果返回给用户的响应存储在该对象中。并提供了设置响应内容、响应头以及重定向的方法(如cookies,头信息等) Out(Javax.servlet.jsp.JspWriter)用于将内容写入JSP页面实例的输出流中,提供了几个方法使你能用于向浏览器回送输出结果。 pageContext(Javax.servlet.jsp.PageContext)描述了当前JSP页面的运行环境。可以返回JS P页面的其他隐式对象及其属性的访问,另外,它还实现将控制权从当前页面传输至其他页面的方法。 Session(javax.servlet.http.HttpSession)会话对象存储有关此会话的信息,也可以将属性赋给一个会话,每个属性都有名称和值。会话对象主要用于存储和检索属性值。 Application(javax.servle.ServletContext)存储了运行JSP页面的servlet以及在同一应用程序中的任何Web组件的上下文信息。 Page(https://www.doczj.com/doc/1c15608675.html,ng.Object)表示当前JSP页面的servlet实例 Config(javax.servlet.ServletConfig)该对象用于存取servlet实例的初始化参数。 Exception(https://www.doczj.com/doc/1c15608675.html,ng.Throwable)在某个页面抛出异常时,将转发至JSP错误页面,提供此对象是为了在JSP中处理错误。只有在错误页面中才可使用<%@page isErrorPage=“true”%>

实验3: JSP内置对象及简单JSP程序设计(一)

实验3:JSP内置对象及简单JSP程序设计(一) 姚远 2013-9-25 实验目的: 1、掌握JSP编写注释 2、掌握内置对象的用法 3、掌握JSP基本概念。 4、熟悉JSP页面指令使用。 5、熟悉初步的JSP代码片段应用编程 6、掌握WEB项目中集合类如何应用于页面。 实验内容: 1JSP注释 观察下列代码,学习注释的用法。 <%-- <%=new Date().toString() %> --%> 2forward行为标签与request/pageContext内置对象 (1)新建TestSendData.jsp页面,并输入以下代码: <% request.setAttribute("loginName", "Joan"); pageContext.setAttribute("LoginPassword","My love ", pageContext.PAGE_SCOPE); %> (2)新建Accepted.jsp,并输入以下代码:

Accepted.jsp

<%=request.getAttribute("loginName") %>

<%=pageContext.getAttribute("LoginPassword",pageContext.PAGE_SCOPE) %> 注意getAttribute的第三个参数可以取值为: PageContext.PAGE_SCOPE:对应于page范围。 PageContext.REQUEST_SCOPE:对应于request范围。 PageContext.SESSION_SCOPE:对应于session范围。 PageContext.APPLICATION_SCOPE:对应于application范围。 (3)访问ForwardDemo.jsp观察结果,你能得出什么结论? 3application对象 新建TestApplication.jsp页面,输入以下代码,观察运行结果。 <% Integer i = 0; i = (Integer) application.getAttribute("count"); if (null == i){ application.setAttribute("count", 1); out.println("

你是第1位访问者

"); }else{ ++i; application.setAttribute("count",i); out.println("

你是第"+i+"位访问者

"); } %> 反复刷新页面,观察运行结果。 思考:关闭浏览器能够将计数清零吗?如果不能,如何清零?结果说明了application 对象的作用范围是什么? 4编程题 通过ArrayList存储5个教师信息,设计第一个页面用于显示这5个教师姓名,并且提供超级链接:可进一步查看详情,设计第二个页面用于显示详情。如下所示:

实验三-JSP内置对象

实验三 JSP置对象 一.实验目的 (1)了解JSP中9个置对象request、reponse、 out、 session、 application、 config、 pagecontext、 page、 exception的基本概念。 (2)理解JSP置对象的常用方法的功能。 (3)掌握JSP置对象的应用。 二. 主要仪器设备及环境 (1)PC机 (2)操作系统:WINDOWSXP (3)软件:记事本, JDK、TOMCAT,IE 三. 实验容与步骤 1.用JSP的置对象request在前后台页面间传递表单数据; 用置对象前后台页面间的参数传递 (1)客户端主界面experiment3_1.jsp,表单封装了三个参数: <% page language="java" import="java.util.*" pageEncoding="GBK"%> <% page contentType="text/html;charset=GBK"%> 这是第一个JSP 大家好!恭喜你的第一个JSP

第一个数:
第二个数:
第三个数:
(2)第一个后台响应experiment3_2.jsp,用request对象提取前台传过来的参数,验证输入的数据a、b、c分别是西文、数字、中文: <% page language="java" import="java.util.*" pageEncoding="GBK"%> <%!String s1,s2,s3;%> <% s1=request.getParameter("a"); s2=request.getParameter("b");

jsp9大内置对象和作用

JSP的九个内置对象及其作用 1.request 封装用户请求 2.response 向用户做出响应 3.page JSP页面本身 4.session 客户和服务器间的会话 5.config 包括servlet初始化要用的参数 6.application 于服务器启动时开始运行,用来存放全局变量,在用户间共享 7.out向客户端输出 8.pageContext 用于访问page的各种对象 9.exception 异常 1.request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。 序号方法说明 1 object getAttribute(String name) 返回指定属性的属性值 2 Enumeration getAttributeNames() 返回所有可用属性名的枚举 3 String getCharacterEncoding() 返回字符编码方式 4 int getContentLength() 返回请求体的长度(以字节数) 5 String getContentType() 得到请求体的MIME类型 6 ServletInputStream getInputStream() 得到请求体中一行的二进制流

7 String getParameter(String name) 返回name指定参数的参数值 8 Enumeration getParameterNames() 返回可用参数名的枚举 9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组 10 String getProtocol() 返回请求用的协议类型及版本号 11 String getScheme() 返回请求用的计划名,如:http.https及ftp等 12 String getServerName() 返回接受请求的服务器主机名 13 int getServerPort() 返回服务器接受此请求所用的端口号 14 BufferedReader getReader() 返回解码过了的请求体 15 String getRemoteAddr() 返回发送此请求的客户端IP地址 16 String getRemoteHost() 返回发送此请求的客户端主机名 17 void setAttribute(String key,Object obj) 设置属性的属性值 18 String getRealPath(String path) 返回一虚拟路径的真实路径 2.response对象 response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。 序号方法说明 1 String getCharacterEncoding() 返回响应用的是何种字符编码 2 ServletOutputStream getOutputStream() 返回响应的一个二进制输出流 3 PrintWriter getWriter() 返回可以向客户端输出字符的一个对象 4 void setContentLength(int len) 设置响应头长度 5 void setContentType(String type) 设置响应的MIME类型

相关主题
文本预览
相关文档 最新文档