국비지원

22/05/03수업정리

야생늑대 2022. 5. 3. 11:47
반응형

 

서블릿(컨트롤 소스)에 매핑되어있지 않은 주소를 사용하면 페이지에서 링크를 눌렀을 때 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