Servlet和JSP迈上新台阶<servlet> <servlet-name>Target</servlet-name> <servlet-class>TargetServlet </servlet-class> </servlet>
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。
<welcome-file>Modern</welcome-file> 此时,若用户键入诸如http://domain/context/(不带资源文件)的URL时,就会调用ModernServlet。 对国际化的新支持。在Servlet 2.3中,没有办法直接告诉客户浏览器应当使用什么字符编码。要实现这一目的,你必须把一个java.util.Locale对象传递给javax.servlet.ServletResponse接口的setLocale方法,如下所示:
这意味着你必须首先创建一个Locale对象。 另外一种办法是,在Servlet 2.3中,你可以使用setContentType方法来传递内容类型和字符集,如:
在Servlet 2.4中,javax.servlet.ServletResponse接口中有两个支持国际化的新方法。第一个方法是setCharacterEncoding,它的用法如下:
使用setCharacterEncoding,你可以只将字符编码指定为一个字符串,而不必先创建Locale对象。不过,请注意,要让这种方法起作用,必须在调用getWriter方法之前以及响应提交之前调用它。 第二个新方法是getContextType,作为在ServletResponse对象中调用setContentType、setLocale或setCharacterEncoding方法的结果,它返回在ServletResponse对象中使用的内容类型。 除了javax.servlet.ServletResponse中的这两个方法之外,你还可以利用Servlet 2.4在部署描述符中定义一个新元素:它使servlet程序员不必在他/她的servlet中指定locale-to-charset映射。如何使用这一新元素的例子如下:
</locale-encoding-mapping>
不支持javax.servlet.SingleThreadModel接口。SingleThreadModel接口没有方法,它用于向servlet容器指明,它必须保证不会有两个线程同时执行实施该接口的servlet的服务方法。从servlet技术开始出现到现在,人们普遍误解了这个接口。现在大家都反对用它,因为它会造成混乱,并且在考虑线程安全时在安全性方面给servlet程序员一个错觉。在任何新的开发工作中决不应再使用这个接口。 JSP 2.0中的新特性 JSP 2.0(最初称为JSP 1.3)比JSP 1.2有了重要改进。当然,增加的最重要内容是JSP 2.0容器中加入了对表达式语言(EL)的支持。 上一篇:JSP 2.1技术规范投票通过 表达式语言有所改进 下一篇:jsp2.0新特性 更多相关文章
|
推荐文章
精彩文章
|