[JAVA 교육] jsp 수업 정리

134703 단어 JavajspJava

참고 페이지 목록

  1. jsp-tomcat 공식 문서
    JSP 2.3 API - Apache Tomcat 9.0.55

간단한 것을 하지 못하는데, 복잡한 것을 할 수는 없다.

2021.11.29

  1. jsp : 자바 서버 페이지
  2. servlet : 자바 웹 프로그래밍 클래스
    서블릿 : 프론트 따로, 백엔드 따로라서 연동하기가 어려웠다.
  3. jsp : html 파일 내 java 작성 가능
  4. jsp 구동 원리
    • 클라이언트가 jsp 요청하면
    • html (그대로) 반환
    • jsp 내 java 코드는 servlet (java) 파일로 변환된다.
    • (결과만 html 에) 응답
    • (java 코드는 웹 페이지에서 보이지 않는다.) 클라이언트는 java 파일 확인 불가능
  5. 태그 :
    • <%! 선언문 %> : 1. 변수선언[전역변수] 2. 메소드선언 O
    	<%! String 문자열 = "jsp 선언문"; %>
    	<%! public String 메소드(){return "jsp 메소드선언";} %>
    • <% 스크립트문 %> : 2. 변수선언[지역변수] 2. 메소드선언 X 3. 출력 가능
    • <%= 표현식 %> : 1. html 에 java 변수, 메소드 호출
    • <-- 주석 --> : 주석처리
  6. 선언문과 스크립트
    • 선언문 : servlet 에서 필드에 해당
    • 스크립트 : _jspService 라는 메소드

JSP 내에서는 JAVA 에 제약이 걸린다. <% %>
서블릿 내에서는 HTML 에 제약이 걸린다. out.write();

jsp 파일 주소

form 태그

	<form action="jsp_08.jsp" method="post">
		반복할 문자 : <input type="text" name="string"> <br>
		반복할 횟수 : <input type="text" name="count"> <br>
		전송 <input type="submit" value="전송"> <br>
	</form>

post 방식과 get 방식

post : url 에 변수가 출력되지 않음 -> 로그인 할때 (보안이 중요할 때)
get : url 에 변수가 출력된다 -> get 요청은 cache 가 된다.

D:\jj_ansan_ezen.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\jsp_sample\org\apache\jsp\jsp_005fbasic

  • 지시자

1. page 지시자

1. <%@ page info="페이지속성내용">
2. <%@ page language="java">
3. <%@ page contentType="text/html" charset="UTF-8">
4. <%@ import="java.util.*">
5. <%@ errorPage="페이지명">

2. action 태그

	<h3>Action Tag</h3>

	<form action="jsp_11_action_tag_2.jsp" method="post">
		이름 : <input type="text" name="name"> <input type="submit">
	</form>

	<%
	request.setCharacterEncoding("utf-8");
	String name = request.getParameter("name");
	out.print(name);
	%>
	
	<jsp:include page="jsp_11_action_tag_1.jsp"></jsp:include>
  1. <jsp:include page="{$페이지명}></jsp:include>
    : 포함시킨다.
  2. <jsp:forward page="{$페이지명}></jsp:forward>
    : 이동시킨다.

번거롭게 loadpage 이런걸 만들필요가 없다. 이미 구현이 되어있다. 만들어진 api 가져다가 쓰면된다.

3. 태그 대체 액션태그

* <%! %>	:	<jsp:declaration> </delcartation> (서로 대체 가능)
* <% %>	:	<jsp:scriptlet> </scriptlet> (수업 때는 앞에 형식으로 사용한다.)
* <%= %> : <jsp:expression> </expression>
* 자바 빈즈 : [객체 통신 태그]

4. 내장 객체 [ 미리 만들어진 객체 ]

  1. request : 변수를 포함한 요청을 담고 있는 객체

    	<%
          out.print("Protocol : " + request.getProtocol() + "<br>");
          out.print("Server Name : " + request.getServerName() + "<br>");
          out.print("Server Port : " + request.getServerPort() + "<br>");
          out.print("Servlet Path :" + request.getServletPath() + "<br>");
          out.print("Computer Address : " + request.getRemoteHost() + "<br>");
          out.print("Computer Name : " + request.getRemoteAddr() +"<br>");
          out.print("Method : " + request.getMethod() + "<br>");
          out.print("Path : " + request.getRequestURI() + "<br>");
          out.print("Current Browser : " + request.getHeader("User-Agent") + " <br>");
	%>
Protocol : HTTP/1.1
Server Name : localhost
Server Port : 8081
Servlet Path :/jsp_basic/request_result.jsp
Computer Address : 0:0:0:0:0:0:0:1
Computer Name : 0:0:0:0:0:0:0:1
Method : POST
Path : /jsp_sample/jsp_basic/request_result.jsp
Current Browser : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
  1. response : 요청에 대한 응답을 담고 있는 객체
  2. out : 출력 스트림 객체
  3. session : 세션 정보를 담고 있는 객체
  4. page : jsp 서블릿 객체 [서블릿 페이지 정보]
  5. exception : 예외에 대한 정보를 담고 있는 객체

D:\jj_ansan_ezen.metadata.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\jsp_sample\org\apache\jsp\jsp_005fbasic

들어가서 메모장 열어보면 아래와 같이 선언이 되어있다.
필드 | 생성자 | 메소드 로 나뉘어져 있다.

버퍼 관련 글 링크 클릭

2021.11.30

HTTP : HTTP(HyperText Transfer Protocol, 문화어: 초본문전송규약, 하이퍼본문전송규약)는 W3 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. 주로 TCP를 사용하고 HTTP/3 부터는 UDP를 사용하며, 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었다.

HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다.

  • 복습

선언문 : [(필드) 멤버 변수] 서블릿 파일에서 필드에 위치한다.
태그 : <%! %>

스크립트문 : _jspService 메소드 : 서블릿 파일에서 메소드에 위치한다. 그래서 메소드 안에서 메소드를 선언할 수 없기 때문에 스크립트 문 안에서는 메소드 선언 불가능하다.
태그 : <% %>

표현식 :
태그 : <%= %>

중요 개념

  • request / response

  • post / get

  • session / cookie
    session : http 에서 제공하는 내장 객체 (httpSession)

  1. session.setAttribute("{$세션명}", 데이터) // 세션 할당
  2. session.getAttribute("{$세션명}") // 세션 호출
  3. session.invalidate() // (주의) 모든 섹션이 초기화된다.
  4. session.setMaxInactiveInterval(interval); // 세션 유지 시간 부여 (단위는 s)

세션 : 내장객체 (웹 페이지 전반적으로 사용되는 변수, static in java). 보안이 좋다.
서버 내 세션 저장소에 저장된다. 서버를 중지 시키기 전까지 계속 유지. 세션은 기본이 30분. 많은 세션 사용은 서버에 부화를 만든다. (서버 내 세션 저장소) 부여된 세션으로 홈페이지 활동
쿠키 : 사용자[클라이언트] pc 에 데이터 저장. 보안에 취약(장바구니, 로그인 정보 등)

what is session ?

about session

what is session-key

how sessions work in web servers