关于jsp内置对象的问题?

zhouyuebo 2003-03-26 10:13:13
jsp 有request ,response ,session ,application 等内置对象,我想请问,这些内置对象到底是怎么回事 ?它们是类的实例吗 ?如果用比较完整的写法,该怎么写呢?这些对象的方法,是不是相应类的方法呢 ?我一直对这个问题很迷惑,希望有人能帮我解决一下,随便聊两句也好呀,呵呵!
...全文
35 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouyuebo 2003-03-28
  • 打赏
  • 举报
回复
下面的这段程序为什么不能够正确执行?请指点:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<title>Application对象应用</title>
</head>
<body>
<center>
<h1>
<font color="blue">
设置与读取公用变量
</font>
</h1>
<%@ page import="java.util.*"%>
<%

application.setAttribute("Company","Microsoft");
application.setAttribute("Header","Bill gates");
application.setAttribute("member1","zhouy");
application.setAttribute("member2","yuebo");
application.setAttribute("member3","zhouyuebo");

Enumeration company=application.getAttributeNames();
while(company.hasMoreElements())
{
String name=(String)company.nextElement();
String value=(String)application.getAttribute(name);
out.println(name+"<br>"+value);
}
%>
</center>
</body>
</html>
网络咖啡 2003-03-28
  • 打赏
  • 举报
回复
其实学好这些内置对象很简单:
1.搞清楚这些对象的类型,即都是什么类型的对象
2.搞清楚这些对象的作用域
moumouren 2003-03-28
  • 打赏
  • 举报
回复
javax.servlet.http.HttpSession session
javax.servlet.http.HttpServletRequest request
javax.servlet.http.HttpServletResponse response
javax.servlet.jsp.JspWriter out
nbm0 2003-03-28
  • 打赏
  • 举报
回复
zxhong(红透半边天) 解了我心中的迷惑!
Reason_Bbx 2003-03-26
  • 打赏
  • 举报
回复
均是javax.servlet或者javax.servlet.http包中的某类的实例。。。。

其实这些内置对象就是构成你的servlet的基本内容。。。。

ps:尝试一下servlet你会发现另一片服务器端程序的天地。。。。个人不赞同将servlet用于View
zxhong 2003-03-26
  • 打赏
  • 举报
回复
以下内容来自引用:
以前很不明白Bean的scope属性的含义,今天做了一个实验,终于差不多搞明白了。贴出来与大家共享。
例子很简单,Bean的功能为取当前时间,其代码为:
Common.java:
--------------------
package XX;

import java.util.Date;
import java.text.*;

public class Common
{
Date d=new Date();
public String now(String s)
{
SimpleDateFormat formatter = new SimpleDateFormat(s);
return formatter.format(d);
}
}

测试页面的代码为:
date.jsp
-----------------------------------------------------------
<jsp:useBean id="cm" scope="XX" class="XX.Common"/>
<%=cm.now("yyyy-MM-dd HH:mm:ss") %>


测试结果:

1、当scope=application时,我们浏览date.jsp,这时显示出了系统时间。可是不管我们怎么刷新,重新打开一次浏览器,甚至换台机器,它显示的时间始终不变,都是当初的时间(即bean刚创建时得到的系统时间),因为scope=application,所以Bean的实例在内存中只有一份,此时只要不重新启动WEB服务,输出不会变化。

2、当scope=session时,浏览date.jsp,刷新时显示也不会变化。可是当我们重新打开一浏览器,即一个新的session,系统便再次创建Bean的实例,取得当前系统时间,这时将得到正确的时间。同样,再次刷新新打开的页面(新的session),显示也不会变化。

3、当scope=page/request(它们的区别只在于包含静态文件时,此处无区别)时,不断刷新页面将不断得到当前系统时间。

以上可以看出不同的scope,Bean有不同的作用域。使用时一定注意,不要将得到经常变动的Bean的scope设为application或session,那将得到不正确的结果.
zxhong 2003-03-26
  • 打赏
  • 举报
回复
Page 对象只可被来自它所在页的一个客户机程序存取。
request 对象在一个客户请求的生存时间内被一个客户机程序存取。
session 对象在整个用户会话的生存时间内被来自该应用程序中任何地方的一个客户机程序存取。
application 对象在应用程序的生存时间内可以被应用程序内来自任何页面的客户机程序存取。
jcq 2003-03-26
  • 打赏
  • 举报
回复
你说的对,就是类的实例,其实你很简单就能看到的,你调用一个jsp文件后,你的web server会生成一个java文件,你看看就知道是怎么回事了。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧