社区
Web 开发
帖子详情
同一目录下两个jsp文件,一个正常,一个访问时“404 Not Found”,怎么回事?晕死
booklove
2004-06-11 06:35:23
如题
同一目录下两个jsp文件,一个正常,一个访问时“404 Not Found”,怎么回事?
谢谢!
...全文
598
31
打赏
收藏
同一目录下两个jsp文件,一个正常,一个访问时“404 Not Found”,怎么回事?晕死
如题 同一目录下两个jsp文件,一个正常,一个访问时“404 Not Found”,怎么回事? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
31 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
booklove
2004-07-22
打赏
举报
回复
谢谢这么多朋友,是jsp文件本身有问题。结帐了,30回复20分没法分呀。
ilikedown
2004-06-14
打赏
举报
回复
人气真旺哦
whcaijin
2004-06-13
打赏
举报
回复
是你的b.jsp有问题才会出现这种情况,你把错误改了之后就能运行了.
wangwei8117
2004-06-13
打赏
举报
回复
我在帮朋友调试的时候也遇到类似问题的,可能是由于页面的设置有问题,主要是头部,就是那个开始的<%@ page....%>那个东西,里面有错误页面信息的,你和那个好的对照一下看有什么不同,也许改成相同就好了.
eureka0891
2004-06-13
打赏
举报
回复
文件里的问题.
先确定文件名是否正确,
第二就是把b.jsp里的都删掉,
然后:再一点点的加,看有没有问题
new_zero
2004-06-13
打赏
举报
回复
那就没有救了
abcpl
2004-06-13
打赏
举报
回复
把临时的工作目录删了再说
singnet
2004-06-13
打赏
举报
回复
注意一下文件名的大小写,404错误是找不到文件
jiankou2001
2004-06-13
打赏
举报
回复
你的文件名对不对啊???
好好查查!!
Jzealot
2004-06-13
打赏
举报
回复
同意yujiebo025(独舞黄纱)
wtjd
2004-06-13
打赏
举报
回复
应该是b.jsp 的问题?
solomonxh
2004-06-13
打赏
举报
回复
还没有调好?!
yujiebo025
2004-06-13
打赏
举报
回复
确保文件名正确下,有时候和服务器缓存机制有关,重启服务器看看。
或者删除WEB-INF/work 目录下的文件看看
zhukejun
2004-06-12
打赏
举报
回复
文件名大小写对不对
xiaotao0432
2004-06-12
打赏
举报
回复
同意上面的。
solomonxh
2004-06-12
打赏
举报
回复
也觉得是文件b的本身问题
ninghao37
2004-06-12
打赏
举报
回复
用绝对路径试一试,我也遇到过这样的问题,但用决对路径就可以了
xzhljsp
2004-06-12
打赏
举报
回复
仔细看看URL是否正确
lijinxing
2004-06-12
打赏
举报
回复
不用说,就是文件的问题
bon_jovi
2004-06-12
打赏
举报
回复
可能是文件出问题了。可以先写个最简单的jsp,然后一步一步加code
加载更多回复(11)
java-servlet-api.doc
Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份文档描述了JavaServletAPI的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。 JavaServletAPI的组成 JavaServletAPI由
两个
软件包组成:
一个
是对应HTTP的软件包,另
一个
是不对应HTTP的通用的软件包。这
两个
软件包的同
时
存在使得JavaServletAPI能够适应将来的其他请求-响应的协议。 这份文档以及刚才提及的Javadoc格式的文档都描述了这
两个
软件包,Javadoc格式的文档还描述了你应该如何使用这
两个
软件包中的所有方法。 有关规范 你也许对下面的这些Internet规范感兴趣,这些规范将直接影响到ServletAPI的发展和执行。你可以从http://info.internet.isi.edu/7c/in-notes/rfc/.cache找到下面提到的所有这些RFC规范。 RFC1738统一资源定位器(URL) RFC1808相关统一资源定位器 RFC1945超文本传输协议--HTTP/1.0 RFC2045多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第一部分:Internet信息体格式 RFC2046多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第二部分:媒体类型 RFC2047多用途网际邮件扩充协议(MIME)(多用途Internet邮件扩展)第三部分:信息标题扩展用于非ASCII文本 RFC2048多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第四部分:注册步骤 RFC2049多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第五部分:一致性标准和例子 RFC2068超文本传输协议--HTTP/1.1 RFC2069
一个
扩展HTTP:摘要
访问
鉴定 RFC2109HTTP状态管理机制 RFC2145HTTP版本号的使用和解释 RFC2324超文本CoffeePot控制协议(HTCPCP/1.0) 万维网协会(http://www.w3.org)管理着这些协议的规范和执行。 有关JavaServlets JavaTMservlets是
一个
不受平台约束的Java小程序,它可以被用来通过多种方法扩充
一个
Web服务器的功能。你可以把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并用效地扩展主机的处理能力。 Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。
一个
客户端程序,可以是
一个
Web浏览器,或者是非其他的可以连接上Internet的程序,它会
访问
Web服务器并发出请求。这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到客户端。 在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。 JavaServlet概论 Servlet与其他普通的server扩展机制有以下进步: 因为它采用了不同的进程处理模式,所以它比CGI更快。 它使用了许多Web服务器都支持的标准的API。 它继承了Java的所有优势,包括易升级以及平台无关性。 它可以调用Java所提供的大量的API的功能模块。 这份文档说明了JavaServletAPI的类和接口的方法。有关更多的信息,请参看下面的API说明。 Servlet的生命周期
一个
Javaservlet具有
一个
生命周期,这个生命周期定义了
一个
Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。 所有的JavaServlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在
一个
Servlet引擎中运行。Servlet引擎是Web服务器按照JavaServletAPI定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供
一个
运行Servlet的容器。 javax.servlet.Servlet接口定义了在Servlet的生命周期中特定
时
间以及特定顺序被调用的方法。 Servlet的解析和载入 Servlet引擎解析并载入
一个
Servlet,这个过程可以发生在引擎启动
时
,需要
一个
Servlet去响应请求
时
,以及在此之间的任何
时
候。 Servlet引擎利用Java类载入工具载入
一个
Servlet,Servlet引擎可以从
一个
本地的
文件
系统、
一个
远程的
文件
系统以及网络载入Servlet。 Servlet的初始化 Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息。这样,Servlet可以对自己进行配置。 init()方法获得了
一个
Servlet配置对象(ServletConfig)。这个对象在Servlet引擎中执行,并允许Servlet通过它获处相关参数。这个对象使得Servlet能够
访问
ServletContext对象。 Servlet处理请求\r Servlet被初始化之后,它已经可以处理来自客户端的请求,每
一个
来自客户端的请求都被描述成
一个
ServletRequest对象,Servlet的响应被描述成
一个
ServletResponse对象。 当客户端发出请求
时
,Servlet引擎传递给Servlet
一个
ServletRequest对象和
一个
ServletResponse对象,这
两个
对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权使用客户端发出的请求。Servlet可以通过ServletInputStream对象读取请求信息。 ServletResponse接口允许Servlet建立响应头和状态代码。通过执行这个接口,Servlet有权使用ServletOutputStream类来向客户端返回数据。 多线程和映射\r 在多线程的环境下,Servlet必须能处理许多同
时
发生的请求。例外的情况是这个Servlet执行了SingleThreadModel接口,如果是那样的话,Servlet只能同
时
处理
一个
请求。 Servlet依照Servlet引擎的映射来响应客户端的请求。
一个
映射对包括
一个
Servlet实例以及
一个
Servlet返回数据的URL,例如:HelloServletwith/hello/index.html。 然而,
一个
映射可能是由
一个
URL和许多Servlet实例组成,例如:
一个
分布式的Servlet引擎可能运行在不止
一个
的服务器中,这样的话,每
一个
服务器中都可能有
一个
Servlet实例,以平衡进程的载入。作为
一个
Servlet的开发者,你不能假定
一个
Servlet只有
一个
实例。 Servlet的卸载 Servlet引擎并不必需保证
一个
Servlet在任何
时
候或在服务开启的任何
时
候都被载入。Servlet引擎可以自由的在任何
时
候使用或清除
一个
Servlet。因此,我们不能依赖
一个
类或实例来存储重要的信息。 当Servlet引擎决定卸载
一个
Servlet
时
(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放正在使用的资源并存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。 在卸载
一个
Servlet之前,Servlet引擎必须等待所有的service()方法完成或超
时
结束(Servlet引擎会对超
时
作出定义)。当
一个
Servlet被卸载
时
,引擎将不能给Servlet发送任何请求。引擎必须释放Servlet并完成无用存储单元的收集 Servlet映射技术\r 作为
一个
Servlet引擎的开发者,你必须对于如何映射客户端的请求到Servlet有大量的适应性。这份说明文档不规定映射如何发生。但是,你必须能够自由地运用下面的所有技术: 映射
一个
Servlet到
一个
URL 例如,你可以指定
一个
特殊的Servlet它仅被来自/feedback/index.html的请求调用。 映射
一个
Servlet到以
一个
指定的
目录
名开始的所有URL 例如,你可以映射
一个
Servlet到/catalog,这样来自/catalog/、/catalog/garden和/catalog/housewares/index.html的请求都会被映射到这个Servlet。但是来自/catalogtwo或/catalog.html的请求没被映射。 映射
一个
Servlet到所有以
一个
特定的字段结尾的所有URL 例如,你可以映射
一个
来自于所有以in.thtml结尾的请求到
一个
特定的Servlet。 映射
一个
Servlet到
一个
特殊的URL/servlet/servlet_name。 例如,如果你建立了
一个
名叫listattributes的Servlet,你可以通过使用/servlet/listattributes来
访问
这个Servlet。 通过类名调用Servlet 例如,如果Servlet引擎接收了来自/servlet/com.foo.servlet.MailServlet的请求,Servlet引擎会载入这个com.foo.servlet.MailServlet类,建立实例,并通过这个Servlet来处理请求。 Servlet环境 ServletContext接口定义了
一个
Servlet环境对象,这个对象定义了
一个
在Servlet引擎上的Servlet的视图。通过使用这个对象,Servlet可以记录事件、得到资源并得到来自Servlet引擎的类(例如RequestDispatcher对象)。
一个
Servlet只能运行在
一个
Servlet环境中,但是不同的Servlet可以在Servlet引擎上有不同的视图。 如果Servlet引擎支持虚拟主机,每个虚拟主机有
一个
Servlet环境。
一个
Servlet环境不能在虚拟主机之间共享。 Servlet引擎能够允许
一个
Servlet环境有它自己的活动范围。 例如,
一个
Servlet环境是属于bank应用的,它将被映射到/bank
目录
下。在这种情况下,
一个
对getContext方法的调用会返回/bank的Servlet环境。 HTTP会话 HTTP是
一个
没有状态的协议。要建立
一个
有效的Web服务应用,你必须能够识别
一个
连续的来自远端的客户机的唯一的请求。随着
时
间的过去,发展了许多会话跟踪的技术,但是使用起来都比较麻烦。 JavaServletAPI提供了
一个
简单的接口,通过这个接口,Servlet引擎可以有效地跟踪用户的会话。 建立Session 因为HTTP是
一个
请求-响应协议,
一个
会话在客户机加入之前会被认为是
一个
新的会话。加入的意思是返回会话跟踪信息到服务器中,指出会话已被建立。在客户端加入之前,我们不能判断下
一个
客户端请求是目前会话的一部分。 在下面的情况下,Session会被认为是新的Session。 客户端的Session在此之前还不知道 客户端选择不加入Session,例如,如果客户端拒绝接收来自服务器的cookie 作为
一个
Servlet的开发者,你必须决定你的Web应用是否处理客户机不加入或不能加入Session。服务器会在Web服务器或Servlet规定的
时
间内维持
一个
Session对象。当Session终止
时
,服务器会释放Session对象以及所有绑定在Session上的对象。 绑定对象到Session中 如果有助于你处理应用的数据需求,你也许需要绑定对象到Session中,你可以通过
一个
唯一的名字绑定任何的对象到Session中,这
时
,你需要使用HttpSession对象。任何绑定到Session上的对象都可以被处理
同一
会话的Servlet调用。 有些对象可能需要你知道什么
时
候会被放置到Session中或从Session中移开。你可以通过使用HttpSessionBindingListener接口获得这些信息。当你的应用存储数据到Session中,或从Session中清除数据,Servlet都会通过HttpSessionBindingListener检杳什么类被绑定或被取消绑定。这个接口的方法会通报被绑定或被取消绑定的对象。 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份文档描述了JavaServletAPI的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。 JavaServletAPI的组成 JavaServletAPI由
两个
软件包组成:
一个
是对应HTTP的软件包,另
一个
是不对应HTTP的通用的软件包。这
两个
软件包的同
时
存在使得JavaServletAPI能够适应将来的其他请求-响应的协议。 这份文档以及刚才提及的Javadoc格式的文档都描述了这
两个
软件包,Javadoc格式的文档还描述了你应该如何使用这
两个
软件包中的所有方法。 有关规范 你也许对下面的这些Internet规范感兴趣,这些规范将直接影响到ServletAPI的发展和执行。你可以从http://info.internet.isi.edu/7c/in-notes/rfc/.cache找到下面提到的所有这些RFC规范。 RFC1738统一资源定位器(URL) RFC1808相关统一资源定位器 RFC1945超文本传输协议--HTTP/1.0 RFC2045多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第一部分:Internet信息体格式 RFC2046多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第二部分:媒体类型 RFC2047多用途网际邮件扩充协议(MIME)(多用途Internet邮件扩展)第三部分:信息标题扩展用于非ASCII文本 RFC2048多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第四部分:注册步骤 RFC2049多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第五部分:一致性标准和例子 RFC2068超文本传输协议--HTTP/1.1 RFC2069
一个
扩展HTTP:摘要
访问
鉴定 RFC2109HTTP状态管理机制 RFC2145HTTP版本号的使用和解释 RFC2324超文本CoffeePot控制协议(HTCPCP/1.0) 万维网协会(http://www.w3.org)管理着这些协议的规范和执行。 有关JavaServlets JavaTMservlets是
一个
不受平台约束的Java小程序,它可以被用来通过多种方法扩充
一个
Web服务器的功能。你可以把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并用效地扩展主机的处理能力。 Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。
一个
客户端程序,可以是
一个
Web浏览器,或者是非其他的可以连接上Internet的程序,它会
访问
Web服务器并发出请求。这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到客户端。 在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。 JavaServlet概论 Servlet与其他普通的server扩展机制有以下进步: 因为它采用了不同的进程处理模式,所以它比CGI更快。 它使用了许多Web服务器都支持的标准的API。 它继承了Java的所有优势,包括易升级以及平台无关性。 它可以调用Java所提供的大量的API的功能模块。 这份文档说明了JavaServletAPI的类和接口的方法。有关更多的信息,请参看下面的API说明。 Servlet的生命周期
一个
Javaservlet具有
一个
生命周期,这个生命周期定义了
一个
Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。 所有的JavaServlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在
一个
Servlet引擎中运行。Servlet引擎是Web服务器按照JavaServletAPI定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供
一个
运行Servlet的容器。 javax.servlet.Servlet接口定义了在Servlet的生命周期中特定
时
间以及特定顺序被调用的方法。 Servlet的解析和载入\r Servlet引擎解析并载入
一个
Servlet,这个过程可以发生在引擎启动
时
,需要
一个
Servlet去响应请求
时
,以及在此之间的任何
时
候。 Servlet引擎利用Java类载入工具载入
一个
Servlet,Servlet引擎可以从
一个
本地的
文件
系统、
一个
远程的
文件
系统以及网络载入Servlet。 Servlet的初始化 Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。 在初始化过程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息。这样,Servlet可以对自己进行配置。 init()方法获得了
一个
Servlet配置对象(ServletConfig)。这个对象在Servlet引擎中执行,并允许Servlet通过它获处相关参数。这个对象使得Servlet能够
访问
ServletContext对象。 Servlet处理请求\r Servlet被初始化之后,它已经可以处理来自客户端的请求,每
一个
来自客户端的请求都被描述成
一个
ServletRequest对象,Servlet的响应被描述成
一个
ServletResponse对象。 当客户端发出请求
时
,Servlet引擎传递给Servlet
一个
ServletRequest对象和
一个
ServletResponse对象,这
两个
对象作为参数传递到service()方法中。 Servlet也可以执行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权使用客户端发出的请求。Servlet可以通过ServletInputStream对象读取请求信息。 ServletResponse接口允许Servlet建立响应头和状态代码。通过执行这个接口,Servlet有权使用ServletOutputStream类来向客户端返回数据。 多线程和映射\r 在多线程的环境下,Servlet必须能处理许多同
时
发生的请求。例外的情况是这个Servlet执行了SingleThreadModel接口,如果是那样的话,Servlet只能同
时
处理
一个
请求。 Servlet依照Servlet引擎的映射来响应客户端的请求。
一个
映射对包括
一个
Servlet实例以及
一个
Servlet返回数据的URL,例如:HelloServletwith/hello/index.html。 然而,
一个
映射可能是由
一个
URL和许多Servlet实例组成,例如:
一个
分布式的Servlet引擎可能运行在不止
一个
的服务器中,这样的话,每
一个
服务器中都可能有
一个
Servlet实例,以平衡进程的载入。作为
一个
Servlet的开发者,你不能假定
一个
Servlet只有
一个
实例。 Servlet的卸载 Servlet引擎并不必需保证
一个
Servlet在任何
时
候或在服务开启的任何
时
候都被载入。Servlet引擎可以自由的在任何
时
候使用或清除
一个
Servlet。因此,我们不能依赖
一个
类或实例来存储重要的信息。 当Servlet引擎决定卸载
一个
Servlet
时
(例如,如果这个引擎被关闭或者需要让资源),这个引擎必须允许Servlet释放正在使用的资源并存储有关资料。为了完成以上工作,引擎会调用Servlet的destroy()方法。 在卸载
一个
Servlet之前,Servlet引擎必须等待所有的service()方法完成或超
时
结束(Servlet引擎会对超
时
作出定义)。当
一个
Servlet被卸载
时
,引擎将不能给Servlet发送任何请求。引擎必须释放Servlet并完成无用存储单元的收集 Servlet映射技术\r 作为
一个
Servlet引擎的开发者,你必须对于如何映射客户端的请求到Servlet有大量的适应性。这份说明文档不规定映射如何发生。但是,你必须能够自由地运用下面的所有技术: 映射
一个
Servlet到
一个
URL 例如,你可以指定
一个
特殊的Servlet它仅被来自/feedback/index.html的请求调用。 映射
一个
Servlet到以
一个
指定的
目录
名开始的所有URL 例如,你可以映射
一个
Servlet到/catalog,这样来自/catalog/、/catalog/garden和/catalog/housewares/index.html的请求都会被映射到这个Servlet。但是来自/catalogtwo或/catalog.html的请求没被映射。 映射
一个
Servlet到所有以
一个
特定的字段结尾的所有URL 例如,你可以映射
一个
来自于所有以in.thtml结尾的请求到
一个
特定的Servlet。 映射
一个
Servlet到
一个
特殊的URL/servlet/servlet_name。 例如,如果你建立了
一个
名叫listattributes的Servlet,你可以通过使用/servlet/listattributes来
访问
这个Servlet。 通过类名调用Servlet 例如,如果Servlet引擎接收了来自/servlet/com.foo.servlet.MailServlet的请求,Servlet引擎会载入这个com.foo.servlet.MailServlet类,建立实例,并通过这个Servlet来处理请求。 Servlet环境 ServletContext接口定义了
一个
Servlet环境对象,这个对象定义了
一个
在Servlet引擎上的Servlet的视图。通过使用这个对象,Servlet可以记录事件、得到资源并得到来自Servlet引擎的类(例如RequestDispatcher对象)。
一个
Servlet只能运行在
一个
Servlet环境中,但是不同的Servlet可以在Servlet引擎上有不同的视图。 如果Servlet引擎支持虚拟主机,每个虚拟主机有
一个
Servlet环境。
一个
Servlet环境不能在虚拟主机之间共享。 Servlet引擎能够允许
一个
Servlet环境有它自己的活动范围。 例如,
一个
Servlet环境是属于bank应用的,它将被映射到/bank
目录
下。在这种情况下,
一个
对getContext方法的调用会返回/bank的Servlet环境。 HTTP会话 HTTP是
一个
没有状态的协议。要建立
一个
有效的Web服务应用,你必须能够识别
一个
连续的来自远端的客户机的唯一的请求。随着
时
间的过去,发展了许多会话跟踪的技术,但是使用起来都比较麻烦。 JavaServletAPI提供了
一个
简单的接口,通过这个接口,Servlet引擎可以有效地跟踪用户的会话。 建立Session 因为HTTP是
一个
请求-响应协议,
一个
会话在客户机加入之前会被认为是
一个
新的会话。加入的意思是返回会话跟踪信息到服务器中,指出会话已被建立。在客户端加入之前,我们不能判断下
一个
客户端请求是目前会话的一部分。 在下面的情况下,Session会被认为是新的Session。 客户端的Session在此之前还不知道 客户端选择不加入Session,例如,如果客户端拒绝接收来自服务器的cookie 作为
一个
Servlet的开发者,你必须决定你的Web应用是否处理客户机不加入或不能加入Session。服务器会在Web服务器或Servlet规定的
时
间内维持
一个
Session对象。当Session终止
时
,服务器会释放Session对象以及所有绑定在Session上的对象。 绑定对象到Session中 如果有助于你处理应用的数据需求,你也许需要绑定对象到Session中,你可以通过
一个
唯一的名字绑定任何的对象到Session中,这
时
,你需要使用HttpSession对象。任何绑定到Session上的对象都可以被处理
同一
会话的Servlet调用。 有些对象可能需要你知道什么
时
候会被放置到Session中或从Session中移开。你可以通过使用HttpSessionBindingListener接口获得这些信息。当你的应用存储数据到Session中,或从Session中清除数据,Servlet都会通过HttpSessionBindingListener检杳什么类被绑定或被取消绑定。这个接口的方法会通报被绑定或被取消绑定的对象。 软件包:javax.servlet.http 所包含的接口:HttpServletRequest;HttpServletResponse;HttpSession;HttpSessionBindingListener;HttpSessionContext。 所包含的类:Cookie;HttpServlet;HttpSessionBindingEvent;HttpUtils。 一、HttpServletRequest接口 定义\ publicinterfaceHttpServletRequestextendsServletRequest; 用来处理
一个
对Servlet的HTTP格式的请求信息。 方法 1、getAuthType publicStringgetAuthType(); 返回这个请求的身份验证模式。 2、getCookies publicCookie[]getCookies(); 返回
一个
数组,该数组包含这个请求中当前的所有cookie。如果这个请求中没有cookie,返回
一个
空数组。 3、getDateHeader publiclonggetDateHeader(Stringname); 返回指定的请求头域的值,这个值被转换成
一个
反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。 如果头域不能转换,抛出
一个
IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。 4、getHeader publicStringgetHeader(Stringname); 返回
一个
请求头域的值。(译者注:与上
一个
方法不同的是,该方法返回
一个
字符串) 如果这个请求头域不存在,这个方法返回-1。 5、getHeaderNames publicEnumerationgetHeaderNames(); 该方法返回
一个
String对象的列表,该列表反映请求的所有头域名。 有的引擎可能不允许通过这种方法
访问
头域,在这种情况下,这个方法返回
一个
空的列表。 6、getIntHeader publicintgetIntHeader(Stringname); 返回指定的请求头域的值,这个值被转换成
一个
整数。 如果头域不能转换,抛出
一个
IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。 7、getMethod publicStringgetMethod(); 返回这个请求使用的HTTP方法(例如:GET、POST、PUT) 8、getPathInfo publicStringgetPathInfo(); 这个方法返回在这个请求的URL的Servlet路径之后的请求URL的额外的路径信息。如果这个请求URL包括
一个
查询字符串,在返回值内将不包括这个查询字符串。这个路径在返回之前必须经过URL解码。如果在这个请求的URL的Servlet路径之后没有路径信息。这个方法返回空值。 9、getPathTranslated publicStringgetPathTranslated(); 这个方法获得这个请求的URL的Servlet路径之后的额外的路径信息,并将它转换成
一个
真实的路径。在进行转换前,这个请求的URL必须经过URL解码。如果在这个URL的Servlet路径之后没有附加路径信息。这个方法返回空值。 10、getQueryString publicStringgetQueryString(); 返回这个请求URL所包含的查询字符串。
一个
查询字串符在
一个
URL中由
一个
“?”引出。如果没有查询字符串,这个方法返回空值。 11、getRemoteUser publicStringgetRemoteUser 返回作了请求的用户名,这个信息用来作HTTP用户论证。 如果在请求中没有用户名信息,这个方法返回空值。 12、getRequestedSessionId publicStringgetRequestedSessionId(); 返回这个请求相应的sessionid。如果由于某种原因客户端提供的sessionid是无效的,这个sessionid将与在当前session中的sessionid不同,与此同
时
,将建立
一个
新的session。 如果这个请求没与
一个
session关联,这个方法返回空值。 13、getRequestURI publicStringgetRequestURI(); 从HTTP请求的第一行返回请求的URL中定义被请求的资源的部分。如果有
一个
查询字符串存在,这个查询字符串将不包括在返回值当中。例如,
一个
请求通过/catalog/books?id=1这样的URL路径
访问
,这个方法将返回/catalog/books。这个方法的返回值包括了Servlet路径和路径信息。 如果这个URL路径中的的一部分经过了URL编码,这个方法的返回值在返回之前必须经过解码。 14、getServletPath publicStringgetServletPath(); 这个方法返回请求URL反映调用Servlet的部分。例如,
一个
Servlet被映射到/catalog/summer这个URL路径,而
一个
请求使用了/catalog/summer/casual这样的路径。所谓的反映调用Servlet的部分就是指/catalog/summer。 如果这个Servlet不是通过路径匹配来调用。这个方法将返回
一个
空值。 15、getSession publicHttpSessiongetSession(); publicHttpSessiongetSession(booleancreate); 返回与这个请求关联的当前的有效的session。如果调用这个方法
时
没带参数,那么在没有session与这个请求关联的情况下,将会新建
一个
session。如果调用这个方法
时
带入了
一个
布尔型的参数,只有当这个参数为真
时
,session才会被建立。 为了确保session能够被完全维持。Servlet开发者必须在响应被提交之前调用该方法。 如果带入的参数为假,而且没有session与这个请求关联。这个方法会返回空值。 16、isRequestedSessionIdValid publicbooleanisRequestedSessionIdValid(); 这个方法检查与此请求关联的session当前是不是有效。如果当前请求中使用的session无效,它将不能通过getSession方法返回。 17、isRequestedSessionIdFromCookie publicbooleanisRequestedSessionIdFromCookie(); 如果这个请求的sessionid是通过客户端的
一个
cookie提供的,该方法返回真,否则返回假。 18、isRequestedSessionIdFromURL publicbooleanisRequestedSessionIdFromURL(); 如果这个请求的sessionid是通过客户端的URL的一部分提供的,该方法返回真,否则返回假。请注意此方法与isRequestedSessionIdFromUrl在URL的拼写上不同。 以下方法将被取消\\r 19、isRequestedSessionIdFromUrl publicbooleanisRequestedSessionIdFromUrl(); 该方法被isRequestedSessionIdFromURL代替。 二、HttpServletResponse接口 定义\\r publicinterfaceHttpServletResponseextendsServletResponse 描述
一个
返回到客户端的HTTP回应。这个接口允许Servlet程序员利用HTTP协议规定的头信息。 成员变量 publicstaticfinalintSC_CONTINUE=100; publicstaticfinalintSC_SWITCHING_PROTOCOLS=101; publicstaticfinalintSC_OK=200; publicstaticfinalintSC_CREATED=201; publicstaticfinalintSC_ACCEPTED=202; publicstaticfinalintSC_NON_AUTHORITATIVE_INFORMATION=203; publicstaticfinalintSC_NO_CONTENT=204; publicstaticfinalintSC_RESET_CONTENT=205; publicstaticfinalintSC_PARTIAL_CONTENT=206; publicstaticfinalintSC_MULTIPLE_CHOICES=300; publicstaticfinalintSC_MOVED_PERMANENTLY=301; publicstaticfinalintSC_MOVED_TEMPORARILY=302; publicstaticfinalintSC_SEE_OTHER=303; publicstaticfinalintSC_NOT_MODIFIED=304; publicstaticfinalintSC_USE_PROXY=305; publicstaticfinalintSC_BAD_REQUEST=400; publicstaticfinalintSC_UNAUTHORIZED=401; publicstaticfinalintSC_PAYMENT_REQUIRED=402; publicstaticfinalintSC_FORBIDDEN=403; publicstaticfinalintSC_NOT_FOUND=
404
; publicstaticfinalintSC_METHOD_NOT_ALLOWED=405; publicstaticfinalintSC_NOT_ACCEPTABLE=406; publicstaticfinalintSC_PROXY_AUTHENTICATION_REQUIRED=407; publicstaticfinalintSC_REQUEST_TIMEOUT=408; publicstaticfinalintSC_CONFLICT=409; publicstaticfinalintSC_GONE=410; publicstaticfinalintSC_LENGTH_REQUIRED=411; publicstaticfinalintSC_PRECONDITION_FAILED=412; publicstaticfinalintSC_REQUEST_ENTITY_TOO_LARGE=413; publicstaticfinalintSC_REQUEST_URI_TOO_LONG=414; publicstaticfinalintSC_UNSUPPORTED_MEDIA_TYPE=415; publicstaticfinalintSC_INTERNAL_SERVER_ERROR=500; publicstaticfinalintSC_NOT_IMPLEMENTED=501; publicstaticfinalintSC_BAD_GATEWAY=502; publicstaticfinalintSC_SERVICE_UNAVAILABLE=503; publicstaticfinalintSC_GATEWAY_TIMEOUT=504; publicstaticfinalintSC_HTTP_VERSION_NOT_SUPPORTED=505; 以上HTTP产状态码是由HTTP/1.1定义的。 方法 1、addCookie publicvoidaddCookie(Cookiecookie); 在响应中增加
一个
指定的cookie。可多次调用该方法以定义多个cookie。为了设置适当的头域,该方法应该在响应被提交之前调用。 2、containsHeader publicbooleancontainsHeader(Stringname); 检查是否设置了指定的响应头。 3、encodeRedirectURL publicStringencodeRedirectURL(Stringurl); 对sendRedirect方法使用的指定URL进行编码。如果不需要编码,就直接返回这个URL。之所以提供这个附加的编码方法,是因为在redirect的情况下,决定是否对URL进行编码的规则和一般情况有所不同。所给的URL必须是
一个
绝对URL。相对URL不能被接收,会抛出
一个
IllegalArgumentException。 所有提供给sendRedirect方法的URL都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。 4、encodeURL publicStringencodeURL(Stringurl); 对包含sessionID的URL进行编码。如果不需要编码,就直接返回这个URL。Servlet引擎必须提供URL编码方法,因为在有些情况下,我们将不得不重写URL,例如,在响应对应的请求中包含
一个
有效的session,但是这个session不能被非URL的(例如cookie)的手段来维持。 所有提供给Servlet的URL都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。 5、sendError publicvoidsendError(intstatusCode)throwsIOException; publicvoidsendError(intstatusCode,Stringmessage)throws IOException; 用给定的状态码发给客户端
一个
错误响应。如果提供了
一个
message参数,这将作为响应体的一部分被发出,否则,服务器会返回错误代码所对应的标准信息。 调用这个方法后,响应立即被提交。在调用这个方法后,Servlet不会再有更多的输出。 6、sendRedirect publicvoidsendRedirect(Stringlocation)throwsIOException; 使用给定的路径,给客户端发出
一个
临
时
转向的响应(SC_MOVED_TEMPORARILY)。给定的路径必须是绝对URL。相对URL将不能被接收,会抛出
一个
IllegalArgumentException。 这个方法必须在响应被提交之前调用。调用这个方法后,响应立即被提交。在调用这个方法后,Servlet不会再有更多的输出。 7、setDateHeader publicvoidsetDateHeader(Stringname,longdate); 用
一个
给定的名称和日期值设置响应头,这里的日期值应该是反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。如果响应头已经被设置,新的值将覆盖当前的值。 8、setHeader publicvoidsetHeader(Stringname,Stringvalue); 用
一个
给定的名称和域设置响应头。如果响应头已经被设置,新的值将覆盖当前的值。 9、setIntHeader publicvoidsetIntHeader(Stringname,intvalue); 用
一个
给定的名称和整形值设置响应头。如果响应头已经被设置,新的值将覆盖当前的值。 10、setStatus publicvoidsetStatus(intstatusCode); 这个方法设置了响应的状态码,如果状态码已经被设置,新的值将覆盖当前的值。 以下的几个方法将被取消\ 11、encodeRedirectUrl publicStringencodeRedirectUrl(Stringurl); 该方法被encodeRedirectURL取代。 12、encodeUrl publicStringencodeUrl(Stringurl); 该方法被encodeURL取代。 13、setStatus publicvoidsetStatus(intstatusCode,Stringmessage); 这个方法设置了响应的状态码,如果状态码已经被设置,新的值将覆盖当前的值。如果提供了
一个
message,它也将会被作为响应体的一部分被发送。 三、HttpSession接口 定义\ publicinterfaceHttpSession 这个接口被Servlet引擎用来实现在HTTP客户端和HTTP会话两者的关联。这种关联可能在多外连接和请求中持续一段给定的
时
间。session用来在无状态的HTTP协议下越过多个请求页面来维持状态和识别用户。
一个
session可以通过cookie或重写URL来维持。 方法 1、getCreationTime publiclonggetCreationTime(); 返回建立session的
时
间,这个
时
间表示为自1970-1-1日(GMT)以来的毫秒数。 2、getId publicStringgetId(); 返回分配给这个session的标识符。
一个
HTTPsession的标识符是
一个
由服务器来建立和维持的唯一的字符串。 3、getLastAccessedTime publiclonggetLastAccessedTime(); 返回客户端最后一次发出与这个session有关的请求的
时
间,如果这个session是新建立的,返回-1。这个
时
间表示为自1970-1-1日(GMT)以来的毫秒数。 4、getMaxInactiveInterval publicintgetMaxInactiveInterval(); 返加
一个
秒数,这个秒数表示客户端在不发出请求
时
,session被Servlet引擎维持的最长
时
间。在这个
时
间之后,Servlet引擎可能被Servlet引擎终止。如果这个session不会被终止,这个方法返回-1。 当session无效后再调用这个方法会抛出
一个
IllegalStateException。 5、getValue publicObjectgetValue(Stringname); 返回
一个
以给定的名字绑定到session上的对象。如果不存在这样的绑定,返回空值。 当session无效后再调用这个方法会抛出
一个
IllegalStateException。 6、getValueNames publicString[]getValueNames(); 以
一个
数组返回绑定到session上的所有数据的名称。 当session无效后再调用这个方法会抛出
一个
IllegalStateException。 7、invalidate publicvoidinvalidate(); 这个方法会终止这个session。所有绑定在这个session上的数据都会被清除。并通过HttpSessionBindingListener接口的valueUnbound方法发出通告。 8、isNew publicbooleanisNew(); 返回
一个
布尔值以判断这个session是不是新的。如果
一个
session已经被服务器建立但是还没有收到相应的客户端的请求,这个session将被认为是新的。这意味着,这个客户端还没有加入会话或没有被会话公认。在他发出下
一个
请求
时
还不能返回适当的session认证信息。 当session无效后再调用这个方法会抛出
一个
IllegalStateException。 9、putValue publicvoidputValue(Stringname,Objectvalue); 以给定的名字,绑定给定的对象到session中。已存在的同名的绑定会被重置。这
时
会调用HttpSessionBindingListener接口的valueBound方法。 当session无效后再调用这个方法会抛出
一个
IllegalStateException。 10、removeValue publicvoidremoveValue(Stringname); 取消给定名字的对象在session上的绑定。如果未找到给定名字的绑定的对象,这个方法什么出不做。这
时
会调用HttpSessionBindingListener接口的valueUnbound方法。 当session无效后再调用这个方法会抛出
一个
IllegalStateException。 11、setMaxInactiveInterval publicintsetMaxInactiveInterval(intinterval); 设置
一个
秒数,这个秒数表示客户端在不发出请求
时
,session被Servlet引擎维持的最长
时
间。 以下这个方法将被取消\ 12、getSessionContext publicHttpSessionContextgetSessionContext(); 返回session在其中得以保持的环境变量。这个方法和其他所有HttpSessionContext的方法一样被取消了。 四、HttpSessionBindingListener接口 定义\ publicinterfaceHttpSessionBindingListener 这个对象被加入到HTTP的session中,执行这个接口会通告有没有什么对象被绑定到这个HTTPsession中或被从这个HTTPsession中取消绑定。 方法 1、valueBound publicvoidvalueBound(HttpSessionBindingEventevent); 当
一个
对象被绑定到session中,调用此方法。HttpSession.putValue方法被调用
时
,Servlet引擎应该调用此方法。 2、valueUnbound publicvoidvalueUnbound(HttpSessionBindingEventevent); 当
一个
对象被从session中取消绑定,调用此方法。HttpSession.removeValue方法被调用
时
,Servlet引擎应该调用此方法。 五、HttpSessionContext接口 定义\ 此接口将被取消\ publicinterfaceHttpSessionContext 这个对象是与一组HTTPsession关联的单一的实体。 这个接口由于安全的原因被取消,它出现在目前的版本中仅仅是为了兼容性的原因。这个接口的方法将模拟以前的版本的定义返回相应的值。 方法 1、getSession publicHttpSessiongetSession(StringsessionId); 当初用来返回与这个sessionid相关的session。现在返回空值。 2、getIds publicEnumerationgetIds(); 当初用来返回这个环境下所有sessionid的列表。现在返回空的列表。 六、Cookie类\ 定义\ publicclassCookieimplementsCloneable 这个类描述了
一个
cookie,有关cookie的定义你可以参照NetscapeCommunicationsCorporation的说明,也可以参照RFC2109。 构造函数 publicCookie(Stringname,Stringvalue); 用
一个
name-value对定义
一个
cookie。这个name必须能被HTTP/1.1所接受。 以字符$开头的name被RFC2109保留。 给定的name如果不能被HTTP/1.1所接受,该方法抛出
一个
IllegalArgumentException。 方法 1、getComment publicStringgetComment(); 返回描述这个cookie目的的说明,如果未定义这个说明,返回空值。 2、getDomain publicStringgetDomain(); 返回这个cookie可以出现的区域,如果未定义区域,返回空值。 3、getMaxAge publicintgetMaxAge(); 这个方法返回这个cookie指定的最长存活
时
期。如果未定义这个最长存活
时
期,该方法返回-1。 4、getName publicStringgetName(); 该方法返回cookie名。 5、getPath publicStringgetPath(); 返回这个cookie有效的所有URL路径的前缀,如果未定义,返回空值。 6、getSecure publicbooleangetSecure(); 如果这个cookie只通过安全通道传输返回真,否则返回假。 7、getValue publicStringgetValue(); 该方法返回cookie的值。 8、getVersion publicintgetVersion(); 返回cookie的版本。版本1由RFC2109解释。版本0由NetscapeCommunicationsCorporation的说明解释。新构造的cookie默认使用版本0。 9、setComment publicvoidsetComment(Stringpurpose); 如果
一个
用户将这个cookie提交给另
一个
用户,必须通过这个说明描述这个cookie的目的。版本0不支持这个属性。 10、setDomain publicvoidsetDomain(Stringpattern); 这个方法设置cookie的有效域的属性。这个属性指定了cookie可以出现的区域。
一个
有效域以
一个
点开头(.foo.com),这意味着在指定的域名解析系统的区域中(可能是www.foo.com但不是a.b.foo.com)的主机可以看到这个cookie。默认情况是,cookie只能返回保存它的主机。 11、setMaxAge publicvoidsetMaxAge(intexpiry); 这个方法设定这个cookie的最长存活
时
期。在该存活
时
期之后,cookie会被终目。负数表示这个cookie不会生效,0将从客户端删除这个cookie。 12、setPath publicvoidsetPath(Stringuri); 这个方法设置cookie的路径属性。客户端只能向以这个给定的路径String开头的路径返回cookie。 13、setSecure publicvoidsetSecure(booleanflag); 指出这个cookie只能通过安全通道(例如HTTPS)发送。只有当产生这个cookie的服务器使用安全协议发送这个cookie值
时
才能这样设置。 14、setValue publicvoidsetValue(StringnewValue); 设置这个cookie的值,对于二进制数据采用BASE64编码。 版本0不能使用空格、{}、()、=、,、“”、/、?、@、:以及;。 15、setVersion publicvoidsetVersion(intv); 设置cookie的版本号 七、HttpServlet类\ 定义\ publicclassHttpServletextendsGenericServletimplements Serializable 这是
一个
抽象类,用来简化HTTPServlet写作的过程。它是GenericServlet类的扩充,提供了
一个
处理HTTP协议的框架。 在这个类中的service方法支持例如GET、POST这样的标准的HTTP方法。这一支持过程是通过分配他们到适当的方法(例如doGet、doPost)来实现的。 方法 1、doDelete protectedvoiddoDelete(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理
一个
HTTPDELETE操作。这个操作允许客户端请求从服务器上删除URL。这一操作可能有负面影响,对此用户就负起责任。 这一方法的默认执行结果是返回
一个
HTTPBAD_REQUEST错误。当你要处理DELETE请求
时
,你必须重载这一方法。 2、doGet protectedvoiddoGet(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理
一个
HTTPGET操作。这个操作允许客户端简单地从
一个
HTTP服务器“获得”资源。对这个方法的重载将自动地支持HEAD方法。 GET操作应该是安全而且没有负面影响的。这个操作也应该可以安全地重复。 这一方法的默认执行结果是返回
一个
HTTPBAD_REQUEST错误。 3、doHead protectedvoiddoHead(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理
一个
HTTPHEAD操作。默认的情况是,这个操作会按照
一个
无条件的GET方法来执行,该操作不向客户端返回任何数据,而仅仅是返回包含内容长度的头信息。 与GET操作一样,这个操作应该是安全而且没有负面影响的。这个操作也应该可以安全地重复。 这个方法的默认执行结果是自动处理HTTPHEAD操作,这个方法不需要被
一个
子类执行。 4、doOptions protectedvoiddoOptions(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理
一个
HTTPOPTION操作。这个操作自动地决定支持哪一种HTTP方法。例如,
一个
Servlet写了
一个
HttpServlet的子类并重载了doGet方法,doOption会返回下面的头: Allow:GET,HEAD,TRACE,OPTIONS 你一般不需要重载这个方法。 5、doPost protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理
一个
HTTPPOST操作。这个操作包含请求体的数据,Servlet应该按照他行事。 这个操作可能有负面影响。例如更新存储的数据或在线购物。 这一方法的默认执行结果是返回
一个
HTTPBAD_REQUEST错误。当你要处理POST操作
时
,你必须在HttpServlet的子类中重载这一方法。 6、doPut protectedvoiddoPut(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理
一个
HTTPPUT操作。这个操作类似于通过FTP发送
文件
。 这个操作可能有负面影响。例如更新存储的数据或在线购物。 这一方法的默认执行结果是返回
一个
HTTPBAD_REQUEST错误。当你要处理PUT操作
时
,你必须在HttpServlet的子类中重载这一方法。 7、doTrace protectedvoiddoTrace(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; 被这个类的service方法调用,用来处理
一个
HTTPTRACE操作。这个操作的默认执行结果是产生
一个
响应,这个响应包含
一个
反映trace请求中发送的所有头域的信息。 当你开发Servlet
时
,在多数情况下你需要重载这个方法。 8、getLastModified protectedlonggetLastModified(HttpServletRequestrequest); 返回这个请求实体的最后修改
时
间。为了支持GET操作,你必须重载这一方法,以精确地反映最后修改的
时
间。这将有助于浏览器和代理服务器减少装载服务器和网络资源,从而更加有效地工作。返回的数值是自1970-1-1日(GMT)以来的毫秒数。 默认的执行结果是返回
一个
负数,这标志着最后修改
时
间未知,它也不能被
一个
有条件的GET操作使用。 9、service protectedvoidservice(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException, IOException; publicvoidservice(ServletRequestrequest,ServletResponseresponse) throwsServletException,IOException; 这是
一个
Servlet的HTTP-specific方案,它分配请求到这个类的支持这个请求的其他方法。 当你开发Servlet
时
,在多数情况下你不必重载这个方法。 八、HttpSessionBindingEvent类\ 定义\ publicclassHttpSessionBindingEventextendsEventObject 这个事件是在监听到HttpSession发生绑定和取消绑定的情况
时
连通HttpSessionBindingListener的。这可能是
一个
session被终止或被认定无效的结果。 事件源是HttpSession.putValue或HttpSession.removeValue。 构造函数 publicHttpSessionBindingEvent(HttpSessionsession,Stringname); 通过引起这个事件的Session和发生绑定或取消绑定的对象名构造
一个
新的HttpSessionBindingEvent。 方法 1、getName publicStringgetName(); 返回发生绑定和取消绑定的对象的名字。 2、getSession publicHttpSessiongetSession(); 返回发生绑定和取消绑定的session的名字。 九、HttpUtils类\ 定义\ publicclassHttpUtils 收集HTTPServlet使用的静态的有效的方法。 方法 1、getRequestURL publicstaticStringBuffergetRequestURL(HttpServletRequest request); 在服务器上重建客户端用来建立请求的URL。这个方法反映了不同的协议(例如http和https)和端口,但不包含查询字符串。 这个方法返回
一个
StringBuffer而不是
一个
String,这样URL可以被Servlet开发者有效地修改。 2、parsePostData publicstaticHashtableparsePostData(intlen, ServletInputstreamin); 解析
一个
包含MIME类型application/x-www-form-urlencoded的数据的流,并创建
一个
具有关键值-数据对的hashtable。这里的关键值是字符串,数据是该字符串所对应的值的列表。
一个
关键值可以在POST的数据中出现一次或多次。这个关键值每出现一次,它的相应的值就被加入到hashtable中的字符串所对应的值的列表中。 从POST数据读出的数据将经过URL解码,+将被转换为空格以十六进制传送的数据(例如%xx)将被转换成字符。 当POST数据无效
时
,该方法抛出
一个
IllegalArgumentException。 3、parseQueryString publicstaticHashtableparseQueryString(Strings); 解析
一个
查询字符串,并创建
一个
具有关键值-数据对的hashtable。这里的数据是该字符串所对应的值的列表。
一个
关键值可以出现一次或多次。这个关键值每出现一次,它的相应的值就被加入到hashtable中的字符串所对应的值的列表中。 从查询字符串读出的数据将经过URL解码,+将被转换为空格以十六进制传送的数据(例如%xx)将被转换成字符。 当查询字符串无效
时
,该方法抛出
一个
IllegalArgumentException。 bytecode 字节码:由Java编译器和Java解释程序生成的机器代码。 cookie 由Web服务器建立的数据,该数据存储在用户的计算机上,提供了
一个
Web站点跟踪用户的参数并存储在用户自己硬盘上的方法。 HTTP 超文本传输协议。
一个
请求响应协议用来连接WWW服务器向客户端浏览器传输HTML页面。 输入流对象\r
一个
对象,由ServletInputStream类定义,被Servlet用来从客户端读取请求。 映射\r 由Servlet实例和Servlet返回数据的URL组成的一对,例如,HelloServlet和/hello/index.html。 输出流对象\r
一个
对象,由ServletOutputStreamclass类定义,被Servlet用来向客户端返回数据。 requestdispatcherobject 由RequestDispatcher接口定义的
一个
对象,用来从客户端接收请求,并将其发送到Web服务器上可用的其他资源(例如Servlet、CGI、HTML
文件
或
JSP
文件
)。 sandboxedservlet 在
一个
安全性约束下运行的Servlet。 servlet
一个
小的,具有平台无关性的,没有图形用户界面的Java程序。它可以在许多方面扩充Web服务的功能。 servletconfigurationobject ServletConfig接口定义的
一个
对象,用来配置
一个
Servlet。 servletcontextobject ServletContext接口定义的
一个
对象。给予Servlet有关Servlet引擎的信息。 servlet引擎\r 由Web服务器提供商制作的
一个
环境,可以允许Servlet在具体的Web服务器上运行。 servlet请求对象 由ServletRequest接口定义的
一个
对象,允许Servlet获得用关客户端请求的数据。 servletresponseobject 由ServletResponse接口定义的
一个
对象,允许Servlet作出响应。 servletrunner JavaServletDeveloper’sKit(JSDK)中的sun.servlet.http.HttpServer过程,它使得Servlet得以运行。 会话跟踪 在
一个
Web应用程序中,识别
一个
从同
一个
客户端发出的连续的唯一的请求的能力。 SSL 加密套接字协议层。
一个
安全协议,用来在Iternet上的客户端浏览器和服务器交换密钥和加密数据。 URI 统一资源标识。定义
一个
Internet地址,它是
一个
URL的超集。 URL 统一资源路径。这个地址定义了到达
一个
WWW上的
文件
的路线,通常由协议前缀、域名、
目录
名和
文件
名组成。
java
404
错误_初拾Java(问题一:
404
错误,页面找不到)
做测试尤其是想走自动化测试之路的人,怎么可以不会码代码?!怒了。。。再次开始拾起Java,坚持坚持!!!刚写了
一个
JSP
页面,想在Myeclipse里面跑来试试,结果搞了半天出现以下错误:试着去跑index.
jsp
,没问题呀,浏览器可以显示的呀,然后就去百度各种导致页面找不到的原因,下面这位的解决方法挺全的,先收了。1.未部署Web应用2.URL输入错误a.查看URL的IP地址和端口号是否书写正确...
javawen之
jsp
从入门到项目实战(
jsp
+servlet)
JSP
全称Java Server Pages,是一种动态网页开发技术。它使用
JSP
标签在HTML网页中插入Java代码。标签通常以结束。
JSP
是一种Java servlet,主要用于实现Java web应用程序的用户界面部分
JSP
通过网页表单获取用户输入数据、
访问
数据库及其他数据源,然后动态地创建网页。 本课程对
JSP
做了详细讲解,主要涉及的课程内容:
jsp
的底层原理,
jsp
与servlet的区别,
jsp
页面如何插入java代码,
jsp
中的3个指令、7个动作,9个内置对象的使用,EL表达式,JSTL标签,如何自定义标签,MVC模式,
jsp
+servlet实战案例
JSP
期末考试复习习题及答案
以下习题是对于平
时
课堂小测的整理,如有错误敬请指正! 欢迎一起交流~ 预祝各位小伙伴们考试顺利! Test1 一. 单选题 – 1.(单选题)当用户请求
jsp
页面
时
,
JSP
引擎就会执行该页面的字节码
文件
响应客户的请求,执行字节码
文件
的结果是() A. 发送
一个
JSP
源
文件
到客户端 B. 发送
一个
Java
文件
到客户端 C. 发送
一个
HTML页面到客户端 D. 什么都不做 – 2.(单选题)下列动态网页和静态网页的根本区别描述错误的是( D) A. 静态网页服务器端返回的HTML
文件
是事先存储好的 B. 动.
Servlet与
JSP
教程
Servlet与
JSP
教程1 概述 1.1 Java Servlet及其特点 1.2
JSP
及其特点 2 安装 2.1 安装Servlet和
JSP
开发工具 2.2 安装支持Servlet的Web服务器 3 Servlet 3.1 Servlet基本结构 3.2 输出纯文本的简单Servlet 3.2.1 HelloWorl
Web 开发
81,091
社区成员
341,719
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章