2021/11/20
创建三个页面实现页面的跳转
1.login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="check.jsp" method = "post"> <%-- 注释 --%> 用户名:<input type="text" name = "uname"><br/><br/> 密码:<input type="password" name = "upwd"><br/> <input type="submit" value="登录"><br/> </form> </body> </html>
创建一个登录的页面,输入用户名和密码,点击提交后跳转到check页面。
2.check.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% request.setCharacterEncoding("utf-8"); String name = request.getParameter("uname"); String pwd = request.getParameter("upwd"); if(name.equals("yx")&&pwd.equals("123")){ request.getRequestDispatcher("success.jsp").forward(request,response); }else { out.print("登录失败"); } %> </body> </html>
判断从登录页面中传来的数据是否正确,如果正确则跳转到success页面,在succsee页面中可执行其他操作,否则输出“登录失败”
3.success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> 登录成功!<br/> 您好: <% String name = request.getParameter("uname"); out.print(name); %> </body> </html>
显示“登录成功”,并打印将用户名输出
//页面转换的两种方式
1.重定向
void sendRedirect(String location) throws IOException;//sendRedirect("success.jsp");
跳转到相应页面(在check中跳到success),会导致数据丢失
在success中不会保留数据,
2次请求(login页面中向check发出第一次请求,check给出一次响应,即将新的跳转地址success.jsp返回给login,然后login向success发出第二次请求,由success给出第二次响应)
在客户端进行第二次跳转
2.请求转发
getRequestDispatcher("success.jsp").forward(request,response);
停留在当前页面(仍停留check页面),可以获取到数据
在success中会保留数据,
1次请求(向check发出请求后,由check直接执行请求转发到success,再由success做出响应)
直接在服务端内部跳转
浙公网安备 33010602011771号