简单的用户登入
用户通过输入用户名和密码(假设用户名和密码都是admin)进入用户或者管理员页面,拒绝绕过登入页面直接进入用户或者管理员页面。要求创建4个文件,第一个是用户登录页面,此页面输入用户名和密码以及登录类型,第二个文件对提交信息进行检查,如果输入正确,则根据登录类型分别进入到管理员或者普通用户页面,用重定向的方法实现跳转到这两个页面。如果输入有误,则弹出警示对话框,让用户重新输入信息
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="test.jsp" method="post">
name: <input name="name" type="text"><br><br>
password:<input name="password" type="password"><br><br>
登入类型:<input type="checkbox" name="AAA" value="admin">管理员
<input type="checkbox" name="AAA" value="user">普通用户<br><br>
<input type="submit" name="submit" value="login">
</form>
</body>
</html>
test.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%
//获得登录类型
String[] A = request.getParameterValues("AAA");
//获取name
String name = (String)request.getParameter("name");
//获取password
String password = (String)request.getParameter("password");
//建立session变量
session.setAttribute("name", name);
session.setAttribute("password", password);
%>
<%
//进行判断管理员或者用户是否已被选择
if(A != null){
for(int i=0;i<A.length;i++){
if(A[i].equals("admin")){
//管理员登入验证
if(name.equals("admin") && password.equals("admin")){
response.sendRedirect("admin.jsp");
}
else{%>
<script type="text/javascript">
alert("账号或密码错误,请重新输入");
window.history.back(-1);
</script>
<%}
}
//用户登入验证
if(A[i].equals("user")){
if((name.equals("user")) && (password.equals("user"))){
response.sendRedirect("user.jsp");
}
else{%>
<script type="text/javascript">
alert("账号或密码错误,请重新输入");
window.history.back(-1);
</script>
<%}
}
}
}
else{%>
<script type="text/javascript">
alert("输入不得为空,请重新输入");
window.history.back(-1);
</script>
<%}
%>
</body>
</html>
admin.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<% String name = request.getParameter("name");
Object name1 = session.getAttribute("name");
//利用if判断name1是否有值,如果没有值,则说明直接登入网页,则只需要将其跳转回登入页面即可
if(name1 != null){
%>
<P>尊敬的管理员<%=name1 %><br>登入成功!</P>
<%
//结束会话
//session.invalidate();
//如果设置结束会话会使得admin界面再次刷新的时候会跳转回登入页面
}
else{
response.sendRedirect("login.jsp");
}
%>
</body>
</html>
user.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<%String name = request.getParameter("name");
Object name1 = session.getAttribute("name");
//利用if判断name1是否有值,如果没有值,则说明直接登入网页,则只需要将其跳转回登入页面即可
if(name1 != null){
%>
<P>尊敬的用户<%=name1 %><br>登入成功!</P>
<%
//结束会话
//session.invalidate();
}
else{
response.sendRedirect("login.jsp");
}
%>
</body>
</html>
运行结果展示
不输入任何内容,弹出提示框
管理员登入成功
用户登入成功
直接跳转到admin页面的话,会直接跳转到登录页面
密码或账号输入错误