`
y806839048
  • 浏览: 1121048 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

登陆登出

 
阅读更多
登陆:用户表-----(页面session增加,此session用上下文的request获取,传入工具类,设置)---session表------session历史表
退出:删除登录时增加的session表---页面session去除(在登陆时后台设置的session 中的当前用户,包括页面session,数据表中的session)
看别人的程序,看过程后,选择性的修订代码
sesion的工具类:


package ces.platform.system.common;

import javax.servlet.http.*;
import java.util.*;

/**
* <p>标题:
* <font class=titlefont>
* 《会话属性》类
* </font>
* <p>描述:
* <font class=descriptionfont>
* <br>会话绑定
* </font>
* <p>版本号:
* <font class=versionfont>
* Copyright (c) 2.50.2003.0925
* </font>
* <p>公司:
* <font class=companyfont>
* 上海中信信息发展有限公司
* </font>
* @author 王辉
* @version 2.50.2003.0925
*/

public class SessionProperty {

    HttpSession session=null;
    Hashtable table=new Hashtable();

    public SessionProperty() {
    }

    public SessionProperty(HttpSession session) {
        this.session=session;
    }

    public void setAttribute(String name,Object obj){
        if(session!=null){
            session.setAttribute(name,obj);
        }else{
            table.put(name,obj);
        }
    }

    public Object getAttribute(String name){
        if(session!=null){
            return session.getAttribute(name);
        }else{
            return table.get(name);
        }
    }

    /**
     * 将context会话中的变量存入HttpSession中
     * @param session
     */
    public void reverseToSession(HttpSession session){
        for(Enumeration enu=table.keys();enu.hasMoreElements();){
            String key=(String)enu.nextElement();
            session.setAttribute(key,table.get(key));
        }
    }

}



===利用session设置用户session====


package ces.platform.system.dbaccess;

import ces.frame.util.dao.PlatformDao;
import ces.platform.system.common.*;

import java.sql.*;
import java.io.*;
import java.util.*;
import javax.servlet.http.*;

public class UserSession extends OperationBase implements Serializable
{
    /**
*
*/
private static final long serialVersionUID = 1L;

/**
     * 静态常量:登录标志----成功
     **/
    public static final String LOGIN_SUCCESS = "1";
    /**
     * 静态常量:登录标志----不成功,并发用户数超过
     **/
    public static final String LOGIN_FAIL_CONN = "2";
    /**
     * 静态常量:登录标志----不成功,口令三次错误
     **/
    public static final String LOGIN_FAIL_PASSWORD = "3";
    /**
     * 静态常量:退出标志----未退出
     **/
    public static final String LOGOUT_NO = "0";
    /**
     * 静态常量:退出标志----正常退出
     **/
    public static final String LOGOUT_NORMAL = "1";
    /**
     * 静态常量:退出标志----注销退出
     **/
    public static final String LOGOUT_CANCEL = "2";

    /**
     * 静态常量:将会话变量存入session中
     **/
    public static final String STORE_SESSION = "1";
    /**
     * 静态常量:将会话变量存入property中
     **/
    public static final String STORE_PROPERTY = "2";


    /**
     * 成员变量:会话编号
     **/
    protected String sessionID;
    /**
     * 成员变量:会话开始时间,对应于t_sys_user_session.begin_date
     **/
    protected java.sql.Timestamp beginDate;

    /**
     * 成员变量:IP地址,对应于t_sys_user_session.ip_address
     **/
    protected String ipAddress;

    /**
     * 成员变量:用户对象
     **/
    protected User user;

    /**
     * 成员变量:网卡地址
     **/
    protected String macNO;

    /**
     * 成员变量:用户登录ID
     */
    protected String loginID;

    /**
     * 缺省构造函数
     *
     **/
    public UserSession() {
        //
    }

    /**
     * 构造函数1
     *
     * @param sessionID         会话编号
     **/
    public UserSession(String sessionID) {
        //
        this.sessionID = sessionID;
    }



    /**
     * 构造函数2
     *
     * @param sessionID         会话编号
     * @param beginDate         会话开始时间
     * @param ipAddress         IP地址
     * @param macNO             网卡地址
     * @param loginID           用户登录ID
     * @param user             用户对象
     **/
    public UserSession(String sessionID ,
                       java.sql.Timestamp beginDate ,
                       String ipAddress ,
                       String macNO ,
                       String loginID,
                       User user) {
        //
        this.sessionID = sessionID;
        this.beginDate = beginDate;
        this.ipAddress = ipAddress;
        this.macNO = macNO;
        this.loginID=loginID;
        this.user = user;
    }

    /**
     * 设置会话编号
     *
     * @param sessionID         会话编号
     **/
    public void setSessionID(String sessionID) {
        //
        this.sessionID = sessionID;
    }

    /**
     * 设置会话开始时间
     *
     * @param beginDate 会话开始时间
     **/
    public void setBeginDate(java.sql.Timestamp beginDate) {
        //
        this.beginDate = beginDate;
    }

    /**
     * 设置IP地址
     *
     * @param ipAddress IP地址
     **/
    public void setIpAddress(String ipAddress) {
        //
        this.ipAddress = ipAddress;
    }

    /**
     * 设置用户
     *
     * @param user     用户对象
     **/
    public void setUser(User user) {
        //
        this.user = user;
    }

    /**
     * 设置网卡地址
     *
     * @param macNO     网卡地址
     **/
    public void setMacNO(String macNO) {
        //
        this.macNO = macNO;

    }

    /**
     * 获取会话编号
     *
     * @return 会话编号
     **/
    public String getSessionID() {
        //
        return this.sessionID;
    }

    /**
     * 获取会话开始时间
     *
     * @return 会话开始时间
     **/
    public java.sql.Timestamp getBeginDate() {
        //
        return this.beginDate;
    }

    /**
     * 获取IP地址
     *
     * @return IP地址
     **/
    public String getIpAddress() {
        //
        return this.ipAddress;
    }

    /**
     * 获取用户
     *
     * @return 用户对象
     **/
    public User getUser() {
        //
        return this.user;
    }

    /**
     * 获取网卡地址
     *
     * @return 网卡地址
     **/
    public String getMacNO() {
        //
        return this.macNO;
    }

    /**
     * 获取用户登录ID
     * @return  登录ID
     */
    public String getLoginID() {
        return loginID;
    }

    /**
     * 设置用户登录ID
     * @param loginID
     */
    public void setLoginID(String loginID) {
        this.loginID = loginID;
    }

   
   
    //////////////////////////////////////////////////////////////////////////
    //以下成员函数有具体应用

    /**
     * 验证该用户会话对象在数据库中是否存在
     *
     * @return                  true:  该对象在数据库中存在
     *                          false: 该对象在数据空中不存在
     * @throws Exception
     *                          如果验证有问题,将抛出异常
     */
    public boolean isExist() throws Exception
    {
    boolean returnValue = false;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet result = null;
        String strQuery = "SELECT session_id FROM " + Common.USER_SESSION_TABLE
                        + " WHERE session_id = ?";
        try
        {
        conn = PlatformDao.getDataSource().getConnection();
            ps = conn.prepareStatement(strQuery);
            ps.setString(1 , this.sessionID);
            result =  ps.executeQuery();
           
            if (!result.next())
            {
                returnValue = false;
            }
            else
            {
            returnValue = true;
            }
        }
        finally
        {
        close(conn, ps, result);
        }

        return returnValue;
    }
   
    /**
     * 验证该用户会话对象在数据库中是否存在
     *
     * @return                  true:  该对象在数据库中存在
     *                          false: 该对象在数据空中不存在
     * @throws Exception
     *                          如果验证有问题,将抛出异常
     */
    public boolean isExist(Connection con) throws Exception {
        boolean returnValue = false;

        PreparedStatement ps = null;
        ResultSet result = null;
        String strQuery = "SELECT session_id FROM " + Common.USER_SESSION_TABLE
                        + " WHERE session_id = ?";

        try {

            ps = con.prepareStatement(strQuery);
            ps.setString(1 , this.sessionID);
          result =  ps.executeQuery();

            if (!result.next()) {
                returnValue = false;
            } else {
               
                returnValue = true;
            }
        } catch (SQLException se) {
            throw new Exception(
                    "User_session.isExist(): SQLException: \n\t" + se);
        } finally {
        close(null, ps, result);
        }
        return returnValue;

    }
   
       
    /**
     * 从数据库中重新装入该用户会话对象信息
     *
     * @return                  true:  装入成功
     *                          false: 装入不成功
     * @throws Exception
     *                          如果装入有问题,将抛出异常
     */
    public boolean load() throws Exception
    {
        boolean returnValue = false;
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet result = null;
        String strQuery =
                "SELECT ut.user_id,ut.user_name,ut.login_name,ut.flag_emp,"
                +
                "ut.user_cryptogram,ut.flag_lock,ut.flag_define,ut.ic_no,ut.conn_num,"
                +
                "ut.flag_check,ut.flag_active,ut.flag_sa,ut.show_order,ut.position_x,ut.position_y,ut.type,"
                + "ust.session_id,ust.begin_date,ust.ip_address,ust.mac_no,ust.login_id "
                + "FROM " + Common.USER_TABLE + " ut, "
                + Common.USER_SESSION_TABLE + " ust "
                + "WHERE ut.user_id = ust.user_id "
                + "AND ust.session_id = ?";
       
        try
        {
            conn = PlatformDao.getDataSource().getConnection();
            ps = conn.prepareStatement(strQuery);
            ps.setString(1 , this.sessionID);
            result =  ps.executeQuery();

            int i=1;
            ValueAsc va=new ValueAsc(i);
            if (!result.next())
            {
                returnValue = false;
            }
            else
            {
                i = 1;
                va.setStart(i);

                User uTemp = User.generateUser(result,va);
                this.user = uTemp;
                this.sessionID = result.getString(va.next());
                this.beginDate = result.getTimestamp(va.next());
                this.ipAddress = result.getString(va.next());
                this.macNO = result.getString(va.next());
                this.loginID=result.getString(va.next());
                returnValue = true;
            }
        }
        finally
        {
            close(conn, ps, result);
        }
        return returnValue;

    }

    /**
     * 新建该用户会话对象
     * @param conn 连接对象
     * @throws Exception
     *                          如果新建有问题,将抛出异常
     */
    protected void doNew(Connection conn) throws Exception
    {

        if (!isValidate()) {
            throw new Exception(
                    "User_session.doNew(): Illegal data values for insert");
        }

        PreparedStatement ps = null;
        String strQuery = "INSERT INTO " + Common.USER_SESSION_TABLE
                        + "(session_id,user_id,begin_date,ip_address,mac_no,login_id)"
                        + "VALUES (?,?,?,?,?,?)";
        try {
            ps = conn.prepareStatement(strQuery);
            ps.setString(1 , this.sessionID);
            ps.setInt(2 , this.user.getUserID());
            ps.setTimestamp(3 , this.beginDate);
            ps.setString(4 , this.ipAddress);
            ps.setString(5 , this.macNO);
            ps.setString(6 , this.loginID);
            int resultCount = ps.executeUpdate();

            if (resultCount != 1) {
               throw new Exception(
                        "User_session.doNew(): ERROR Inserting data "
                        + "in T_SYS_USER_SESSION INSERT !! resultCount = " +
                        resultCount);
            }
        } catch (SQLException se) {
           throw new Exception(
                    "User_session.doNew(): SQLException while inserting new user_session; "
                    + "session_id = " + this.sessionID + " :\n\t" + se);
        } finally {
        close(null, ps, null);
        }
    }

    /**
     * 更新该用户会话对象
     * @param conn 连接对象
     * @throws Exception
     *                          如果更新有问题,将抛出异常
     */
    protected void doUpdate(Connection conn) throws Exception {
        if (!isValidate()) {
           throw new Exception("User_session.doUpdate(): Illegal data values for update");
        }

        PreparedStatement ps = null;
        String strQuery = "UPDATE " + Common.USER_SESSION_TABLE + " SET "
                        + "user_id = ?, begin_date = ? , "
                        + "ip_address = ?, mac_no = ?, login_id= ? "
                        + "WHERE session_id = ?";
        //logger.debug(strQuery);

        try {
            ps  = conn.prepareStatement(strQuery);
            ps.setInt(1, this.user.getUserID());
            ps.setTimestamp(2, this.beginDate);
            ps.setString(3, this.ipAddress);
            ps.setString(4, this.macNO);
            ps.setString(5,this.loginID);
            ps.setString(6, this.sessionID);
            int resultCount = ps.executeUpdate();
            if (resultCount != 1) {
               throw new Exception("User_session.doUpdate(): ERROR updating data in T_SYS_USER_SESSION!! "
                        + "resultCount = " + resultCount);
            }
        } catch (SQLException se) {
           throw new Exception("User_session.doUpdate(): SQLException while updating user_session; "
                    + "session_id = " + this.sessionID + " :\n\t" + se);
        } finally {
        close(null, ps, null);
        }
    }



    /**
     * 根据IP更新该用户会话对象
     *
     * @throws Exception
     *                          如果更新有问题,将抛出异常
     */
    public void doUpdateByIP() throws Exception {
        if (!isValidate()) {
           throw new Exception("User_session.doUpdateByIP(): Illegal data values for update");
        }

        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet result = null;
        String strQuery = "UPDATE " + Common.USER_SESSION_TABLE + " SET "
                        + "session_id = ?, user_id = ?, begin_date = ? , "
                        + " mac_no = ?, login_id= ? "
                        + "WHERE ip_address = ?";

       
        try {
            conn=PlatformDao.getDataSource().getConnection();
            conn.setAutoCommit(false);
            ps  = conn.prepareStatement(strQuery);
            ps.setString(1, this.sessionID);
            ps.setInt(2, this.user.getUserID());
            ps.setTimestamp(3, this.beginDate);
            ps.setString(4, this.macNO);
            ps.setString(5,this.loginID);
            ps.setString(6, this.ipAddress);
            int resultCount = ps.executeUpdate();
            if (resultCount != 1) {
                conn.rollback();
               throw new Exception("User_session.doUpdateByIP(): ERROR updating data in T_SYS_USER_SESSION!! "
                        + "resultCount = " + resultCount);
            }
            conn.commit();
        } catch (SQLException se) {
            if(conn!=null){
                conn.rollback();
            }
           throw new Exception("User_session.doUpdateByIP(): SQLException while updating user_session; "
                    + "session_id = " + this.sessionID + " :\n\t" + se);
        } finally {
            conn.setAutoCommit(true);
            close(conn, ps, result);
        }
    }

    /**
     * 根据登录ID更新该用户会话对象
     *
     * @throws Exception
     *                          如果更新有问题,将抛出异常
     */
    public void doUpdateByLoginID() throws Exception {
        if (!isValidate()) {
           throw new Exception("User_session.doUpdateByLoginID(): Illegal data values for update");
        }

        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet result = null;
        String strQuery = "UPDATE " + Common.USER_SESSION_TABLE + " SET "
                        + "session_id = ?, user_id = ?, begin_date = ? , "
                        + "ip_address = ?, mac_no = ? "
                        + "WHERE  login_id= ?";

       
        try {
            conn=PlatformDao.getDataSource().getConnection();
            conn.setAutoCommit(false);
            ps  = conn.prepareStatement(strQuery);
            ps.setString(1, this.sessionID);
            ps.setInt(2, this.user.getUserID());
            ps.setTimestamp(3, this.beginDate);
            ps.setString(4, this.ipAddress);
            ps.setString(5, this.macNO);
            ps.setString(6,this.loginID);
            int resultCount = ps.executeUpdate();
            if (resultCount != 1) {
                conn.rollback();
               throw new Exception("User_session.doUpdateByLoginID(): ERROR updating data in T_SYS_USER_SESSION!! "
                        + "resultCount = " + resultCount);
            }
            conn.commit();
        } catch (SQLException se) {
            if(conn!=null){
                conn.rollback();
            }
           throw new Exception("User_session.doUpdateByLoginID(): SQLException while updating user_session; "
                    + "session_id = " + this.sessionID + " :\n\t" + se);
        } finally {
            conn.setAutoCommit(true);
            close(conn, ps, result);
        }
    }



    /**
     * 在数据库中删除该用户会话对象,不提交。
     * @param conn 连接对象
     * @throws Exception
     *                          如果删除有问题,将抛出异常
     */
    public void doDelete(Connection conn) throws Exception {
        PreparedStatement ps = null;
//        Organize org = null;
        String strQuery = "DELETE FROM " + Common.USER_SESSION_TABLE
                        + " WHERE session_id = ?";

        try {
            ps  = conn.prepareStatement(strQuery);
            ps.setString(1, this.sessionID);
            int resultCount = ps.executeUpdate();
            if (resultCount != 1) {
               throw new Exception("User_session.doDelete(): ERROR deleting data in T_SYS_USER_SESSION!! "
                        + "resultCount = " + resultCount);
            }
        } catch (Exception se) {
           throw new Exception("User_session.doDelete(): Exception while deleting user_session; "
                    + "session_id = " + this.sessionID + " :\n\t" + se);
        } finally {
        close(null, ps, null);
        }

    }

    /**
     * 返回数据库中的所有用户会话对象
     *
     * @return                  用户会话对象集合
     * @throws Exception
     *                          如果查找有问题,将抛出异常
     */
    public Vector getAllUserSessions() throws Exception
    {
        Vector vAllUserSessions = new Vector();
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet result = null;
        String strQuery = "SELECT ut.user_id,ut.user_name,ut.login_name,ut.flag_emp,"
                        + "ut.user_cryptogram,ut.flag_lock,ut.flag_define,ut.ic_no,ut.conn_num,"
                        + "ut.flag_check,ut.flag_active,ut.flag_sa,ut.show_order,ut.position_x,ut.position_y,ut.type,"
                        + "ust.session_id,ust.begin_date,ust.ip_address,ust.mac_no,ust.login_id "
                        + "FROM " + Common.USER_TABLE + " ut, "
                        + Common.USER_SESSION_TABLE + " ust "
                        + "WHERE ut.user_id = ust.user_id";
       
        try {
            conn = PlatformDao.getDataSource().getConnection();
            ps  = conn.prepareStatement(strQuery);
            result =  ps.executeQuery();

            int i = 1;
            ValueAsc va = new ValueAsc(i);
            while (result.next())
            {
                i = 1;
                va.setStart(i);

                User uTemp = User.generateUser(result,va);

                UserSession usTemp = UserSession.generateUserSession(result,va,uTemp);
                vAllUserSessions.addElement(usTemp);
            }
        }
        catch (SQLException se)
        {
           throw new Exception("User_session.getAllUserSessions(): SQLException: \n\t" + se);
        }
        finally
        {
            close(conn, ps, result);
        }
        return vAllUserSessions;

    }

    /**
     * 生成查询会话对象
     * @param result   查询结果集
     * @param v        计数器
     * @return         返回生成的对象
     */
    public static UserSession generateUserSession(ResultSet result,ValueAsc v,User user) {
        UserSession usTemp=new UserSession();
        try{
            usTemp.setSessionID(result.getString(v.next()));
            usTemp.setBeginDate(result.getTimestamp(v.next()));
            usTemp.setIpAddress(result.getString(v.next()));
            usTemp.setMacNO(result.getString(v.next()));
            usTemp.setLoginID(result.getString(v.next()));
            usTemp.setUser(user);
        }catch(Exception e){
            e.printStackTrace();
        }
        return usTemp;
    }


    /**
     * 验证存入用户会话表中的数据
     *
     * @return                   true:   验证成功
     *                           false:  验证失败
     */
    protected boolean isValidate()
    {
        if ( (this.sessionID == null) ||
             (this.user == null) ||
             (this.user.getUserID() == 0))
        {
            return (false);
        }
        else
        {
            return (true);
        }
    }

    /**
     * 存储会话变量,放入session还是自定义的属性集合
     * @param type 1:放入session中,2:放入自定义的属性集合中
     */
    public static SessionProperty setAttributeBatch(String type,HttpSession session,User user) throws Exception {
        SessionProperty sp=null;
        if(type.equals(UserSession.STORE_SESSION)){
            sp=new SessionProperty(session);
        }else{
            sp=new SessionProperty();
        }
        //设置session变量
        Vector authorities=null;

        try{
            authorities=user.getAuthoritiesFromContext();
            //authorities=new Vector();
            sp.setAttribute("authority",authorities);
            sp.setAttribute("user",user);
            sp.setAttribute("sa",user.getFlagSA());
        }catch(Exception e){
            throw e;
        }

        /*
        for(int i=0;i<authorities.size();i++){
            Authority au=(Authority)authorities.get(i);
            logger.debug(au.getAuthorityID());
            logger.debug(au.getPath());
        }
        */



        return sp;
    }

    /**
     * 服务器启动时清空会话表
     */
    public static void clearSession() throws Exception
    {
        try
        {
            Vector vAllSession = new UserSession().getAllUserSessions();
            int nNum = vAllSession.size();
            UserSession[] delTemp=new UserSession[nNum];
            UserSessionHistory[] addTemp=new UserSessionHistory[nNum];
            for (int i=0; i<nNum; i++)
            {
                UserSession us=(UserSession)vAllSession.get(i);
                String strSessionID=us.getSessionID();
                Timestamp tBegin=us.getBeginDate();
                String strIP=us.getIpAddress();
                String strMacNO=us.getMacNO();
                User user=us.getUser();
                User admin=new User(1);
                admin.load();
                delTemp[i]=us;

                //在历史表中增加一条记录
                UserSessionHistory ush=new UserSessionHistory(strSessionID);
                ush.setBeginDate(tBegin);
                ush.setEndDate(Common.getSysDate());
                ush.setIpAddress(strIP);
                ush.setMacNO(strMacNO);
                ush.setUser(user);
                ush.setLoginFlag(UserSession.LOGIN_SUCCESS);
                ush.setLogoutFlag(UserSession.LOGOUT_NO);
                ush.setCancelPerson(admin);
                addTemp[i]=ush;
            }
            new UserSession().doDeleteBatch(delTemp);
            new UserSessionHistory().doAddBatch(addTemp);
        }
        catch(Exception e)
        {
            e.printStackTrace();
            throw new Exception("UserSession.clearSession(): SQLException: \n\t" + e);
        }
    }
   
}





========上面的session是这里传过来的===
package ces.frame.module.login.action;

import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;

import ces.frame.module.utilize.bo.ArchiveExborrowBO;
import ces.frame.util.CommonUtil;
import ces.frame.util.Transition;
import ces.frame.util.dao.CommonDao;
import ces.platform.system.action.UserSessionAction;
import ces.platform.system.common.MD5;
import ces.platform.system.common.SessionBind;
import ces.platform.system.dbaccess.LoginableTime;
import ces.platform.system.dbaccess.User;
import ces.platform.system.dbaccess.UserSession;
import ces.platform.system.form.UserSessionForm;

/**
*
* @author nfs
*
*/
public class LoginAction extends DispatchAction
{
private ArchiveExborrowBO archiveExborrowBO = null;
public ArchiveExborrowBO getArchiveExborrowBO() {
return archiveExborrowBO;
}

public void setArchiveExborrowBO(ArchiveExborrowBO archiveExborrowBO) {
this.archiveExborrowBO = archiveExborrowBO;
}

/**
* ��¼
* @param request
* @param form
* @return
*/
public ActionForward login(ActionMapping mapping,
   ActionForm form,
   HttpServletRequest request,
   HttpServletResponse response)
{
String target = "success";
String tip = "tip";
//�û������Ƿ�ҪMD5
String encrypt = "true";
HttpSession session = request.getSession(true);
DynaActionForm dForm = (DynaActionForm)form;


Vector vector = new Vector();
HashMap map = new HashMap();
map.put("urlName", "���µ�¼");
map.put("urlValue", "/login.jsp");
vector.add(map);
        request.setAttribute("loginTip","1");
              
        String loginName = dForm.get("loginName").toString();
        String userPass = dForm.get("userPass").toString();
        //0�������ʲ�ݵ�½ 1�����������ҵ�½
        String is_szdag = dForm.get("is_szdag").toString();
      
        if (!"false".equals(encrypt))
        {
            //�ѱ����ϵ�����MD5
            userPass = new MD5().getMD5ofStr(userPass);
        }      
       
        int userID = 0;
        User user = null;

        String strSessionID = "";
        String strCount = "";
        int intCount = 0;
        UserSession usAdd = null;
        try
        {
            int ID = new User().getUserID(loginName);
            boolean flag = new LoginableTime().isLoginable();
            if (ID!=1)
            {
                if (!flag)
                {
                request.setAttribute("url", vector);
        request.setAttribute("message", "��ֹ��¼��");       
        return mapping.findForward(tip);
                }
            }
           /*
            //���Ϊ���������ҵ�½���ж��û��Ƿ���ڿɵ�½
            String sql = "select count(*) from t_role_user t where t.user_id='"+ID+"' and t.role_id=(select t.role_id from t_role t where t.rolekey='CDRY')";
            int count = CommonDao.getJdbcTemplate().queryForInt(sql);
            if(count==0 && "1".equals(is_szdag)){
            //loginName="";
            }*/
            //======================
           
        }
        catch (Exception e)
        {
        request.setAttribute("url", vector);
request.setAttribute("message", e.getMessage());       
return mapping.findForward(tip);
        }
        strCount = (String)session.getAttribute("count");

        if ((strCount!=null) && (!strCount.equals("")))
        {
            intCount = java.lang.Integer.parseInt(strCount);
        }

//        if (intCount>=3)
//        {
//            request.setAttribute("messageKey", messageKey + "overlogin");
//            return mapping.findForward("error");
//            // "�Բ������Ѿ��Ƿ���¼3�Σ����
分享到:
评论

相关推荐

    审计数据库登陆登出触发器,审计数据库登陆失败触发器

    审计数据库登陆登出触发器,审计数据库登陆失败触发器

    swift demo 包含登陆登出 四个底部TabBar按钮

    在这个“swift demo 包含登陆登出 四个底部TabBar按钮”的项目中,我们可以看到一个典型的iOS应用框架,其中包含了用户登录、注销功能以及使用TabBar控制器来组织四个主要的屏幕。 TabBar是iOS开发中的一个重要组件...

    vue实现登陆登出的实现示例

    Vue 实现登陆登出的实现示例 Vue 实现登陆登出的实现示例是一篇关于 Vue 实现登陆登出的详细示例,涵盖了登陆登出的实现过程、登陆成功后的跳转、 token 的存储和验证、登陆失效的处理等多个方面的知识点。 首先,...

    Django框架之登录后自定义跳转页面的实现方法

    这几天在学习django,django功能很强大,自带的auth,基本可以满足用户注册登陆登出,简单的用户注册登陆系统使用django auth足矣。当然也不是拿来就能用的,需要自己写登陆页面的模板,也很简单。自己尝试了一下,...

    使用自定义按钮实现Facebook授权登陆和登出

    本文将深入探讨如何使用自定义按钮来实现Facebook授权登录和登出功能。 首先,我们要了解Facebook的OAuth 2.0授权流程,这是Facebook提供给开发者进行身份验证的基础。用户点击自定义按钮后,应用会通过Facebook ...

    jsp学生学籍管理系统(分角色登陆)

    # Schoolrollmanager学生学籍管理系统,两个权限,管理员,老师功能说明 ... 2.提供了txt导入学生信息,成绩,课程信息的功能 ...10.提供了登陆登出功能,可以利用数据库权限控制指定用户所可拥有的功能

    【Java】无框架增删改查+登陆+分页+事务处理综合演示web应用

    这次是做一个不使用框架,用最原始的方法实现了java-jsp的web应用,栗子呢包含增删改查、登陆登出、分页、事务处理和权限管理这几个web应用的基本要素,界面就做得很烂了,除了对齐以外就没用到CSS了,也是节约时间...

    界面设计:退出登录.py

    Python 图形界面设计代码,具有完整的登录、登出、提示标签。

    用户登录登出注册实例

    web实例,使用express框架,实现了用户管理(注册登陆登出)功能,通过session在本地保持了登陆,通过mongoose链接mongodb实现数据持久化。(课程习作,手法拙劣,如有大佬路过,请多多指教)

    UML 电子交易系统建模(6种图)

    用户的行为有登陆登出、获得商品列表、更改设置、删除货物、获得订单、搜索货物。临时用户的特有行为有注册。注册用户的特有行为有支付。管理员的行为有登陆登出、更改设置、更新信息、删除货物、禁止商家或者用户...

    Prolific PL-2528量产工具V1.8.rar

    具体功能如下:1.Security functionLogin/Logout 登陆登出Password Set/Change设置/改变密码。Disk Partition Size Set/Change设置分区大小2.FOrmat:Disk Format格式化U盘Make bootable Disk制作启动...

    基于Java+Sql Server实现的(GUI)学籍管理系统【100013287】

    主要功能: 提供了txt导入学生信息,成绩,课程信息的功能 提供手动录入学生信息,修改学生信息,批量修改班级及删除学生信息功能 ...提供了登陆登出功能,可以利用数据库权限控制指定用户所可拥有的功能

    Java《基于订阅通道模式的云音乐盒(适合小朋友圈子分享音乐的隧道音乐盒)》+项目源码+文档说明

    用户登陆登出 用户修改图像 查看已注册用户 网易云在线每日歌单 网易云每日列表 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、...

    基于SpringCloud开发的生鲜超市电商项目源码+项目说明(毕业设计).tar

    ·登陆登出 ·身份认证 ·安全限制 商品分类 ·分类列表 ·增加列表 ·修改类别 ·删除类别 商品信息 ·商品列表 ·新增商品 ·图片上传 ·更新删除 ·批量上下架 订单 ·订单列表 ·地址信息 ·发货 ·订单完结 ...

    Discuz_X3.1和第三方应用同步登陆、登出

    【描述】"Discuz_X3.1和第三方应用同步登陆、登出"主要关注的是提高用户体验和便捷性。Discuz! 是一款非常流行的开源社区论坛软件,X3.1是其某个重要版本。通过实现与第三方应用的同步登录和登出,可以创建一个统一...

    java-jsp+mysql网络管理系统 +源码

    近年来,随着云计算、物联网的兴起,给网络监护运维系统造成了不小的冲击,使得网络运维...该系统主要包含以下几个模块功能,用户管理,登陆登出,设备监控,账单费用计算。紧急会议启动,召开,预约。系统网站简介等。

    cas实现单点登录,登出(java和php客户端)

    - **登出**:单点登出(Single Logout, SLO)需要确保用户在一处登出时,其他所有已登录的资源也同时失效。CAS支持SLO,客户端需要正确处理登出请求和清除本地会话。 - **测试**:对SSO系统进行全面的功能和安全测试...

    产品实现方案1

    公有模块包括登陆登出和修改密码,满足基本的账户管理需求。用户模块则包含了二手闲置商品交易、竞赛招募队员、即时通讯以及个人信息管理。二手交易功能允许用户发布、查看和管理商品;竞赛招募功能方便学生寻找比赛...

Global site tag (gtag.js) - Google Analytics