|
Servlet和JSP迈上新台阶(2) getRemotePort。返回发送请求的客户机或最后一个代理服务器的Internet Protocol(IP)源端口。
getLocalName。返回从中接收请求的IP接口的主机名。
getLocalAddr。返回从中接收请求的接口的IP地址。
getLocalPort。返回从中接收请求的接口的IP端口号。
请注意,在Servlet 2.3中,getServerName和getServerPort方法返回的值就是现在getLocalName和getLocalPort返回的值。在2.4版中,getServerName和getServerPort已重新定义。欲了解更多的信息,请查看API文档。
将一个JSP页面中的代码示例如下--
out.println("<br>Remote Port : " + request.getRemotePort()); out.println("<br>Local Name : " + request.getLocalName()); out.println("<br>Local Addr : " + request.getLocalAddr()); out.println("<br>Local Port : " +
request.getLocalPort());
--该代码生成这样的内容:
Remote Port : 3303 Local Name : localhost Local Addr : 127.0.0.1 Local Port : 8080
请求调度程序的新特性。使用请求调度程序可将当前请求传递给一个新的资源,或从当前页面引入另一个资源。Servlet 2.4增加了一些属性,它们将被添加到传递给另一个资源的一个Request对象上:
javax.servlet.forward.request_uri javax.servlet.forward.context_path javax.servlet.forward.servlet_path javax.servlet.forward.path_info javax.servlet.forward.query_string
如果一个Request对象未被传递,则这些属性的值为null。另一方面,在所传递来对象的资源中这些属性将具有非null值。当某一个资源必须只能通过另一个资源调用而不能直接调用时,这些属性值很有用。
举个例子,在一个叫做myApp的Context(上下文)中有一个名为ModernServlet的servlet, ModernServlet被传递给TargetServlet。 在TargetServlet中,显示代码清单2中的代码。
myApp的部署描述符包含以下和元素:
<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> <servlet> <servlet-name>Target</servlet-name> <servlet-class>TargetServlet </servlet-class>
</servlet> <servlet-mapping>
|