【java web】四个jsp界面跳转(提交表单index.jsp -> a.jsp <-> b.jsp <-> c.jsp)

【结合上一篇加深对session对象的使用】

过程

首先用户从index进入,进行用户名与密码的提交;其次将用户名密码信息转发到a中,进行验证,若验证失败,返回index界面重新进行输入,若验证成功,将用户名密码保存在session对象中,全局使用;然后在a界面跳转到b界面或者c界面,b界面也可以跳转到a界面,也可以跳转到c界面,c界面可以跳转到b界面,也可以跳转到a界面(实现abc三个界面的跳转);最后,在b和c界面可以修改全局的session值,也就是转跳到index界面进行重新输入用户名与密码。

【上一篇】jsp内置对象+jsp返回未填表单信息-提示错误信息+保留原始界面输入信息

代码

index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
    <%--在上述的基础上接收最开始的index.jsp界面输入的用户名或者密码 --%>
	<% String e_1=(String)request.getAttribute("error_1"); %>
	<% String pass=(String)request.getAttribute("p_1"); %>
	<% String e_2=(String)request.getAttribute("error_2"); %>
	<% String name=(String)request.getAttribute("n_1"); %>
	
	
	<%-- 修改用户名信息 --%>
	<%if (session.getAttribute("username")!=null) session.removeAttribute("username"); %>
	   
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action = "a.jsp">
	<%--判断是否为空,如果不为空则表示a.jsp接收到最开始的index.jsp的数据又传递回来 --%>
	用户名:<input type = "text" name = "n" <% if (name!=null)%>value = "<%=name%>"/>
	密码:<input type = "password" name = "p" <% if (pass!=null)%>value = "<%=pass%>"/>
	<input type = "submit" value = "提交">
	<input type = "reset">
	</form>
	
	<%
	if(e_1 != null){
		out.print("<h3> <font color = red>"+e_1+"</font></h3>");
	}
	if(e_2 != null){
		out.print("<h3> <font color = red>"+e_2+"</font></h3>");
	}
	%>
</body>
</html>

a.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>
	<%-- 从b或者c中接受数据 --%>
	
	<% if (session.getAttribute("username")!=null && session.getAttribute("password")!= null){ %> 
			用户名:<%=session.getAttribute("username")%><br>
			密码:<%=session.getAttribute("password")%><br>
			这是A页面<br>
	<% }else{ %>
		
			<%-- 从index接受到的数据 --%>
			<% 
			String n = request.getParameter("n");
			String p = request.getParameter("p");
			String n_r = "Bessie";
			String p_r = "123";
			%>
			
			<%-- 判断是否为空,将提示信息和原始数据一并传给index.jsp中--%>
		
			<% if(n=="" || n == null){
			request.setAttribute("error_1","用户名未输入");
			request.setAttribute("p_1",p);
			request.getRequestDispatcher("index.jsp").forward(request, response);
			}else {%>
				用户名:<%=request.getParameter("n")%><br>
				<% session.setAttribute("username",n); %>
			<%}%>
			
			<%--同理即可理解 --%>
			<% if(p=="" || p == null){
			request.setAttribute("error_2","密码未输入");
			request.setAttribute("n_1",n);
			request.getRequestDispatcher("index.jsp").forward(request, response);
			}else {%>
				密码:<%=request.getParameter("p")%><br>
				<% session.setAttribute("password",p); %>
			<%}%>
			
			<%if(n.equals(n_r) && p.equals(p_r)) {%>
				登录成功<br>
			<%}%>
	<% }%>
	<%-- 页面跳转 --%>
	
	<a href = "b.jsp">跳转到B界面</a>
	<a href = "c.jsp">跳转到C界面</a>	



</body>
</html>


b.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% 
    	String name = (String)session.getAttribute("username");
    	String pass = (String)session.getAttribute("password");
    
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
    用户名为:<%=name %><br>
    密码为:<%=pass %><br>
	这是B页面<br>
	
	<a href = "c.jsp">前往C界面</a>
	<a href = "a.jsp">回到A界面</a>
	<a href = "index.jsp">修改用户名和密码</a>

</body>
</html>
c.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% 
    	String name = (String)session.getAttribute("username");
    	String pass = (String)session.getAttribute("password");
    
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	用户名为:<%=name %><br>
	密码为:<%=pass %><br>
	这是C页面<br>
	<a href = b.jsp>回到B界面</a>
	<a href = "a.jsp">回到A界面</a>
	<a href = "index.jsp">修改用户名和密码</a>

</body>
</html>

截图展示

登录
在这里插入图片描述
登录成功
在这里插入图片描述
转跳到B界面
在这里插入图片描述
从B转跳到C界面
在这里插入图片描述
从C转跳到A界面
在这里插入图片描述
从C界面/B界面进行用户名密码修改
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bessie_Lee_gogogo

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值