Notice
Recent Posts
Recent Comments
Link
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

ALLYES

[2022년 청년친화형 기업 ESG지원 사업 - 32] 본문

ESG

[2022년 청년친화형 기업 ESG지원 사업 - 32]

Allyes_99 2022. 10. 18. 17:51

일시 : 2022.10.18

시간 : 9:00 ~ 18:00


오전 : JSP

오후 : Java Spring


오전 [JSP]

4개의 servlet 생성

4개의 코드파일 작성

  • GoJoinService.java
package com.smhrd.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/GoJoinService")
public class GoJoinService extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String view = "WEB-INF/views/Join.jsp";
		RequestDispatcher rd = request.getRequestDispatcher(view);
		rd.forward(request, response);
	
	}

}

  • GoLoginService.java
package com.smhrd.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class GoLoginService
 */
@WebServlet("/GoLoginService")
public class GoLoginService extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String view = "WEB-INF/views/Login.jsp";
		RequestDispatcher rd = request.getRequestDispatcher(view);
		rd.forward(request, response);
	
	}

}

  • GoMainService.java
package com.smhrd.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/GoMainService")
public class GoMainService extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		// 단순 페이지 이동 
		// main.jsp로 이동 단, forward 방식으로 이동 
		String view = "WEB-INF/views/Main.jsp";
		RequestDispatcher rd = request.getRequestDispatcher(view);
		rd.forward(request, response);
	
	}

}

  • GoMypageService.java
package com.smhrd.controller;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/GoMypageService")
public class GoMypageService extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String view = "WEB-INF/views/mypage.jsp";
		RequestDispatcher rd = request.getRequestDispatcher(view);
		rd.forward(request, response);
	}

}

MemberSystem2를 복제하여 FrontController로 재정의

그 후 servers에서 membersystem2를 삭제

(삭제를 해야 에러가 안생김)


새로운 package 생성 : com.smhrd.frontController

  • FrontController.java

package com.smhrd.frontController;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Map;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.smhrd.controller.Controller;
import com.smhrd.controller.GoJoinCon;
import com.smhrd.controller.GoLoginCon;
import com.smhrd.controller.GoMainCon;
import com.smhrd.controller.GoMypageCon;
import com.smhrd.controller.GoSelectCon;
import com.smhrd.controller.JoinCon;
import com.smhrd.controller.LoginCon;
import com.smhrd.controller.UpdateCon;
import com.smhrd.model.MemberDAO;
import com.smhrd.model.MemberVO;

@WebServlet("*.do") // .do가 붙은 모든 요쳥을 이 FrontController가 해결함
public class FrontController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private Map<String, Controller> mappings;
	
	@Override
	public void init() throws ServletException {
		// Servlet이 생성 될 때 실행(딱 1번만)
		
		// 절대 FrontController는 수정을 하지 않으려고
		// HandlerMapping이라는 Class를 만듦
		HandlerMapping handler = new HandlerMapping();
		mappings = handler.getMappings();
		
	}
	
	
	

	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		System.out.println("FrontController 호출");

		// 1. 어떤 요청이 들어오는지 urlmapping만 잘라내기
		// /MemberSystem/join.do
		String uri = request.getRequestURI();
		// /MemberSystem
		String cpath = request.getContextPath();
		// /join.do
		String command = uri.substring(cpath.length());
		System.out.println("요청 mapping : " + command);
		String view = null;

		request.setCharacterEncoding("EUC-KR");
		Controller con = mappings.get(command);

		// 2. 요청 구분해서, 각각의 기능 실행시키기
		
		
		
		// if문 끝 ===========================================
		if (con != null) {
			view = con.execute(request, response);
		}
		// 페이지 이동
		if (view != null) {

			if (view.contains("redirect:/")) {
				// redirect:/goMain.do
				// .split(":/") --> [ "redirect", "goMain.do" ]
				response.sendRedirect(view.split(":/")[1]);

			} else {

				RequestDispatcher rd = request.getRequestDispatcher("WEB-INF/views/" + view + ".jsp");
				rd.forward(request, response);

			}

		}

	}

}

  • Servlet : HandlerMapping.java
package com.smhrd.frontController;

import java.util.HashMap;

import com.smhrd.controller.Controller;
import com.smhrd.controller.DeleteCon;
import com.smhrd.controller.GoJoinCon;
import com.smhrd.controller.GoLoginCon;
import com.smhrd.controller.GoMainCon;
import com.smhrd.controller.GoMypageCon;
import com.smhrd.controller.GoSelectCon;
import com.smhrd.controller.JoinCon;
import com.smhrd.controller.LoginCon;
import com.smhrd.controller.UpdateCon;

public class HandlerMapping {
	// urlmapping <--> POJO 짝 지어 가지고 있을 자료구조 HashMap 생성
	// key : value 형태로 데이터를 저장
	// key를 집어넣으면 value는 형태
	// {"name" : "안현진", ...}
	
	private HashMap<String, Controller> mappings;
	
	// 이 HandlerMapping 생성될 때, data가 저장될 수 있도록 생성자 생성
	public HandlerMapping() {
		mappings = new HashMap<String, Controller>();
		
		// HashMap에 데이터 넣기
		// .put(key, value)
		mappings.put("/goMain.do", new GoMainCon());
		mappings.put("/goLogin.do", new GoLoginCon());
		mappings.put("/goJoin.do", new GoJoinCon());
		mappings.put("/goMypage.do", new GoMypageCon());
		mappings.put("/goSelect.do", new GoSelectCon());

		mappings.put("/join.do", new JoinCon());
		mappings.put("/login.do", new LoginCon());
		mappings.put("/update.do", new UpdateCon());
		
		mappings.put("/delete.do", new DeleteCon());
		
		
	}

	public HashMap<String, Controller> getMappings() {
		return mappings;
	}
}

package : com.smhrd.controller

  • interface : Controller.java
package com.smhrd.controller;

import java.io.IOException;

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

public interface Controller {
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException;
}

  • class : DeleteCon.java
package com.smhrd.controller;

import java.io.IOException;

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

import com.smhrd.model.MemberDAO;
import com.smhrd.model.MemberVO;

public class DeleteCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		// 1. 데이터 수집
		HttpSession session = request.getSession();
		MemberVO info = (MemberVO)session.getAttribute("info");
		String id = info.getId();
		
		// 2. 회원 삭제 기능 실행
		// delete from member2 where id = ?
		MemberDAO dao = new MemberDAO();
		int cnt = dao.delete(id);
		
		if(cnt>0) {
			System.out.println("회원탈퇴 성공");
			session.removeAttribute("info");
		}else {
			System.out.println("회원탈퇴 실패");
		}

		return "redirect:/goMain.do";
	}

}

  • class : GoJoincon.java
package com.smhrd.controller;

import java.io.IOException;

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

public class GoJoinCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		return "Join";
	}

}

  • Class : GoLoginCon.java
package com.smhrd.controller;

import java.io.IOException;

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

public class GoLoginCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		
		return  "Login";
	}

}

  • Class : GoMainCon.java
package com.smhrd.controller;

import java.io.IOException;

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

// 알바생(POJO)
public class GoMainCon implements Controller {
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException{
			
			// ~~ 프로그램 ~~~	
		
			// 다음페이지 리턴
			return "Main";
			}
}

  • Class : GoMypageCon.java
package com.smhrd.controller;

import java.io.IOException;

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

public class GoMypageCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		return "mypage";
	}

}

  • Class : GoSelectCon.java
package com.smhrd.controller;

import java.io.IOException;
import java.util.ArrayList;

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

import com.smhrd.model.MemberDAO;
import com.smhrd.model.MemberVO;

public class GoSelectCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		MemberDAO dao = new MemberDAO();
		ArrayList<MemberVO> list = dao.select();

		System.out.println(list);

		request.setAttribute("list", list);

		return "select";
	}

}

  • Class : JoinCon.java
package com.smhrd.controller;

import java.io.IOException;

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

import com.smhrd.model.MemberDAO;

public class JoinCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String id = request.getParameter("id");
		String pw = request.getParameter("pw");
		String nick = request.getParameter("nick");
		String addr = request.getParameter("addr");

		MemberDAO dao = new MemberDAO();
		int cnt = dao.join(id, pw, nick, addr);

		if (cnt > 0) {
			System.out.println("회원가입 성공!");
		} else {
			System.out.println("회원가입 실패...");
		}

		return "redirect:/goMain.do";
	}

}

  • Class : LoginCon.java
package com.smhrd.controller;

import java.io.IOException;

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

import com.smhrd.model.MemberDAO;
import com.smhrd.model.MemberVO;

public class LoginCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		String login_id = request.getParameter("id");
		String login_pw = request.getParameter("pw");

		MemberDAO dao = new MemberDAO();
		MemberVO info = dao.login(login_id, login_pw);

		if (info != null) {
			System.out.println("로그인 성공!");
			HttpSession session = request.getSession();
			session.setAttribute("info", info);
		} else {
			System.out.println("로그인 실패...");
		}

		return "redirect:/goMain.do";
	}

}

  • Class : UpdateCon.java
package com.smhrd.controller;

import java.io.IOException;

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

import com.smhrd.model.MemberDAO;
import com.smhrd.model.MemberVO;

public class UpdateCon implements Controller {

	@Override
	public String execute(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 1. 데이터 받아오기
		String id = request.getParameter("id");
		String pw = request.getParameter("pw");
		String nick = request.getParameter("nick");
		String addr = request.getParameter("addr");

		// 데이터 묶어주기
		MemberVO info = new MemberVO(id, pw, nick, addr);

		// 2. DAO의 update( info )메서드 실행
		MemberDAO dao = new MemberDAO();
		int cnt = dao.update(info);

		// 3. 성공/실패 구분
		if (cnt > 0) {
			System.out.println("정보 수정 성공");
			// session에 저장된 info 수정
			HttpSession session = request.getSession();
			session.setAttribute("info", info);

		} else {
			System.out.println("정보 수정 실패");
		}

		// 4. mypage.jsp로 돌아가기

		return "redirect:/goMypage.do";
	}

}

package : com.smhrd.model

  • Servlet : MemberDAO.java
package com.smhrd.model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

public class MemberDAO {
	// DAO : SQL문을 실행, 실행결과를 리턴

	// 여러 메서드에서 공통으로 사용하고 있는 변수들을 field로 빼자
	Connection conn = null;
	PreparedStatement psmt = null;
	ResultSet rs = null;
	int cnt = 0;
	MemberVO info = null;

	// 공통적으로 사용되고 있는 코드들은 메서드화
	// connection 생성
	public void getConn() {
		try {

			// 1. 드라이버 로딩(동적로딩)
			// - 어떠한 DBMS를 사용할지 명시
			Class.forName("oracle.jdbc.driver.OracleDriver");
			// 2. 커넥션 연결
			// - Java 클래스 파일과 DB와의 연결
			String db_url = "jdbc:oracle:thin:@localhost:1521:xe";
			String db_id = "hr";
			String db_pw = "hr";

			conn = DriverManager.getConnection(db_url, db_id, db_pw);

			if (conn != null) {
				System.out.println("Connection 성공!");
			} else {
				System.out.println("Connection 실패!");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	// ===============

	// 연결 끊기
	public void close() {
		// 4.연결끊기
		// -DB와 관련된 객체들 연결을 끊기
		try {
			if (rs != null) {
				rs.close();
			}
			if (psmt != null) {
				psmt.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	// ===============

	// 회원가입 메서드
	public int join(String id, String pw, String nick, String addr) {
		// JDBC 순서 4단계

		try {

			getConn();

			// 3.SQL문 작성 및 실행
			// - 사용할 SQL문 작성 그리고 SQL문 실행
			String sql = "insert into member2 values(?,?,?,?)";
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, id);
			psmt.setString(2, pw);
			psmt.setString(3, nick);
			psmt.setString(4, addr);

			cnt = psmt.executeUpdate();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			close();
		}

		return cnt;

	}

	// ===============

	// 로그인 메서드
	public MemberVO login(String login_id, String login_pw) {
		// JDBC 순서 4단계

		try {

			getConn();

			// 3.SQL문 작성 및 실행
			// - 사용할 SQL문 작성 그리고 SQL문 실행
			String sql = "select * from member2 where id = ? and pw = ?";
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, login_id);
			psmt.setString(2, login_pw);

			rs = psmt.executeQuery();

			if (rs.next()) {
				String id = rs.getString(1);
				String pw = rs.getString(2);
				String nick = rs.getString(3);
				String addr = rs.getString(4);

				info = new MemberVO(id, pw, nick, addr);
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			close();
		}

		return info;

	}
	// ===============

	// 회원목록
	public ArrayList<MemberVO> select() {
		// DB에서 전체 회원 목록 가져오기
		ArrayList<MemberVO> list = new ArrayList<MemberVO>();

		try {

			getConn();

			// 3. SQL문 준비 -> 실행준비 마치기
			String sql = "select * from member2";
			psmt = conn.prepareStatement(sql);

			// 4. 실행
			rs = psmt.executeQuery();

			// 5. ResultSet 가공
			while (rs.next()) {
				String id = rs.getString(1);
				String pw = rs.getString(2);
				String nick = rs.getString(3);
				String addr = rs.getString(4);

				MemberVO info = new MemberVO(id, pw, nick, addr);

				list.add(info);
			}

		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}

		return list;
	}
	// ===============

	// 마이페이지 회원정보 수정하기

	public int update(MemberVO info) {
		// DB에서 전체 회원 목록 가져오기
		
		try {
			
			getConn();
			
			String sql = "update member2 set pw=?, nick=?, addr=? where id =?";
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, info.getPw());
			psmt.setString(2, info.getNick());
			psmt.setString(3, info.getAddr());
			psmt.setString(4, info.getId());
			
			// Query --> rs (표)
			// Update --> int (몇개 수정되었는지)
			cnt = psmt.executeUpdate();
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}
		
		return cnt;
	}
	// 회원탈퇴 
	public int delete(String id) {
		// DB에서 전체 회원 목록 가져오기
		
		try {
			
			getConn();
			
			String sql = "delete from member2 where id =?";
			psmt = conn.prepareStatement(sql);
			psmt.setString(1, id);
		
			// Query --> rs (표)
			// Update --> int (몇개 수정되었는지)
			cnt = psmt.executeUpdate();
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			close();
		}
		
		return cnt;
	}
}

  • Servlet : MemberVO.java
package com.smhrd.model;

public class MemberVO {
	private String id;
	private String pw;
	private String nick;
	private String addr;	
	
	public MemberVO(String id, String pw, String nick, String addr) {
		this.id = id;
		this.pw = pw;
		this.nick = nick;
		this.addr=addr;
	}

	public String getId() {
		return id;
	}

	public String getPw() {
		return pw;
	}

	public String getNick() {
		return nick;
	}

	public String getAddr() {
		return addr;
	}

	public void setId(String id) {
		this.id = id;
	}

	public void setPw(String pw) {
		this.pw = pw;
	}

	public void setNick(String nick) {
		this.nick = nick;
	}

	public void setAddr(String addr) {
		this.addr = addr;
	}
	
	
}

오후 [Java Spring]

 

표준프레임워크 포털

https://www.egovframe.go.kr/home/ntt/nttRead.do?pagerOffset=0&searchKey=&searchValue=&menuNo=65&bbsId=4&nttId=1743

 

버전 4 파일 다운로드

 C:\ 경로로 재 설정 후 압축 해제


eclipse.edu 실행

오라클 포트 번호와 겹치므로 포트번호 변경


Mysql 참고