过程
首先用户从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界面进行用户名密码修改