|
Servlet和JSP迈上新台阶(3) <servlet-name>Target</servlet-name> <url-pattern>/Target</url-pattern> </servlet-mapping>
下面是调用ModernServlet时控制台显示的结果:
javax.servlet.forward.request_uri : /myApp/Modern javax.servlet.forward.context_path : /myApp javax.servlet.forward.servlet_path : /Modern javax.servlet.forward.path_info : null javax.servlet.forward.query_string : null
将过滤器用于请求调度程序。Servlet 2.4在部署描述符中添加了一个新的元素,以便servlet程序员决定是否将过滤器(filters)应用于请求调度程序。元素的值可以是REQUEST(默认值)、FORWARD、INCLUDE和ERROR:
REQUEST。如果请求直接来自客户机则使用过滤器。
FORWARD。如果请求正由请求调度程序进行处理,表示与或相匹配的Web组件使用传递调用,则使用过滤器。
INCLUDE。只有在请求正由请求调度程序进行处理,表示与或相匹配的Web组件使用包含(include)调用时,才使用过滤器。
ERROR。只有在请求正由错误页面机制处理为一个与元素相匹配的错误资源时才使用过滤器。
Servlet 2.4只支持HTTP 1.1客户机。Servlet 2.3既支持HTTP 1.0,又支持HTTP 1.1,而Servlet 2.4与Servlet 2.3不同,它只支持HTTP 1.1客户机。作为过渡,HTTP/1.0状态码302(暂时建议)仍然存在,而且仍然由javax.servlet.http.HttpServletResponse接口中的SC_MOVED_TEMPORARILY表示。HTTP 1.1具有Found的状态码302,它由HttpServletResponse接口中的静态SC_FOUND表示。
Servlet用作欢迎页面。在Servlet 2.3中,你可以在部署描述符中使用元素列出欢迎文件--当收到一个不完整的URL时将显示的文件。但是,在Servlet 2.3中,在元素中只能使用HTML文件或JSP文件。在Servlet 2.4中,如今可以将一个servlet用作欢迎页面。下例为一个叫做Modern的servlet,它的类为ModernServlet.class,并已被映射到path /Modern。
<servlet> <servlet-name>Modern</servlet-name> <servlet-class>ModernServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>Modern</servlet-name> <url-pattern>/Modern</url-pattern> </servlet-mapping> <welcome-file-list>
<welcome-file>Modern</welcome-file> </welcome-file-list>
此时,若用户键入诸如http://domain/context/(不带资源文件)的URL时,就会调用ModernServlet。
对国际化的新支持。在Servlet 2.3中,没有办法直接告诉客户浏览器应当使用什么字符编码。要实现这一目的,你必须把一个java.util.Locale对象传递给javax.servlet.ServletResponse接口的setLocale方法,如下所示:
|