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");
}
}
}