SpringBoot/day51 / 23.11.16(목) / (핀테크) Spring 및 Ai 기반 핀테크 프로젝트 구축

허니몬·2023년 11월 18일
0
post-thumbnail

P12_myweb


com.web.root.member...


MemberController

package com.web.root.member.controller;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.web.root.member.dto.MemberDTO;
import com.web.root.member.service.MemberService;
import com.web.root.session.name.MemberSession;

@Controller
@RequestMapping("member")
public class MemberController implements MemberSession{
	
	@Autowired
	private MemberService ms;
	@GetMapping("login")
	public String login() {
		return "member/login";
	}
	
//	@PostMapping("user_check")
//	public String usercheck(HttpServletRequest request,RedirectAttributes ra) {
//		int result = ms.usercheck(request);
//		if(result == 1 ) {
//			ra.addFlashAttribute("id",request.getParameter("id"));
//			HttpSession session = request.getSession();
//			session.setAttribute("sid",request.getParameter("id"));
//			return "redirect:successLogin";
//		}
//		return "redirect:login";
//	}
//	@RequestMapping("successLogin")
//	public String successLogin() {
//		return "member/successLogin";
//	}
//	@GetMapping("logout")
//	public String login(HttpSession session) {
//		session.removeAttribute("sid");
//		session.invalidate();
//		return "redirect:login";
//	}
	@GetMapping("register_form")
	public String registerform() {
		return "member/register";
	}
	
	@PostMapping("regist")
	public String regist(HttpServletRequest request, RedirectAttributes ra) {
		int result = ms.usercheck(request);
		if(result ==1 ||result == 2) {
			ra.addFlashAttribute("a",result);
			return "redirect:register_form";
		}
		int result2 = ms.insert(request);
		if(result2 ==1 ) {
			ra.addFlashAttribute("result", result2);
			System.out.println("성공");
		} else {
			ra.addFlashAttribute("result", result2);
			System.out.println("실패");
		}
		return "redirect:login";
	}
	
	@GetMapping("minfo")
	public String minfo(HttpSession session) {
		if(session.getAttribute(LOGIN) != null) {
			return "redirect:memberInfo";
		}
		return "redirect:login";
	}
//	@GetMapping("memberInfo")
//	public String memberInfo(Model model) {
//		model.addAttribute("memberList", ms.memberInfo());
//		return "member/memberInfo";
//	}
	@GetMapping("info")
	public String info(@RequestParam("id") String id, Model model) {
		ms.info(id,model);
		return "member/info";
		
	}
	
	
	// ↓강사님 코드
	@PostMapping("user_check")
	public String userCheck(HttpServletRequest request, RedirectAttributes ra) {
		int result = ms.usercheck(request);
		if(result == 1) {
			ra.addAttribute("id", request.getParameter("id"));
			return "redirect:successLogin";
		}
		return "redirect:login";
	}
	
	@RequestMapping("successLogin")
	public String successLogin(@RequestParam("id") String id, HttpSession session) {
		session.setAttribute(LOGIN, id);
		return "member/successLogin";
	}
	
	
	@GetMapping("logout")
	public String logout(HttpSession session) {
		if(session.getAttribute("loginUser") != null) {
			session.invalidate();
		}
		return "redirect:/index"; // 기본 컨트롤러에 있기 때문에 '/' 를 붙여줍니다
	}
	@GetMapping("memberInfo")
	public String memberInfo(Model model) {
		ms.memberInfo(model);
		return "member/memberInfo";
	}

}

MemberDTO

package com.web.root.member.dto;

public class MemberDTO {
	private String id;
	private String pw;
	private String addr;
	
	public MemberDTO() {
		super();
	}
	public MemberDTO(String id, String pw, String addr) {
		super();
		this.id = id;
		this.pw = pw;
		this.addr = addr;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getpw() {
		return pw;
	}
	public void setpw(String pw) {
		this.pw = pw;
	}
	public String getAddr() {
		return addr;
	}
	public void setAddr(String addr) {
		this.addr = addr;
	}
	
	@Override
	public String toString() {
		return "[ id = " + id + ", pw = " + pw + ", addr = " + addr + " ]";
	}
	
}

MemberInterceptor

package com.web.root.member.interceptor;

import java.io.PrintWriter;

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

import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.web.root.session.name.MemberSession;

public class MemberInterceptor extends HandlerInterceptorAdapter implements MemberSession{

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		// TODO Auto-generated method stub
		HttpSession session = request.getSession();
		if(session.getAttribute(LOGIN) == null) {
			response.setContentType("text/html; charset=utf-8");
			PrintWriter out = response.getWriter();
			out.println("<script>"
					+ "alert('로그인 하세요');"
					+ "location.href='"	+ request.getContextPath() + "/member/login'"
					+ "</script>");
			return false;
		}
		return true; 
	}
	
	
	
}

MemberService

package com.web.root.member.service;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;

import org.springframework.ui.Model;

import com.web.root.member.dto.MemberDTO;


public interface MemberService {
	public int usercheck(HttpServletRequest request);
	public int insert(HttpServletRequest request);
//	public ArrayList<MemberDTO> memberInfo();
	public void memberInfo(Model model);
	public void info(String id, Model model);
}

MemberServiceImpl

package com.web.root.member.service;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.ui.Model;

import com.web.root.member.dto.MemberDTO;
import com.web.root.mybatis.member.MemberMapper;

@Service
public class MemberServiceImpl implements MemberService{
	@Autowired
	private MemberMapper mm;

	@Override
	public int usercheck(HttpServletRequest request) {
		// TODO Auto-generated method stub
		MemberDTO dto =  mm.usercheck(request.getParameter("id"));
		if(dto != null) {
			if(request.getParameter("pw").equals(dto.getpw())) {
				return 1; // 로그인 성공
			} else return 2;
		}
		return 0; // 로그인 실패
	}

	@Override
	public int insert(HttpServletRequest request) {
		// TODO Auto-generated method stub
		int su = mm.insert(request.getParameter("id"), request.getParameter("pw"), request.getParameter("addr"));
		if(su != 0) {
			return 1;
		}
		return 0;
	}

//	@Override
//	public ArrayList<MemberDTO> memberInfo() {
//		// TODO Auto-generated method stub
//		ArrayList<MemberDTO> list = new ArrayList<>();
//		list = mm.memberInfo();
//		return list;
//	}
	@Override
	public void memberInfo(Model model) {
		// TODO Auto-generated method stub
		model.addAttribute("memberList", mm.memberInfo());
	}

	@Override
	public void info(String id, Model model) {
		// TODO Auto-generated method stub
		MemberDTO dto =  mm.usercheck(id);
		model.addAttribute("member", dto);
	}
	
	
	
}


com.web.root.mybatis

MemberMapper

package com.web.root.mybatis.member;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.web.root.member.dto.MemberDTO;

@Mapper
public interface MemberMapper {
	public MemberDTO usercheck(String id);
	public int insert(@Param("id") String id, @Param("pw") String pw, @Param("addr") String addr);
	public ArrayList<MemberDTO> memberInfo();
}

MemberSession

package com.web.root.session.name;

// session 값 처리
public interface MemberSession {
	static final String LOGIN = "loginUser";
}

memberMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.web.root.mybatis.member.MemberMapper">
	<resultMap type="com.web.root.member.dto.MemberDTO" id="member">
		<id property="id" column="id"/>
		<result property="pw" column="pw"/>
		<result property="addr" column="addr"/>
	</resultMap>
	<select id="usercheck" resultMap="member">
		SELECT * FROM membership WHERE id=#{id} 
	</select>
	<insert id="insert">
		INSERT INTO membership VALUES(#{id },#{pw },#{addr })
	</insert>
	<select id="memberInfo" resultMap="member">
		SELECT * FROM membership 
	</select>
	
</mapper>
profile
Fintech

0개의 댓글