Web组件与Web容器有哪些,WEB组件的三种关联

Web组件与Web容器有哪些,WEB组件的三种关联,第1张

Web组件:有Jsp,Servlet等

Web容器:有tomcat ,jboss, resin, weblogic ,websphere, glassfish。可以理解为Web服务器。

WEB应用程序如此强大的原因之一就是他们能彼此链接和聚合信息资源。WEB组件之间存在三种关联关系:

l 请求转发

l URL重定向

l 包含关系

存在以上关联关系的Web组件可以是JSP或Servlet,对于Struts应用,则还包含Action,这些Web组件都可以访问HttpServletRequest和HttpServletResponse对象,具有处理请求、生成响应结果的功能。

1. 请求转发。

请求转发允许把请求转发给同一个应用程序中的其他Web组件。这种技术通常应用于Web应用中的Servlet流程控制器。

Servlet类使用 javax.servlet.RequestDispatcher.forward()方法来转发。转发目标将处理该请求并生成响应结果,或者将请求转发到另一个组件,最初请求的ServletRequest,ServletResponse对象被传递给转发目标组件,这使得目标组件可以访问整个请求上下文。值得注意的是,只能把请求转发给同一个web应用中的组件。下面是一个例子,当前的servlet组件要把请求转发给一个JSP组件,如hello.jsp,可以在Servlet的service()方法中执行以下代码:

RequestDispatcher rd = request.getRequestDispatcher(“hello.jsp”)

Rd.forward(request,response)

在jsp页面中,可以使用<jsp:forward>标签来转发请求,例如:

<jsp:forward page=”hello.jsp”/>

对于请求转发,转发的源组件和目标组件共享request范围内的共享数据。

2. 请求重定向

请求重定向类似于请求转发,但也有一些重要的区别:

l Web组件可以将请求重定向到任一URL,而不仅仅是同一应用中的URL。

l 重定向的目标组件与源组件之间不共用同一个HttpServletRequest对象,因此不能共享request范围内的共享数据。

例如当前应用的Servlet组件把请求转发到URL:http://jakarta.apache.org/struts,可以在Servlet的service()方法中执行以下代码:

Response.sendRedirect(“http://jakarta.apache.org/struts”)

HttpServletResponse的sendRedirect()方法向浏览器返回包含重定向的信息,浏览器根据这一信息迅速发出一个新的HTTP请求,请求访问重定向目标组件。

3. 包含

Servlet类使用javax.servlet.RequestDispatcher.include()方法包含其他的Web组件。例如当前的Servlet组件包含三个JSP文件:header.jsp/main.jsp/footer.jsp,则可以在servlet的service()方法中执行以下代码:

RequestDispatcher rd

Rd = req.getRequestDispatcher(“/header.jsp”)

Rd.include(req,res)

Rd = req.getRequestDispatcher(“/main.jsp”)

Rd.include(req,res)

Rd = req.getRequestDispatcher(“/footer.jsp”)

Rd.include(req,res)

在JSP文件中,可以通过〈include〉指令来包含其他的web资源,例如:

<%@ include file=”header.jsp”%>

<%@ include file=“main.jsp”%>

<%@ include file=”footer.jsp”%>

Web容器给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接跟容器中的环境变量交互,不必关注其它系统问题。主要有WEB服务器来实现。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。该容器提供的接口严格遵守J2EE规范中的WEB APPLICATION 标准。我们把遵守以上标准的WEB服务器就叫做J2EE中的WEB容器。

web容器是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求。

如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。一个服务器可以多个容器。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/345444.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存