form태그 속성
- action
- method
- enc : 서버로 보내지는 데이터의 형식 지정
- application/x-www-form-urlencoded : 디폴트값
- 서버로 전송되기 전에 url-encode된다.
- multipart/form-data
- 그대로 이미지나, 파일 서버로 전송될 때
- application/x-www-form-urlencoded : 디폴트값
enc
- 여러개의 파티션으로 나눠서 전송됨 (멀티파트)
- 첨부파일
- 본문 내용
- 제목
- post 타입이여야한다.
- 파일 업로드 시 사용함
- @MultipartConfig
- 여러개 파트로 구성되어있는 내용을 WAS가 파트별로 읽어서 파트별로 객체를 생성해줌
- 입력한 내용이든, 업로든 된 파트 내용이든...
- 사용자가 직접 입력한 거 : 입력 쿼리
- 업로드된 파일 내용
- 파트에 대한 추출과 보관을 WAS가 대신해준다.
- getport메소드만 호출해주면 된다.
- httprequest
- collection 객체로 return 됨
- part.getSubmittedFileName() : 업로드 된 파일 이름 추출
- null이면 업로드 된 파일이 없음
- @MultipartConfig ( location = "저장될 위치")
- write(filename)
- 여러개 파트로 구성되어있는 내용을 WAS가 파트별로 읽어서 파트별로 객체를 생성해줌
<label>첨부 파일 : <input type="file" name="myfile" multiple/></label><br>
- multiple속성 : 여러개 선택 가능
- 여러개 업로드 가능하게
- multiple없으면 이전꺼 없어짐
- 업로드 된 파일 개수만큼 파트가 생김
- 10개 선택하면 정보를 담고있는 파트는 10개가 된다.
@MultipartConfig(location = "c:/Temp/uploadtest")
part.write(System.currentTimeMillis()+"_"+fileName);
- 파일이름 시간 정보 저장함
File isDir = new File(path);
if (!isDir.isDirectory()) {
isDir.mkdirs();
}
- 파일 없으면 생성
- 아무것도 안 넣어도, 파트는 감
- null 문자열 : 객체가 있는 것
- null
jsp
- wAS = web server + application server
- application server
- servlet container + jsp converter (servlet 변환)
- jsp는 (만들어지거나 수정시에 )최조요청일 때 한번만 servlet으로 바뀜
- 알고 있어야 하는 내용
- servlet 프로그래밍에서 학습한 모든 내용
- 스크립트 태그
- 액션 태그
- 내장 객체
- 간단하게 그 때 그때 실행 결과가 표현되어야하는 건 표현식과 함께 자바식을 작성
- doGet, 막 그런거 안 해도 됨, java파일 없어도 됨
- 응답용으로 설계해서 get, post나누지 않음
- servlet으로 바뀔 때, 서비스 메서드로만 감 (요청방식에 무관하게)
- 서비스를 오버라이딩한 servlet
- contentType도 지시자로 먼저 지시함 <%@ page language="java" contentType="text/html; charset=UTF-8"
- html기반으로 원하는 곳에 적기
- servlet은 오류를 랜더링 해야 알 수 있었지만, jsp는 종료 태그를 자동으로 해줌 (편안)
- session 객체 자동으로 추출 됨
- jsp에서 servlet으로 변환할 때 생성됨
- 사용 안 할 꺼면, 페이지 지시자에 지시해주면 됨
- jsp 태그
- 스크립팅 태그 - 간단간단하게 자바코드
- 지시자 태그 <%@
- 스크립트릿(수행문) 태그 <%
- 자유롭게 정의
- service 메소드로 가서 실행 될 때마다 정의 됨
- 선언문( member 변수 선언, 메스드 정의 ) 태그 <%!
- servelt으로 변환될 때, servlet의 멤버 변수로
- 표현식 <%=
- 표현하고자하는 자바 식만 올 수 있음
- ';' 오면 안 됨
- out.print 호출식으로 바뀜
- 출력하고 있는 태그 내장
- r-value만 작성할 수 있음
- 액션 태그
- 스크립팅 태그 - 간단간단하게 자바코드
<li><%= new Date(session.getCreationTime()) %>
<li><%= application.getServerInfo()%></li>
<li><%= application.getContextPath()%></li>
- application.getServerInfo( ) : 서버 정보
- application.getContextPath( ) : 지금 현재 path
<body>
<h1>Query 문자열 추출(GET&POST)</h1>
<hr>
<%
if(request.getMethod().equals("POST")){
request.setCharacterEncoding("utf-8");
}
%>
<h2>당신의 <이름은<%= request.getParameter("name") %>이군요!</h2>
<a href = "<%= request.getHeader("referer")%>">입력화면으로</a>
</body>
- 특수문자 엔티티
- 특수문자 오류 인식때문에
- <%= request.getHeader("referer")%>
- 요청한 얘는 누구냐!
jsp를 servlet으로 변환하는 건 : 자스퍼- l-value(변수) = r-value (변수, 리터럴, 상수, 연산식, 리턴값이 있는 함수 호출식)
'study > JAVA 전문가' 카테고리의 다른 글
[JSP] java bean, 스코프, MVC모델 (0) | 2022.01.04 |
---|---|
[jsp] 액션태그 (0) | 2022.01.03 |
[servlet]요청 재지정 (0) | 2021.12.29 |
[servlet] 상태정보 유지 기술 (0) | 2021.12.29 |
[Servlet] Get방식 (0) | 2021.12.28 |