servlet重定向详解(八)

2025-05-29 0 97

本文实例为大家分享了servlet重定向的具体内容,供大家参考,具体内容如下

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 第一次请求的类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39
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 重定向的类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31
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重定向详解(八)

控制台输出结果:

servlet重定向详解(八)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/wwyx-xi/p/7608670.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 servlet重定向详解(八) https://www.kuaiidc.com/114382.html

相关文章

发表评论
暂无评论