Java Web请求转发与重定向

转发

Java Web请求转发与重定向

①创建Servlet1 和Servlet2的Java文件

package zhuan;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(value="/aaa")
public class Servlet1 extends HttpServlet{
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		
		//获取前台传过来的信息
		String username = req.getParameter("username");
		System.out.println(username);
		
		/***
		 * 1.请求转发必须以斜杠开头,斜杠表示http://ip:port/工程名/	。映射到web目录
		 * 2.※※※※※请求转发也可以转发到Web工程下:    req.getRequestDispatcher("/a/index.html");
		 * 	 ※※※※※需要注意的是 如果在a/index.html中存在超链接返回到另一个界面 通常需要使用base标签来设置当前页面的相对路径参照的地址
		 * 	 ※※※※※在<head></head>中定义<base href="http://localhost:8080/项目名/a/index.html">
		 */
		RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2");
		
		requestDispatcher.forward(req, resp);
		
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
}
package zhuan;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Servlet2 extends HttpServlet{
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("我是Servlet2");
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}
}

②配置web.xml文件

<!-- servlet1 -->
<servlet>
    <servlet-name>Servlet1</servlet-name>
    <servlet-class>zhuan.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Servlet1</servlet-name>
    <url-pattern>/servlet1</url-pattern>
</servlet-mapping>
	
<!-- servlet2 -->
<servlet>
    <servlet-name>Servlet2</servlet-name>
    <servlet-class>zhuan.Servlet2</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Servlet2</servlet-name>
    <url-pattern>/servlet2</url-pattern>
</servlet-mapping>

重定向

Java Web请求转发与重定向

 请求重定向的两种方式:

  • 方式一:设置响应头
resp.setStatus(302);
resp.setHeader("Location", "/response2");
  • 方式二:使用servlet提供的ap(推荐使用)
resp.sendRedirect("response2");

上一篇:蓝桥杯真题(python版)(1)不同子串


下一篇:Servlet02.Servlet基础