天天看点

任务发布系统(TaskMS)开发实践-登录功能(九)

作者:lgx0537

系统功能实现-登录功能

一、功能简介。任务发布系统主要分为两大部分。一是后台管理系统,主要是管理员管理任务系统,比如任务的发布,用户的管理,纪念品的管理等等。后台系统用户有两类,分别为系统管理员和部门负责人。系统管理员可以使用全部功能,部门负责人只能使用任务管理功能。二是前台任务系统,主要是普通用户使用,实现任务领取,任务提交,兑换纪念品等功能,由于普通用户主要使用手机登录系统,所以采用H5开发,适配手机界面。

任务发布系统(TaskMS)开发实践-登录功能(九)

二、登录功能的实现。今天主要介绍登录功能的具体实现。管理员和普通用户登录页面是分开的,逐一介绍。首先介绍管理员登录功能实现,主要有登录,登出,修改密码等。管理员页面结构如图:

任务发布系统(TaskMS)开发实践-登录功能(九)

登录页面login.jsp:

视频加载中...

核心代码解析:

<%String loginmsg = request.getParameter("loginmsg");//接收回调参数,确定登录状态

request.getSession(true);

session.putValue("IsLogin","false");//初始化登录状态为未登录%>

<script language="JavaScript">//用户名,密码输入检测JS

function check_input(){

if( form.username.value.length<1 || form.username.value.length>20 ){

alert("请输入用户名.")

return false;}

if( form.password.value.length<1 || form.password.value.length>20 ){

alert("请输入密码.")

return false;}}

</script>

<form action=/TaskMS/ChkLogin.jsp method=post name=form onSubmit="return check_input()">//转入ChkLogin.jsp页面,验证登录

根据回调参数loginmsg,确定登录状态。

<%if(loginmsg != null && loginmsg.equals("userwrong"))

out.print("用户名或密码不正确.");

else if(loginmsg != null && loginmsg.equals("loginfirst"))

out.print("请先登录.");

else if(loginmsg != null && loginmsg.equals("logout"))

out.print("已经成功退出系统.");%>

ChkLogin.jsp页面核心代码解析:

String username = request.getParameter("username");

String password = request.getParameter("password");

String loginmsg;

String Unit;

boolean IsAdmin;

if(!User.ChkLogin(username,password))//调用User类的ChkLogin,确定用户名密码是否匹配{

loginmsg="userwrong";

response.sendRedirect("login.jsp?loginmsg="+loginmsg);//如果不匹配则转向登录页面

return;}

Unit=User.FindByName(username).getUnit();//获取用户单位

IsAdmin=User.FindByName(username).getIsAdmin();//获取是否管理员

//将用户相关信息放入session

request.getSession(true);

session.putValue("IsLogin","true");

session.putValue("UserName",username);

session.putValue("User",Unit);

session.putValue("Unit",Unit);

if(IsAdmin)

session.putValue("IsAdmin","true");

else

session.putValue("IsAdmin","false");

if(Unit.equals("superAdmin"))//如果是超级管理员则转向管理员首页

{response.sendRedirect("Home/index.jsp");

session.putValue("Unit","superAdmin");

return;}

登出页面Logout.jsp核心代码解析:

<% //清空session并转向登录页面

Enumeration names = session.getAttributeNames();

while (names.hasMoreElements()){

String element =(String)names.nextElement();

session.removeAttribute(element);}

String loginmsg="logout";

response.sendRedirect("login.jsp?loginmsg="+loginmsg);%>

修改密码页面及核心代码解析:

任务发布系统(TaskMS)开发实践-登录功能(九)

ModifyPasswordStep1.jsp:

确认两次密码输入是否一致

<script language="javascript">

function check_input(theForm){

if (theForm.oldpassword.value == ""){

alert("请输入旧密码.");

theForm.oldpassword.focus();

return (false);}

if (theForm.newpassword.value != theForm.confirmpassword.value){

alert("两次输入密码不一致.");

theForm.confirmpassword.focus();

return (false);}}

</script>

ModifyPasswordStep2.jsp

try{

String username = (String)session.getValue("UserName");//获取用户名

String oldpassword = new String(request.getParameter("oldpassword").getBytes("ISO8859_1"),"GBK");//获取原密码

String newpassword = new String(request.getParameter("newpassword").getBytes("ISO8859_1"),"GBK");//获取新密码

if(!(User.ChkLogin(username,oldpassword)))//确认用户名和密码是否匹配{%>

<script>

alert("旧密码输入错误,请重新输入.");

window.history.back();

</script><% }

else{

IsSucceed = User.ModifyPassword(username,newpassword);//修改密码}}

catch(Exception e){

out.println("error:"+e.getMessage());}

任务发布系统(TaskMS)开发实践-登录功能(九)

Check.jsp页面用来验证是否是登录状态,后续页面都要引用,确定登录后才能访问。核心代码解析:

if((String)session.getValue("IsLogin")!="true")//确定是否登录,如没有则转向登录页面{

String loginmsg="loginfirst";

response.sendRedirect("/TaskMS/login.jsp?loginmsg="+loginmsg);}

用户页面登录与管理员登录实现方式基本一致,不再详细介绍。

视频加载中...

继续阅读