Servlet服务器客户端跳转

Posted hasagi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet服务器客户端跳转相关的知识,希望对你有一定的参考价值。

服务期跳转、服务器端转发、服务器端重定向是一个意思
使用“req.getRequestDispatcher(“跳转路径”).forward(req,resp)”实现服务器端转发

客户端发送请求后数据传输过程:
1、客户端发送请求至服务器;
2、服务器将请求分配给对应的控制器(servlet)处理,并在控制器中调用业务层方法获取数据;
3、将获取的数据保存至request内置对象;
4、在跳转页将保存至request内置对象的数据提取并在客户端上显示;
注:上述过程中“.html”文件无法获取保存request内置对象的数据,需要将html文件替换为动态页面“.jsp”

总结:
1、服务器端转发(跳转)的特征
1.实现的方式是调用RequestDispatcher类的forward()方法;
2.服务器端转发(跳转)并不会改变浏览器地址栏;
3.使用服务器端转发后,将在“.jsp”页面中取得保存request内置对象的属性;
2、使用${参数名}在“.jsp”中取得对应的值,该表达式就是EL表达式

 

客户端转发简介:
实现客户端的转发方式有很多(超链接转发、表单提交以及“JS”中使用的“Windows.location.href”),但是都基于客户端的直接实现。在servlet中实现客户端转发需要使用“sendRedirect("跳转路径")”

注:在服务器端转发可能在服务器端执行多次,但是对于客户端来说只发送了一次请求,但是客户端的转发每次转发都是客户端的一个新请求

总结:
1、客户端转发会改变浏览器的地址栏信息,而不再是表单提交的路径;
2、一次客户端转发过程至少发送两次请求(一次在提交表单时发送,一次在serlvet中调用sendRediect方法时);
3、客户端转发之后保存在request内置对象的数据将不存在(request只能保存本次请求的数据,而跳转请求有两个所以无法保存,可以使用setSession().setattribute()方法替代)

以上是关于Servlet服务器客户端跳转的主要内容,如果未能解决你的问题,请参考以下文章

Servlet的跳转

java servlet中的跳转页面的问题

Servlet中的请求转发和重定向

在servlet中输出文件后,如何再跳转到新页面

内部跳转(请求转发)和外部跳转(重定向)的区别?

Servlet跳转页面的重定向和转发