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
- 배포
- Spring
- PL/SQL
- 비트코인
- tiles.xml
- HTML
- express
- JavaScript
- autowired
- AWS
- websocket
- Cookie
- jQuery
- 암호화
- docker
- 웹소켓
- RDS
- SQL
- model1
- 웹게임
- 블록체인
- Servlet
- Ajax
- node.js
- 도커
- phaser
- 알고리즘
- EC2
- JSP
- CSS
Archives
- Today
- Total
記錄
Servlet) 키워드 받아서 경로 나눠주는 방식(cmd) 본문
private void doProcess(HttpServletRequest request, HttpServletResponse response ,
String method) throws ServletException, IOException {
// doGET , doPOST 모든 요청을 내가 처리
// 여기서 method는 무슨 방식으로 보냈는지
System.out.println("클라이언트 요청 : " + method);
//1. 요청 받기 (GET, POST)
//2. 요청 판단 (판단의 기준) : command 방식
//2.1 parameter 기준으로
//ex) board?cmd=login&userid=kglim
// String str = request.getParameter("cmd")
// if(str.equals("login")){ 로그인 처리 ..}
//TIP : URL 주소 판단 -> ex) board/boardlist
// board/boardwrite?title=aaa&content=bbb
//즉, 마지막 주소 문자가 무엇인지에 따라
//boardlist면 게시판 목록보기 boardwrite면 게시판 글쓰기와 같은 방식
//문제 : 클라이언트가 페이지 주소 직접 입력하면?
//localhost:8090/WebServlet_1/ok.jsp이런 식으로 직접 입력시 문제
//해결책 : 보안폴더에 담아서 원천 봉쇄하고 대신 forward로 보낸다
//보안폴더 > WEB-INF (클라이언트가 직접 URL 주소로 접근 불가)
//1. WEB-INF 접근 : 404 Error
//2. WEB-INF 활용 : ex) views > board > list.jsp
// views > member > memberok.jsp
//<코드 예시>
//1.요청 받기 (command 방식)
//요청주소: 예시) http://localhost:8090/WebServlet_1/board?cmd=list
String cmd = request.getParameter("cmd");
//2.요청 판단 (업무에 따라서 정하면 됨)
String viewpage = null;
//예시)
//cmd > null > error.jsp
//cmd > boardlist > list.jsp
//cmd > boardwrite > write.jsp 서비스
if(cmd == null) {
viewpage = "/error/error.jsp";
}else if(cmd.equals("boardlist")) {
viewpage = "/board/boardlist.jsp";
//예시) 여기서는 DB연결이 필요하다
//DB연결
//실행 > 결과 (rs) > 객체 담기
//boarddao dao = new boarddao();
//List<board> boardlist = dao.selectboardlist();
//이렇게 request에 만든 list 주소를 담는다
//request.setAttribute("list",boardlist)
//view page forward 방식으로 보내서 request에서 끌어낸다
//<c:set var="list" value=<%= request.getAttribute("list") %>
}else if(cmd.equals("boardwrite")) {
viewpage = "/board/boardwrite.jsp";
}else if(cmd.equals("login")) {
viewpage = "/WEB-INF/login/login.jsp";
}else {
viewpage = "/error/error.jsp";
}
//3.필요한 연산을 처리한다
//가정 : List<Emp> list = new ArrayList<>();
//가정 : list.add(new Emp(2000,"김유신"));
//request.setAttribute("emplist",list)
// cf) 위에서 viewpage는 보낼 주소를 설정하는 처리 단계였다
// 아직 그 어떤 것도 가지 않았다는 의미이다
// 보내는 것은 아래에서 dis.forward()에서 처리 된다
// 보내기 전까지는 필요한 연산을 처리하고 세팅을 하는 과정이다
//4. view 지정 > forward
// 여기서 위 과정을 통해 정해진 viewpage를 탑재
// <<<<< dis.forward시 나아갈 경로를 설정하는 것>>>>>
RequestDispatcher dis = request.getRequestDispatcher(viewpage);
//5. view forward 방식으로 전달 (view 에게 정보전달 : request )
dis.forward(request, response); //servlet이 갖고있는 request객체 주소-> view 전달
}
'Web > Servlet' 카테고리의 다른 글
Servlet) 커넥션 풀(DBCP) (0) | 2018.03.29 |
---|---|
Servlet) 예제(단순 알림 or 객체 전달) (0) | 2018.03.29 |
Servlet) out.print()에 대한 이해 (0) | 2018.03.29 |
Servlet) Life Cycle, @WebServlet 설정 (0) | 2018.03.29 |
Servlet) 기본 흐름, web.xml 매핑 (0) | 2018.03.28 |
Comments