2024年4月4日发(作者:)

uestDispatcher("/SecondServlet?addParam=newParam").forward(request, response);

// direct("/WebSocket/SecondServlet?addParam=newParam");

String afterDispatch = "FirstServlet AfterDispatch";

ter().write(afterDispatch);

n(afterDispatch);

n("=====FirstServlet=====E ");

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

package chat;

import ption;

import ation;

import tException;

import vlet;

import rvlet;

import rvletRequest;

import rvletResponse;

/**

* Servlet implementation class FirstServlet

*/

@WebServlet("/SecondServlet")

public class SecondServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public SecondServlet() {

super();

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

n("=====SecondServlet=====S ");

n("request: " + request + "t response: " + response);

Enumeration parameterNames = ameterNames();

while (eElements()) {

String nextElement = ement();

n("key: " + nextElement + ", value: " + ameter(nextElement));

}

String dispose = "SecondServlet dispose";

ter().write(dispose);

n("=====SecondServlet=====E ");

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request, response);

}

}

1. 测试转发:

java控制台结果:

=====FirstServlet=====S

request: tFacade@123810d1 response:

seFacade@1ed812af

key: name, value: zs

FirstServlet BeforeDispatch

=====SecondServlet=====S

request: ationHttpRequest@175ea12f response:

seFacade@1ed812af

key: name, value: zs

key: addParam, value: newParam

=====SecondServlet=====E

FirstServlet AfterDispatch

=====FirstServlet=====E

2. 测试重定向

java控制台代码:

=====FirstServlet=====S

request: tFacade@123810d1 response:

seFacade@1ed812af

key: name, value: zs

FirstServlet BeforeDispatch

FirstServlet AfterDispatch

=====FirstServlet=====E

=====SecondServlet=====S

request: tFacade@123810d1 response:

seFacade@1ed812af

key: addParam, value: newParam

=====SecondServlet=====E