Servlet学习-3

一、Servlet异常处理
当一个Servlet抛出一个异常时,Web容器在使用了exception-type元素的web.xml中搜索与抛出异常类型相匹配的配置。
必须在web.xml中使用error-page元素来指定对特定一场或HTTP状态码作出相应的Servlet调用。

web.xml配置
假设,有一个 ErrorHandler 的 Servlet 在任何已定义的异常或错误出现时被调用。以下将是在 web.xml 中创建的项。

<servlet>
	<servlet-name>ErrorHandler</servlet-name>
	<servlet-class>ErrorHandler</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>ErrorHandler</servlet-name>
	<url-pattern>/ErrorHandler</url-pattern>
<servlet-mapping>

<error-page>
	<error-code>404</error-code>
	<location>/ErrorHandler</location>
</error-page>
<error-page>
	<error-code>403</error-code>
	<location>/ErrorHandler</location>
</error-page>

<error-page>
	<exception-type>
		javax.servlet.ServletException
	</exception-type>
	<location>/ErrorHandler</location>
</error-page>

<error-page>
	<exception-type>java.io.IOException</exception-type>
	<location>/ErrorHandler</location>
</error-page>

以下是web.xml异常处理要注意的点:

  • Servlet ErrorHandler与其他的Servlet的定义方式一样,且在web.xml中进行配置。
  • 如果有错误状态代码出现,不管为 404(Not Found 未找到)或 403(Forbidden 禁止),则会调用ErrorHandler的Servlet。
  • 如果Web应用程序抛出ServletException或IOException,那么Web容器会调用ErrorHandler的Servlet
  • 您可以定义不同的错误处理程序来处理不同类型的错误或异常。

二、Servlet Cookie处理

Cookie是存储在客户端计算机上的文本文件,并保留了各种跟踪信息。
识别返回用户包括三个步骤:

  • 服务器脚本向浏览器发送一组Cookie。例如:姓名、年龄或识别号码等。
  • 浏览器将这些信息存储在本地计算机上,以备将来使用。
  • 当下一次浏览器向Web服务器发送任何请求时,浏览器会把这些Cookie信息发送到服务器,服务器将使用这些信息来识别用户。

Servlet Cookie处理需要对中文进行编码与解码,方法如下:

String str = java.net.URLEncoder.encode("中文","UTF-8");              //编码
String str = java.net.URLEncoder.encode("编码后的字符串","UTF-8");     //解码

Cookie剖析

Cookie通常设置在HTTP头信息中(虽然JavaScript也可以直接在浏览器上设置一个Cookie)。设置Cookie的Servlet会发送如下的头信息:

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=runoob.com
Connection: close
Content-Type: text/html

Set-Cookie头包含了一个名称值对、一个GMT日期、一个路径和一个域。名称和值会被URL编码。expires 字段是一个指令,告诉浏览器在给定的时间和日期之后"忘记"该 Cookie。

Servlet就能够通过请求方法request.getCookie()访问Cookie,该方法将返回一个Cookie对象的数组。

Servlet Cookie方法
在这里插入图片描述
在这里插入图片描述

通过Servlet设置Cookie

通过Servlet设置Cookie包括三个步骤:
(1)创建一个Servlet

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值