onnnzeoz
article thumbnail

JSP

JAVA Servlet Page

자바를 통해 웹페이지를 만들기 위해 필요한 기술

구체적으로, 클라이언트가 어떤 요청을 했을 때 그 결과를 다시 전송하는 역할

페이지-페이지간 통신 가능

페이지-서버도 통신 가능

페이지=서버 이렇게 보는듯

jsp는 동적활용하기 위해 자바를 씀 (html을 동적활용하기 위해 자바스크립트를 썼듯)

 

 

web

요청(request, 클라이언트가 요청을 하고)- 응답(response, 서버에서 응답을 하는) (이 둘은 객체)

클라이언트(client) - 서버(server)

웹은 이렇게 4가지로 구성되어있다

 

TOMCAT

html을 통해서 자바로 구현가능하지만 너무 복잡함, 후에 할거임

웹서버의 역할도 하면서 jsp를 java코드로 바꿔주는게있음 = TOMCAT

WAS(web application server와스)라고 부름 톰캣을

근데 웹서버 없이 톰캣으로만 쓰진 않음, 쓰긴 씀

 

-> 클라이언트 - 톰캣 

만 먼저 해볼거임

 

local : 8080에서 local을 지우고 ip 주소를 넣어도 제대로 작동함(ip주소는 cmd에서 찾을 수 있음)

ip주소 : 집주소 특정한 컴으로 가기위한 주소(ex 서울특별시 금천구 가산동 123-34566)

도메인 : 가산동 아파트 처럼 사람이 기억하기 쉬운라고 만든 이름 (ex 네이버)

8080은 포트번호고 방 번호라고 생각하면돼

 

web.xml에서 welcome file list(웰컴파일리스트)에 index2라는게 없어서 파일 이름을 index2로 바꾸면 404가 뜨는거임, index2같은거 없어!!!! 라고 하는거

 

스크립트 언어

: 컴파일없이 인터프리터로 즉시 실행될 수 있는 언어

컴파일이 없다는건 목적 파일이 없다는 것, 

PHP,  ASP, JSP, Java Script 등

php나asp는 웬만한건 함수로 제공이 됨

jsp는 자바문법 / 우리가 만들어서 써야함

p = page

jsp쓸 때는 <% %> 태그 달고 써야함 이런걸 scriptlet 이라고 함

 

 

내장객체

request와 rsponse 2개가 너무 자주써서 객체화도 안하고 자체적으로 객체화해서 저장시켰음

사용자는 객체화하지 않아도돼 

 

request객체

request객체는 client로부터 온 모든 정보를 다루고 있다-

 

여기서 port와 service name은 바꿀 수 있음 service name은 지워도 돼

 

scriptlet

jsp에서는 scriptlet을 사용하여 JAVA CODE 사용 가능하다 <% %>

page 속성 정의하는 영역 <%@ %>

변수나 메서드 선언하는 영역 <%! %> 

변수나 메서드 반환 결과를 출력하는 영역 <%= %>

<body>
	<ul>
	<% // java 로직 영역만을 지정해줘야함 
	for(int i=0;i<10;i++){
	 %>
		<!--<li>i</li> 얘는 html임, 그래서 이렇게 하면 서버에 i만 찍힘(자바에서 온줄 몰라, 자바의 값을 html에
		찍고 싶을 때 아래처럼 코딩 -->
		<li><%=i%></li>
	<%
	}
	 %>
	</ul>
</body>

순수jsp 이런식으로 힘들게 만들었었음, 지금은 거의 존재하지 않음

 

주석

<%-- --%>

단축키 : ctrl + shift + / 

 

 

<%! // 변수나 메서드를 (값 넣지 않고) 선언만해놓은거니까 앞에 느낌표 써주기
    Calendar c = Calendar.getInstance();
    int hour = c.get(Calendar.HOUR_OF_DAY);
    int min = c.get(Calendar.MINUTE); //대문자인거 보니까 상수인거임
    int sec = c.get(Calendar.SECOND); 
    
    //원본에 직접 접근중 (static에 있는거)
    %>

 

form action

특정 서버로 값을 내보내는 tag

<form action="usejs.jsp" method="get" >

클라이언트가 보낸걸 받는 것

request.getParameter("userName")

request.getParameterValues("hobby")

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 뭔가를 보냈을때 자바스크립트로 적용하는 것을 배워볼 것임 -->
	<h1>클라이언트에서 보낸 내용</h1>
	<p>이름 : <%= request.getParameter("userName") %></p> <!-- 내장 객체여서 바로 부를 수 있음 -->
	<p>성별 : <%= request.getParameter("gender") %></p>
	<p>취미 : 
			<%
			String[]hobby = request.getParameterValues("hobby"); 
			for(int i=0;i<hobby.length;i++){
			%>
			<!--한 이름으로 여러 값이 오니까 배열로 불러
			근데 자바문이라서 for문으로 하나씩 빼줘야함...-->
			<%=
			hobby[i] //자바값을 '출력'해주기 위해 <%= 라고 해줌 <%이 아니라
			%>
			<%
			}
			%>
			</p>
			<hr/>
			<h1>그 밖의 내용</h1>
			<p>전송 방식 : <%= request.getMethod() %></p>
			<p>IP 주소(IpV4가 아니라 IpV6임) : <%= request.getRemoteAddr() %></p>
			<p>요청쿼리 : <%= request.getQueryString() %></p>
			<p>요청 URL : <%= request.getRequestURL() %></p> <!-- URL:주소 -->
			<p>요청 URI : <%= request.getRequestURI() %></p> <!-- URI:인터페이스, 위치를 설명ㅗ -->
			
	
</body>
</html>
profile

onnnzeoz

@onnnzeoz

비전공자의 개발 공부 일지입니다 💦 국비 풀스택 과정 수강중