HttpServlet中的请求重定向实现

实现方式

第一种:通过302和Location配合的使用,实现重定向

public class TestClass extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setStatus(302);
		response.setHeader("Location", "https://www.baidu.com");
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

第二种:通过sendRedirect(”URL”)方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Insert title here</title>
	</head>
	<body>
		<form action="http://localhost:8080/Demo_04/TestClass" method="get">
			用户名:<input type="text" name="userName">
			密码:<input type="password" name = "pw">
			<input type="submit" value="登陆按钮">
		</form>
	</body>
</html>

跳转

public class TestClass extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String name = request.getParameter("userName");
		String pw = request.getParameter("pw");
		if(name.equals("123")&& pw.equals("qwe")) {
			response.sendRedirect("https://www.baidu.com");
		}else {
			response.setContentType("text/html;charset=utf-8");
			response.getWriter().print("账号密码错误");
		}
	}
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

重定向的特点

1,浏览器地址栏发生变化
2,发送了两次请求,且都是由浏览器发送的请求

重定向的路径

由于是浏览器发送得到的请求,所以路径必须要带上项目名称

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章