这期内容当中小编将会给大家带来有关利用servlet怎么实现一个重定向功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
成都创新互联专注于企业成都全网营销推广、网站重做改版、新宁网站定制设计、自适应品牌网站建设、html5、商城网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为新宁等各大城市提供网站开发制作服务。
1.重定向是什么?
这里说的重定向是由http协议规定的一种机制。其工作流程如下所述。
(1)客户端发起http请求,访问服务器端组件。
(2)服务器端返回一个状态代码为302的响应结果。该代码的意思是让浏览器再访问另一个组件,响应结果中包含着访问新组件的url地址。新的访问组件可能在同一个应用中也可能不在同一个应用中。
(3)当浏览器接受到这种结果,会自动访问新的url.
(4)浏览器端接受新的url返回结果。
2.实现
重定向通过Servlet API 中HttpServletReponse接口提供的 sendRedirect(String location)方法完成。
3.重定向特点
3.1 servlet源组件的响应结果不会返回到客户端。
3.2 servlet源组件和目标组件不会共享同一个ServletRequest对象。
3.3 如果源组件在进行重定向前提前提交响应结果,会报异常。
3.4 重定向的地址不必是同一个服务器的应用。
4.案例
Check1Servlet 第一次请求的类
package com.learn; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * Created by Administrator on 2017/09/28. */ public class Check1Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userName = req.getParameter("name"); String message = ""; if(userName == null){ message = "please input your name"; } else { message = userName; } req.setAttribute("mess",message); PrintWriter out = resp.getWriter(); out.print("before redirect "); System.out.println("before redirect"); resp.sendRedirect("out1?mess="+message); out.print("after redirect"); System.out.println("after redirect"); out.close(); } }
Out1Servlet 重定向的类
package com.learn; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; /** * Created by Administrator on 2017/09/28. */ public class Out1Servlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String mess = (String) req.getAttribute("mess"); System.out.println("请求范围内的数据:"+mess); mess = req.getParameter("mess"); System.out.println("请求参数中的:"+mess); PrintWriter out = resp.getWriter(); out.write(mess); out.close(); } }
控制台输出结果:
上述就是小编为大家分享的利用servlet怎么实现一个重定向功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。