서블릿(컨트롤 소스)에 매핑되어있지 않은 주소를 사용하면 페이지에서 링크를 눌렀을 때 404 에러가 발생한다. 그럴 때는 주소가 정확히 작성되었는지 확인한다.
※주소가 잘못되었기 때문에 요청한 리소스를 찾을수 없어서 에러
- 매핑이란 하나의 값을 다른 값으로 대응 시키는 것을 말한다.
- URL을 그대로 사용하면 주소가 너무 길어져서 많은 서블릿들을 관리하기 힘들다.
- 폴더명과 상세경로가 노출되기 때문에 보안상의 위험도 있다.
- 서블릿의 매핑은 URL주소를 보다 간결하게 하며 보안상 안전하게 하는 용도로 사용된다.
페이지 이동
▶ 이동하는 주소에 페이지 이름을 사용하면 단순 페이지 이동만 한다.
▶ 서블릿에 매핑된 주소를 통해 접속하면 서블릿에서 작업 수행 후 이동한다. (서블릿을 거친다.)
※ 프로젝트에서는 단순 페이지 이동은 거의 없고 대부분 컨트롤러를 거쳐서 이동하게끔 한다.
그래서 서블릿 주소를 다 가지고 작업한다. Main페이지로 이동해도 컨트롤러를 거쳐 이동한다고 한다.
전송방식
post
get방식과 다르게 넘어간다.
URL에 데이터는 담기지 않고 URL만 넘어감
인코딩 정보가 안 넘어가서 한글이 깨짐
request의 파라미터에 담김 (컨트롤러에서 리퀘스트에 있는 캐릭터들을 인코딩해줘야 함.)
get
url에 데이터가 담겨서 넘어감
UTF-8 코드(인코딩 정보)도 같이 넘어감
서블릿에서 받아온 값을 테이블 형태로 출력할 때 두 가지 방법 사용
request.setAttribute로 저장된 데이터는 값을 꺼내 쓸 때 싱글 쿼터 해주기
<button onclick="boardDelete('${bCon.bno }', '${bCon.btitle }')"> 글 삭제 </button>
request.setAttribute() 에는 Object형태로 저장되고
request.getAttribute()는 Object 형태로 가져온다.
페이지는 object타입을 읽을 수 없기 때문에 사용할 때 데이터에 맞게 형 변환 필수
- 여기서 더블 쿼터는 함수 안의 내용을 문자형태로 정의해주는 게 아니고 onclick의 속성 값을 정의해주는 표시이다
- 그래서 매개변수에 싱글 쿼터( ' )를 안 해주면 object형태로 담겨있기 때문에 페이지가 인식을 못한다.
- 더블 쿼터를 사용해도 되지만 그러면 코드가 많아질수록 다른 용도의 더블 쿼터들과 헷갈릴 수 있기 때문에 싱클쿼터를 사용하는 것이 좋다.
- 그리고 숫자는 싱글 쿼터를 안 해도 페이지가 숫자 형태로 인식하지만 정확한 데이터 처리를 위해 싱클쿼터로 묶어
- 문자형태로 만들어 사용해주자.
기본형식 replaceAll(String regex, String replacement);
웹페이지에서는 띄어쓰기나 줄바꿈이 작성한대로 표현되지않기 때문에
웹페이지에서 띄어쓰기나 줄바꿈이 일어나도록 공백과 줄바꿈을 HTM형식으로 replaceAll을 사용하여 바꿔주었다.
replaceAll 은 replace와 다르게 정규표현식을 사용할 수 있다.
JSP파일에서 URL주소를 지정해서 이동하기
onclick 함수에 location.href = "이동할 페이지"; 를 사용하여 클릭시 지정된 문자열로 URL을 변경한다.
boardDelete 주소를 이동할 페이지로 지정하여 매핑되어있는 주소와 일치하므로 해당 웹페이지로 이동한다..
form의 method 값이 post이면 url 주소에 파라미터 값이 넘어오지 않는다.
글 삭제에 사용하기 위해 버튼을 onclick 했을 때 필요한 데이터를 넘겨주도록 함수를 작성한다.
BoardView.jsp 페이지에는 이미 글 목록에 대한 데이터가 RequestDispatcher, Forward로 데이터가 넘어오게 되어 있기 때문에 그 데이터를 사용해서 글 번호와 글 제목을 매개변수로 사용해서 url로 넘겨지도록 했다.
switch 조건문으로 case에 글 삭제를 눌렀을 때 사용할 서블릿 주소를 주어서 url주소가 지정한 주소인 "/Board/boardDelete"로 넘어오면 같이 넘어온 글 번호(delBno)와 글 제목(delBtitle)을 request.getParameter()로
가져와서 변수에 저장한다.
주소창을 보면 서블릿 주소 이외에 파라미터 값이 넘어온 걸 볼 수 있다.
콘솔 창에도 출력이 제대로 되었다.
내일은 이걸 가지고 선택한 글을 DB에서 삭제하고, 수정하는 수업 예정
'국비지원' 카테고리의 다른 글
22-05-06 수업정리 (0) | 2022.05.06 |
---|---|
22-05-04 수업정리 (0) | 2022.05.04 |
22/05/02 수업정리 (0) | 2022.05.02 |
22/04/29 수업정리 (0) | 2022.04.29 |
22/04/28 수업정리 (0) | 2022.04.28 |