登陆界面分用户管理以及修改密码

JSP页面主要代码:

<body>
<form id="page6_jHtmlForm1" name="page6_jHtmlForm1" method="post" action="">
<div id="page6_e" class="Panel Panel_Null">
<div id="page6_jLabel4" class="text">毕业设计管理系统</div></div>
<div id="page6_jLabel1" class="text">用户名:</div>
<input type="text" class="Edit Edit_style1" value="" id="page6_jEdit1" name="username"/>
<div id="page6_jLabel2" class="text">密码:</div>
<input type="password" class="Edit Edit_style4" value="" id="page6_jEdit2" name="password"/>
<div class="radio radio_style1" id="page6_jRadioButton2"><label><input type="radio" name="typeradio"  id="page6_jRadioButton2_1"/>我是学生</label></div>
<div class="radio radio_style1" id="page6_jRadioButton1"><label><input type="radio" name="typeradio"  id="page6_jRadioButton1_1"/>我是教师</label></div>
<div id="page6_jButton1" class="vjbutton vjbutton_c_style1 border_radius_3"><div class="vjbutton_txtR" onclick="login();">登录</div></div>
<div id="page6_jButton2" class="vjbutton vjbutton_c_style1 border_radius_3"><div class="vjbutton_txtR" onclick="reset();">重置</div></div> </form>

<script type="text/javascript">

//重置操作

function reset(){
document.getElementById("page6_jHtmlForm1").reset();

}  

//用户登录,不同的用户处理不同的action

function login(){
       let user=page6_jHtmlForm1.username.value;
       let psw=page6_jHtmlForm1.password.value;
       if(user==null || user=="" || psw==null || psw==""){
  alert("账户或密码为空");
   }else{
   var radios=document.getElementsByName("typeradio");
   if(radios[0].checked){
$("#page6_jEdit1").attr("name","student.sid");
$("#page6_jEdit2").attr("name","student.password");
page6_jHtmlForm1.action="stuLoginAction";
page6_jHtmlForm1.submit();
}else if(radios[1].checked){
$("#page6_jEdit1").attr("name","teacher.tid");
$("#page6_jEdit2").attr("name","teacher.password");
page6_jHtmlForm1.action="teaLoginAction";
page6_jHtmlForm1.submit();
}else{
alert("请选择你的身份");
}
  }
}
</script>

</body>

Struts.xml主要代码:

<action name="stuLoginAction" class="LoginAction" method="stuLoginAction">//class那里采用的是Spring依赖注入
<result name="success">/common/index.jsp</result>
<result name="input">/login.jsp</result>
</action>
<action name="teaLoginAction" class="LoginAction" method="teaLoginAction">//class那里采用的是Spring依赖注入
<result name="success">/common/index.jsp</result>
<result name="input">/login.jsp</result>

</action>

Spring中Action的代码:


<bean id="LoginAction" class="com.bysj.action.LoginAction">
        <property name="loginService" ref="loginService"/>//再次通过bean注入
        <property name="userService" ref="userService"/>//再次通过bean注入

    </bean>


 <bean id="loginService" class="com.bysj.service.LoginService">
        <property name="loginDao" ref="loginDao"/>
    </bean>
    <bean id="userService" class="com.bysj.service.UserService">
        <property name="userDao" ref="userDao"/>

    </bean>

Action类主要代码:

public String execute(){
//studentDao.addStudent(student);
return INPUT;
}
public String stuLoginAction(){
if(loginService.stuLogin(student.getSid(),student.getPassword())){
map=ActionContext.getContext().getSession();
map.put("user",student.getSid());
map.put("Lid", "1");
return SUCCESS;
}else{
return INPUT;
}
}
public String teaLoginAction(){
if(loginService.teaLogin(teacher.getTid(),teacher.getPassword())){
map=ActionContext.getContext().getSession();


String tid = teacher.getTid();
map.put("user", tid);

map.put("Lid", userService.findById(tid)+"");//根据教师的id获取教师里面的权限

            System.out.println(map.get("Lid"));


return SUCCESS;
}else{
return INPUT;
}
}

 userService.findById(tid)方法:

 public int findById(String id){
        Session session = null;
        try {
            session = getSession();
            String sql = "select role_id from t_user_role where user_id = ?";
            List list = session.createSQLQuery(sql).setParameter(0, id).list();
            return (Integer) list.get(0);
        }catch (Exception e) {
            e.printStackTrace();
            return 0;
        }finally{
            session.close();
        }

    }

修改密码的Action:

public String changePswAction(){
System.out.println(oldPsw+"========"+newPsw1+"====="+newPsw2);
int flag=1;
map=ActionContext.getContext().getSession();
if(map.get("Lid").equals("1")){
System.out.println("Student:"+student.getSid()+" "+oldPsw+" "+newPsw1);
if(loginService.changePsw(student.getSid(),oldPsw,newPsw1)==1){
flag=1;
}else {
flag=0;
}
}else {
System.out.println("Teacher:"+teacher.getTid()+" "+teacher.getPassword()+" "+newPsw1);
if(loginService.changePsw(teacher.getTid(),oldPsw,newPsw1)==1){
flag=1;
}else {
flag=0;
}
}
JsonObject jsonObject=new JsonObject();
jsonObject.addProperty("flag", flag);
result=jsonObject.toString();
return SUCCESS;

}

changePsw方法:

public int changePwd(String id,String oldPsw,String newPsw){
  int flag=1;
  //得到session
  Session session=null;
  Transaction transaction=null;
  try{
  session=sessionFactory.openSession();
  //hql语句,Users代表是models里的实体类,name和password代表实体类的属性
  Map map = ActionContext.getContext().getSession();
  String queryString;
  if (map.get("Lid").equals("1")) {
  queryString="from Student where sid=? and password=?";
  Query queryObject=session.createQuery(queryString);
    queryObject.setParameter(0, id);
    queryObject.setParameter(1, oldPsw);
    List<Student> list=queryObject.list();
    if(list.size()==0){
  flag=0;//旧密码错误
  }else{
  Student student=list.get(0); //找到要修改密码的用户对象
  student.setPassword(newPsw);
  transaction=session.beginTransaction();
  session.update(student);//在缓存中保存数据,受影响行数
  transaction.commit();//写入数据库表
  }
}else {
queryString="from Teacher where tid=? and password=?";
Query queryObject=session.createQuery(queryString);
  queryObject.setParameter(0, id);
  queryObject.setParameter(1, oldPsw);
  List<Teacher> list=queryObject.list();
  if(list.size()==0){
  flag=0;//旧密码错误
  }else{
  Teacher teacher=list.get(0); //找到要修改密码的用户对象
  teacher.setPassword(newPsw);
  transaction=session.beginTransaction();
  session.update(teacher);//在缓存中保存数据,受影响行数
  transaction.commit();//写入数据库表
  }
}
  return flag;
  }catch (Exception e) {
            e.printStackTrace();
            return 0;
  }finally{//关闭session
  session.close();//调用HibernateSessionFactory的静态方法关闭Session
  }
  }

猜你喜欢

转载自blog.csdn.net/qq_38634142/article/details/80862757