(6) 로그인 기능 코드 실현

로그인 기능은 백그라운드에서 사용자가 합법적인지 확인해야 합니다.
앞의 블로그에서 우리는 프론트에서 전해온 데이터를login() 방법에 맡겨 처리하기 때문에 우리는 여기서부터 시작한다.

1. action층의 작성


프론트 데스크톱에서 데이터가 전송된 이상, 우리는 그를 가져와야 하기 때문에 getModel () 방법은 우리의employee 대상으로 돌아가야 한다.
    // 
    private Employee employee = new Employee();
    @Override
    public Employee getModel()
    {
        return employee;
    }

그리고 우리는 업무층의login(employee) 방법으로 처리하고 처리 결과를 되돌려 결과에 따라 페이지의 이동 방향을 결정해야 한다.
    public String login(){
        // 

        Employee existEmployee = employeeService.login(employee);
        if(existEmployee==null){

            // 

            this.addActionError(" ");
            return INPUT;
        }else{

            // 

            ActionContext.getContext().getSession().put("existEmployee",existEmployee);
            return SUCCESS;

        }

    }

위 코드에서 로그인에 성공하면, 우리는 이 사용자를session에 넣어서, 전방 페이지에 환영 항목을 표시할 수 있습니다.
자, 이제 업무층의 편찬을 시작합시다.

2. 업무층


기왕 우리가 업무층의login 방법을 필요로 한다면 현재 인터페이스층에 이 방법을 추가한 다음에 우리가 이 방법을 실현하도록 해야 한다.
구현은 다음과 같습니다.
    @Override
    /**
     *  
     */
    public Employee login(Employee employee)
    {
        // TODO Auto-generated method stub
        Employee existEmployee = employeeDao.findByUsernameAndPassword(employee);
        return existEmployee;
    }

다음은 Dao층 차례입니다.

3. DAO 계층


업무층에서 우리는 findByUsernameAndPassword () 방법이 필요하다는 것을 알 수 있다. 따라서 같은 업무층과 마찬가지로 우리는 인터페이스층에 해당하는 방법을 만들고 실현층에서 그것을 실현한다.
    @Override
    /**
     * DAO 
     */
    public Employee findByUsernameAndPassword(Employee employee)
    {
        // TODO Auto-generated method stub
        String hql = "from Employee where username=? and password = ?";
        List list = this.getHibernateTemplate().find(hql,employee.getUsername(),employee.getPassword());
        if(list.size()>0){

            return list.get(0);
        }

        return null;
    }

hql 문장의 쓰기에 주의하세요.

4.struts.xml 파일 설정


액션 층에 페이지의 반환 값을 설정했기 때문에struts.xml 프로필에 해당하는 점프 페이지를 설정합니다.
        name="employee_*" class="employeeAction" method="{1}">
            <result name="input">/index.jspresult>
            <result name="success" type="redirect">/frame.jspresult>
        

5. 전면 페이지 처리


앞에서 세션에 로그인한 사용자의 정보를 추가했기 때문에 성공 페이지를 돌려서 이 사용자의 정보를 표시할 수 있습니다. 구체적인 방법은 top입니다.jsp에 정보 추가하기
value="#session.existEmployee.ename"/>

이렇게 하면 우리는 성공적으로 로그인한 페이지에서 로그인한 사용자의 이름을 볼 수 있다.

좋은 웹페이지 즐겨찾기