2021-04-21

0421 jsp학습

 1. request : 유저의 요청에 대한 모든 것이 담겨있다

2. enctype: 기본적으로는 form encoded (POST) 

3. textarea 의 엔터 반영하는 법

1) <pre>태그이용하기

2) String의 replaceAll()메소드 이용하기 . replaceAll("\n","<br>")

4. checkbox에 체크하지않은경우 - 객체 null로 됨(이걸로 if로 제어할수있다... 근데 내생각엔 굳이 이걸 서버단까지 안가져오고. 걍 클라이언트 단에서 javascript로 유효성검사 해주는게 좋을것같음. 선택사항체크표시 아니라면..) 

5. checkbox에 value안 넣었을경우 - on이라는 값이 들어간다

6. request에는 - getparameter뿐만아니라. getparametervalues라는 메소드도 있다. 이걸 이용해서 String[]배열로 받을 수있음. 

7. enctype을 추가하면 - request에서 값을 가져올때 주의해야함. NullPointerException이뜬다- 

request.getParameter로 받은 값은 단순 String, 즉 첨부파일의 이름일 뿐이다

따라서 첨부된파일을 가져오려면 다른 방식으로 request에 접근해야함.

8. 내생각)

enctype="multipart/form-data"로 지정안하고

단순 파일명만 string으로 받아서 저장하구

실제 파일은 ajax로 처리하면 되지 않을라나~~>??? 


9. request에서 뽑아온 uri정보로부터 - 명령어별로 분기해서 유저의 요청을 처리할수있다. 

10.request.getRealPath()메소드를 통해서 실제 "물리적"경로를얻을수있다. 첨부파일을 저장할 때 필요하다. 웹상에서 접근하는 논리적주소가 아니라 물리적 경로!!

11. 그런데 이클립스상에서 돌아가는 톰캣은 - 실제 톰캣이 아니고. 서버를 복사해서 실행하는 패턴으로 돌아간다. ->metadata에 저장된다. 실제 서비스 경로가 아님

=>실제 서버에 프로젝트를 올리는경우와 경로가 달라진다. 

실제서버의 스토리지에 유저가 올린 파일을 저장해야 하니까.. 실제로 프로젝트를 서비스하려면 이 경로로 바꾸어주어야함. 지금은 학습용이니까!! 

12. getRealPath()는 request에도 있고 application객체에도 있는데. request용 getRealPath()는 deprecated되었으므로application에서 뽑는것을 추천함.!! 서버를 이용하는 유저 전체가 공유하는 주소인것이다.


13. request 에 setAttirbute로 저장하는 값 -> object타입이다. set으로 저장하고 - get으로 가져온다 (Object타입. ) 

getParameter는 유저가 submit해서 던진값.

setAttribute() , getAttribute()는 서버안에서 던지고 받는값. request 변수. 


14. 

enctype의 종류~

ajax는 일반 문자열 데이터(text/plain)

post방식은 form-urlencoded로 패키지화되어서 전달된다. get보다 안전(상대적으로, 왜냐면 uri에 유저가 보낸 값이 노출되지않으므로) 

파일첨부는 멀티파트이용. 

댓글 없음:

댓글 쓰기

0328 fdisk, mkfs, mount, fstab

 1. 하드디스크를 붙인다. 2. fdisk -l로 하드디스크를 확인한다.  - interactiive한 커맨드모드 사용하여 (m) 붙인 하드디스크의 파티셔닝을 한다.  - 마지막에 w를 해야 실제로 반영이 된다.  3. mkfs를 하여 어떤 파일시스...