Java 웹 개발

21.10.11 - 웹 개발 입문 41일차

개발이란 2021. 10. 11. 23:05

웹 - 서블릿 

Q. exam 등록 서블릿 구현

이 서블릿은 exam 테이블에 데이터를 추가하는 기능을 가진 서블릿
주소 : http://localhost:8080/web05/exam/insert.txt

package web05.servlet;

import java.io.IOException;

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 web05.beans.ExamDao;
import web05.beans.ExamDto;

@WebServlet(urlPatterns = "/exam/insert.txt")
public class ExamInsertServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			// 입력 : ExamDto(student, subject, type, score)
			ExamDto examDto = new ExamDto();
			examDto.setStudent(req.getParameter("student"));
			examDto.setSubject(req.getParameter("subject"));
			examDto.setType(req.getParameter("type"));
			examDto.setScore(Integer.parseInt(req.getParameter("score")));

			// 처리 : 데이터베이스 테이블(exam) 추가 작업
			ExamDao examDao = new ExamDao();
			examDao.insert(examDto);

			// 출력
			resp.setCharacterEncoding("ms949");
			resp.getWriter().println("시험 정보 등록 완료");
			
		}
		catch (Exception e) {
			resp.setCharacterEncoding("ms949");
			resp.getWriter().println("처리 오류 발생");
			e.printStackTrace();
		}
	}
}

 

Q. 'http://localhost:8080/web05/product/insert.txt' 주소를 처리할 수 있는

데이터베이스 등록 작업 수행 서블릿을 구현하세요

package web05.servlet;

import java.io.IOException;

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 web05.beans.ExamDao;
import web05.beans.ProductDao;
import web05.beans.ProductDto;

@WebServlet(urlPatterns = "/product/insert.txt")
public class ProductInsertServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		try {
			ProductDto productDto = new ProductDto();
			productDto.setNo(Integer.parseInt(req.getParameter("no")));
			productDto.setName(req.getParameter("name"));
			productDto.setType(req.getParameter("type"));
			productDto.setPrice(Integer.parseInt(req.getParameter("price")));
			productDto.setMade(req.getParameter("made"));
			productDto.setExpire(req.getParameter("expire"));

			ProductDao productDao = new ProductDao();
			productDao.insert(productDto);

			// 출력
			resp.setCharacterEncoding("ms949");
			resp.getWriter().println("제품 등록 완료");

		} catch (Exception e) {
			resp.setCharacterEncoding("ms949");
			resp.getWriter().println("처리 오류 발생");
			e.printStackTrace();
		}
	}
}

 

Q. 'http://localhost:8080/web05/member/join.txt' 주소를 처리할 수 있는
데이터베이스 등록 작업 수행 서블릿을 구현하세요

package web05.servlet;

import java.io.IOException;

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 web05.beans.MemberDao;
import web05.beans.MemberDto;

@WebServlet(urlPatterns = "/member/join.txt")
public class MemberJoinServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		try {
			MemberDto memberDto = new MemberDto();
	
			memberDto.setMemberId(req.getParameter("memberId"));
			memberDto.setMemberPw(req.getParameter("memberPw"));
			memberDto.setMemberNick(req.getParameter("memberNick"));
			memberDto.setMemberBirth(req.getParameter("memberBirth"));
			memberDto.setMemberEmail(req.getParameter("memberEmail"));
			memberDto.setMemberPhone(req.getParameter("memberPhone"));

			MemberDao memberDao = new MemberDao();
			memberDao.join(memberDto);

			// 출력
			resp.setCharacterEncoding("ms949");
			resp.getWriter().println("회원 정보 등록 완료");

		} catch (Exception e) {
			resp.setCharacterEncoding("ms949");
			resp.getWriter().println("처리 오류 발생");
			e.printStackTrace();
		}
	}
}

 

 

Q. 시험 정보 변경 서블릿

package web05.servlet;

import java.io.IOException;

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 web05.beans.ExamDao;
import web05.beans.ExamDto;

@WebServlet(urlPatterns = "/exam/update.txt")
public class ExamUpdateServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//입력 : ExamDto
			ExamDto examDto = new ExamDto();
			examDto.setExamId(Integer.parseInt(req.getParameter("examId")));
			examDto.setStudent(req.getParameter("student"));
			examDto.setSubject(req.getParameter("subject"));
			examDto.setType(req.getParameter("type"));
			examDto.setScore(Integer.parseInt(req.getParameter("score")));

			//처리
			ExamDao examDao = new ExamDao();
			boolean success = examDao.update(examDto);

			//출력
			resp.setCharacterEncoding("MS949");
			if(success) {
				resp.getWriter().println("시험 정보 변경 완료");
			}
			else {
				resp.getWriter().println("존재하지 않는 시험지 번호");
			}
		}
		catch(Exception e) {
			e.printStackTrace();
			resp.getWriter().println("error");
		}
	}
}

 

Q. 'http://localhost:8080/web05/product/update.txt' 주소를 처리할 수 있는
데이터베이스 수정 작업 수행 서블릿을 구현하세요.

package web05.servlet;

import java.io.IOException;

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 web05.beans.ProductDao;
import web05.beans.ProductDto;

@WebServlet(urlPatterns = "/product/update.txt")
public class ProductUpdateServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//입력 : ProductDto(no, name, type, price, made, expire)
			ProductDto productDto = new ProductDto();
			productDto.setNo(Integer.parseInt(req.getParameter("no")));
			productDto.setName(req.getParameter("name"));
			productDto.setType(req.getParameter("type"));
			productDto.setPrice(Integer.parseInt(req.getParameter("price")));
			productDto.setMade(req.getParameter("made"));
			productDto.setExpire(req.getParameter("expire"));

			//처리
			ProductDao productDao = new ProductDao();
			boolean success = productDao.update(productDto);

			//출력
			resp.setCharacterEncoding("MS949");
			if(success) {
				resp.getWriter().println("상품 정보 변경 성공");
			}
			else {
				resp.getWriter().println("존재하지 않는 상품 번호");
			}
		}
		catch(Exception e) {
			e.printStackTrace();
			resp.getWriter().println("error");
		}
	}
}

 


'http://localhost:8080/web05/member/edit.txt' 주소를 처리할 수 있는
데이터베이스 수정 작업 수행 서블릿을 구현하세요.

package web05.servlet;

import java.io.IOException;

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 web05.beans.MemberDao;
import web05.beans.MemberDto;

@WebServlet(urlPatterns = "/member/edit.txt")
public class MemberEditServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//입력 : MemberDto
			MemberDto memberDto = new MemberDto();
			memberDto.setMemberId(req.getParameter("memberId"));
			memberDto.setMemberPw(req.getParameter("memberPw"));
			memberDto.setMemberNick(req.getParameter("memberNick"));
			memberDto.setMemberBirth(req.getParameter("memberBirth"));
			memberDto.setMemberEmail(req.getParameter("memberEmail"));
			memberDto.setMemberPhone(req.getParameter("memberPhone"));

			//처리
			MemberDao memberDao = new MemberDao();
			boolean success = memberDao.edit(memberDto);

			//출력
			resp.setCharacterEncoding("MS949");
			if(success) {
				resp.getWriter().println("회원 정보 변경 성공");
			}
			else {
				resp.getWriter().println("존재하지 않는 회원 아이디");
			}
		}
		catch(Exception e) {
			e.printStackTrace();
			resp.getWriter().println("error");
		}
	}
}

 

 

Q. 응용 비밀번호만 변경 가능하도록 구현

package web05.servlet;

import java.io.IOException;

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 web05.beans.MemberDao;
import web05.beans.MemberDto;

@WebServlet(urlPatterns = "/member/password.txt")
public class MemberChangePasswordServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			MemberDto memberDto = new MemberDto();
			memberDto.setMemberId(req.getParameter("memberId"));
			memberDto.setMemberPw(req.getParameter("memberPw"));
			String changePw = req.getParameter("changePw");

			//처리
			resp.setCharacterEncoding("MS949");
			if(memberDto.getMemberPw().equals(changePw)) {//현재비밀번호와 바꿀비밀번호가 같다면
				resp.getWriter().println("동일한 비밀번호로 변경할 수 없습니다");
			}
			else {//현재비밀번호와 바꿀비밀번호가 다르다면
				MemberDao memberDao = new MemberDao();
				//boolean success = memberDao.editPassword(memberId, memberPw, changePw);
				boolean success = memberDao.editPassword(memberDto, changePw);

				//출력
				if(success) {
					resp.getWriter().println("비밀번호 변경 완료");
				}
				else {
					resp.getWriter().println("정보가 잘못되었습니다");
				}
			}
		}
		catch(Exception e) {
			e.printStackTrace();
			resp.getWriter().println("error");
		}
	}
}

 

 

Q. 시험 정보 삭제 서블릿

package web05.servlet;

import java.io.IOException;

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 web05.beans.ExamDao;

@WebServlet(urlPatterns = "/exam/delete.txt")
public class ExamDeleteServlet extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			//입력 : Primary key(int examId)
			int examId = Integer.parseInt(req.getParameter("examId"));

			//처리
			ExamDao examDao = new ExamDao();
			boolean success = examDao.delete(examId);

			//출력
			resp.setCharacterEncoding("MS949");
			if(success) {
				resp.getWriter().println("시험 정보 삭제 성공");
			}
			else {
				resp.getWriter().println("존재하지 않는 시험지 번호");
			}

		}
		catch(Exception e) {
			e.printStackTrace();
			resp.getWriter().println("error");
		}
	}
}

 

 

Q. 제품 정보 삭제 서블릿

package web05.servlet;

import java.io.IOException;

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 web05.beans.ProductDao;

@WebServlet(urlPatterns = "/product/delete.txt")
public class ProductDeleteServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {

			int no = Integer.parseInt(req.getParameter("no"));

			ProductDao productDao = new ProductDao();
			boolean success = productDao.delete(no);

			resp.setCharacterEncoding("MS949");
			if (success) {
				resp.getWriter().println("제품 정보 삭제 성공");
			} else {
				resp.getWriter().println("존재하지 않는 제품 번호");
			}

		}

		catch (Exception e) {
			e.printStackTrace();
			resp.getWriter().println("error");
		}
	}
}

 

 

Q. 회원 정보 삭제 서블릿

package web05.servlet;

import java.io.IOException;

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 web05.beans.MemberDao;

@WebServlet(urlPatterns = "/member/delete.txt")
public class MemberDeleteServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		try {
			String memberId = req.getParameter("memberId");

			MemberDao memberDao = new MemberDao();
			boolean seccess = memberDao.delete(memberId);

			resp.setCharacterEncoding("MS949");
			if (seccess) {
				resp.getWriter().println("회원 정보가 삭제 성공");
			} else {
				resp.getWriter().println("존재하지 않는 회원 아이디");
			}
		} catch (Exception e) {
			e.printStackTrace();
			resp.getWriter().println("error");
		}
	}
}