HttpServletResponse应用之请求重定向

概念: 所谓请求重定向就是在Web服务器接受到客户端的请求后,可能由于某些条件的限制,不能访问当前请求URL所指向的Web资源,而是指定了一个新的资源路径,让客户端重新发送请求。

原理: 为实现请求重定向,在HttpServletResponse接口中,定义了一个sendRedirect()方法,该方法用于生成302响应码和Location响应头,从而通知客户端重新访问Location响应头中指定的URL,sendRedirect()方法工作原理图如下:
在这里插入图片描述
sendRedirct()方法工作原理图

实例:

(1)编写用户登陆界面form.html和登陆成功界面welcome.html如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/Test4/LoginServlet" method="post">
    用户名:<input type="text" name = "username"></br>
     密码:<input type="password" name="password"></br>
     <input type="submit">

</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   欢迎你,登陆成功!
</body>
</html>

(2)编写处理用户登陆请求的LoginServlet

package sendRe;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
public class LoginServlet extends HttpServlet {
    
    

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    
		
		response.setContentType("text/html;charset=utf-8");
		//用HttpServletRequest对象的getParameter()方法获取用户名和密码
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		
		//假设用户名和密码分别为:summer 和 123
		if(("summer").equals(username)&&("123").equals(password)) {
    
    
			//如果用户名和密码正确,重定向到welcome.html
			response.sendRedirect("/Test4/welcome.html");
		}else {
    
    
			response.sendRedirect("/Test4/form.html");
		}
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    

		doGet(request, response);
	}

}

登陆成功时页面:
在这里插入图片描述
登陆失败时跳转到登陆页面;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43553142/article/details/105694485