利用servlet怎么实现一个转发功能

  介绍

利用servlet怎么实现一个转发功能吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

<强> 1。什么是servlet转发?

servlet将用户的请求通过一组servlet来处理,每个servlet都有自己特定的职责,当该servlet完成自己的工作后将请求转发到下一个servlet来处理,这种通过不同servelet相互转发请求来完成对某个请求的处理过程就叫做servlet转发。

<强> 2。什么是servlet包含?

servlet包含就是源servlet将其他网络组件(servlet、html、jsp),生成的结果包含到自己的结果中。

<强> 3。为什么需要servlet转发和包含?

servlet对象是由servlet容器创建,servlet对象的服务()方法是由servlet容器调用,servlet之间是不允许相互调用(2.1 servlet API以前版本可以)。但是我们又需要通过多个servlet组件协调完成任务,同时方便代码维护管理,提高开发效率。这样就可以需要servlet转发和包含的技术支持。

<强> 4,转发和包含的相同点

(1)都是对同一个请求对象处理,源组件和目标组件共享同一个ServletRequest对象和ServletResponse对象。

(2)目标组件都可以是servlet、jsp、html。

(3)都依赖javax, servlet。RequestDispatcher接口。

<强> 5。RequestDIspatcher对象

该接口表示请求分发器

(1)获取RequestDIspatcher对象方法

调用ServletContext的getRequestDispather (String路径)方法获得。

调用ServletRequest的getRequestDispather (String路径)方法获得。

(2)两种方法的区别

ServletContext调用方法的参数必须为绝对路径,而ServletRequest调用方法参数可以是绝对路径也可以是相对路径。

<强> 6。请求转发案例

CheckServlet类用于处理用户请求参数。

包com.learn;
  
  进口javax.servlet.RequestDispatcher;
  进口javax.servlet.ServletException;
  进口javax.servlet.http.HttpServlet;
  进口javax.servlet.http.HttpServletRequest;
  进口javax.servlet.http.HttpServletResponse;
  进口java.io.IOException;
  进口java.io.PrintWriter;/* *
  *由管理员>包com.learn;
  
  进口org.json.HTTP;
  
  进口javax.servlet.ServletException;
  进口javax.servlet.http.HttpServlet;
  进口javax.servlet.http.HttpServletRequest;
  进口javax.servlet.http.HttpServletResponse;
  进口java.io.IOException;
  进口java.io.PrintWriter;/* *
  *由管理员> & lt; servlet>
  & lt; servlet-name> check
  & lt; servlet-class> com.learn.CheckServlet
  & lt;/servlet>
  & lt; servlet-mapping>
  & lt; servlet-name> check
  & lt; url-pattern>/check
  & lt;/servlet-mapping>
  
  & lt; servlet>
  & lt; servlet-name> out
  & lt; servlet-class> com.learn.OutServlet
  & lt;/servlet>
  & lt; servlet-mapping>
  & lt; servlet-name> out
  & lt; url-pattern>/out
  & lt;/servlet-mapping> 

<强> 7。包含(包括)案例

MainServlet 用于包含其他组件,并返回响应结果

包com.learn;
  
  进口javax.servlet.RequestDispatcher;
  进口javax.servlet.Servlet;
  进口javax.servlet.ServletContext;
  进口javax.servlet.ServletException;
  进口javax.servlet.http.HttpServlet;
  进口javax.servlet.http.HttpServletRequest;
  进口javax.servlet.http.HttpServletResponse;
  进口java.io.IOException;
  进口java.io.PrintWriter;/* *
  *由管理员> & lt; !DOCTYPE html>
  & lt; html lang=癳n"祝辞
  & lt; head>
  & lt;元charset=癠TF-8"祝辞
  & lt; title> header
  & lt;/head>
  & lt; body>
  & lt;字体大??“在欢迎ab
  & lt;/body>
  & lt;/html> 

GreetServlet

包com.learn;
  
  进口javax.servlet.ServletException;
  进口javax.servlet.http.HttpServlet;
  进口javax.servlet.http.HttpServletRequest;
  进口javax.servlet.http.HttpServletResponse;
  进口java.io.IOException;
  进口java.io.PrintWriter;/* *
  *由管理员> & lt; !DOCTYPE html>
  & lt; html lang=癳n"祝辞
  & lt; head>
  & lt;元charset=癠TF-8"祝辞
  & lt; title> footer
  & lt;/head>
  & lt; body>
  & lt; span>感谢stopping
  & lt;/body>
  & lt;/html> 

web。xm配置

利用servlet怎么实现一个转发功能