Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- docker
- 웹게임
- JavaScript
- jQuery
- EC2
- 비트코인
- CSS
- HTML
- 암호화
- model1
- 도커
- phaser
- 웹소켓
- 알고리즘
- PL/SQL
- tiles.xml
- Spring
- Cookie
- AWS
- node.js
- Ajax
- SQL
- autowired
- 블록체인
- Servlet
- express
- RDS
- websocket
- 배포
- JSP
Archives
- Today
- Total
記錄
Servlet) "?cmd=~" vs @WebServlet("*.do") 본문
Model2 방식의 특징은 각자가 잘하는 일을 하도록 만드는 것에 있다. jsp는 표현과 출력에 집중하고 servlet은 연산처리를 전담하도록 하는 것이다. 크게 두 가지 방식이 있는데 하나는 공통의 servlet에 cmd값을 다르게 보내는 방법이고 다른 하나는 @WebServlet("*.do")와 같은 방식으로 주소가 달라도 하나의 servlet으로 보내는 방법이 있다.
정리) Model2 방식 두 가지
1) '?cmd=~'
2) @WebServlet("*.do")
?cmd=~
private void doProcess(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1. 요청 받기
String command = request.getParameter("cmd");
//2. 요청 판단 처리 (command 방식 : ?cmd=list)
String viewpage="";
if(command.equals("register")) { //?cmd=register
//회원가입 페이지 전달
viewpage = "/WEB-INF/Register/Register.jsp"; //WEB-INF 접근 가능
}else if(command.equals("registerok")) { //?cmd=registerok
//회원가입 처리
//?cmd=registerok&id=hong&pwd=1004&email=hong@naver.com
int id = Integer.parseInt(request.getParameter("id"));
String pwd = request.getParameter("pwd");
String email = request.getParameter("email");
//Controller -> [Service] 생략 -> DAO (DTO)
//DTO 객체
MvcRegister dto = new MvcRegister();
dto.setId(id);
dto.setPwd(pwd);
dto.setEmail(email);
//DAO 객체
MvcRegisterDao dao = new MvcRegisterDao();
int result = dao.writeOk(dto);
String resultdata="";
if(result > 0) {
resultdata = "welcome to kosta " + dto.getId() + "님";
}else {
resultdata = "Insert Fail retry";
}
//3. 결과 저장하기 (여기서 view 생성 태그 만들고 ..... 하지 않고 별도의 jsp)
request.setAttribute("data", resultdata);
viewpage = "/WEB-INF/Register/Register_welcome.jsp";
}
//4. view 지정
RequestDispatcher dis = request.getRequestDispatcher(viewpage);
//5. forward
dis.forward(request, response);
}
}
@WebServlet("*.do")
private void doProcess(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1. 요청 받기
//String command = request.getParameter("cmd");
//Url 방식은 cmd parameter 사용 안되요
//register.do
//registerok.do
//registerlist.do
//주소각 요청의 판단 근거
String RequestURI = request.getRequestURI();
String ContextPath = request.getContextPath();
String url_command = RequestURI.substring(ContextPath.length());
/*
RequestURI : /WebServlet_8_MVC_Member_Url/Register.do
ContextPath : /WebServlet_8_MVC_Member_Url
url_command : /Register.do
*/
System.out.println("RequestURI : " + RequestURI);
System.out.println("ContextPath : " + ContextPath);
System.out.println("url_command : " + url_command);
//2. 요청 판단 처리 (command 방식 : ?cmd=list)
String viewpage="";
if(url_command.equals("/Register.do")) { //?cmd=register
//회원가입 페이지 전달
viewpage = "/WEB-INF/Register/Register.jsp"; //WEB-INF 접근 가능
}else if(url_command.equals("/ok.do")) { //?cmd=registerok
//회원가입 처리
//?cmd=registerok&id=hong&pwd=1004&email=hong@naver.com
int id = Integer.parseInt(request.getParameter("id"));
String pwd = request.getParameter("pwd");
String email = request.getParameter("email");
//Controller -> [Service] 생략 -> DAO (DTO)
//DTO 객체
MvcRegister dto = new MvcRegister();
dto.setId(id);
dto.setPwd(pwd);
dto.setEmail(email);
//DAO 객체
MvcRegisterDao dao = new MvcRegisterDao();
int result = dao.writeOk(dto);
String resultdata="";
if(result > 0) {
resultdata = "welcome to kosta " + dto.getId() + "님";
}else {
resultdata = "Insert Fail retry";
}
//3. 결과 저장하기 (여기서 view 생성 태그 만들고 ..... 하지 않고 별도의 jsp)
request.setAttribute("data", resultdata);
viewpage = "/WEB-INF/Register/Register_welcome.jsp";
}
//4. view 지정
RequestDispatcher dis = request.getRequestDispatcher(viewpage);
//5. forward
dis.forward(request, response);
}
}
'Web > Servlet' 카테고리의 다른 글
Servlet) 파일 업로드 (0) | 2018.04.04 |
---|---|
Servlet) Filter (0) | 2018.04.04 |
Servlet) 커넥션 풀(DBCP) (0) | 2018.03.29 |
Servlet) 예제(단순 알림 or 객체 전달) (0) | 2018.03.29 |
Servlet) out.print()에 대한 이해 (0) | 2018.03.29 |
Comments