利用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配置