스퐁지송 개발노트

JSP기초 본문

카테고리 없음

JSP기초

강준석 2023. 1. 18. 18:04
728x90

JSP

: jsp로 작업한 파일 -> java파일로 변환 -> 컴파일 -> 클래스로 만들어짐 -> 실행

 

ex) sample01.jsp -> sample01_jsp.java -> sample01_jsp.class

 

 

클라이언트(사용자)요청 -> 서블릿 코드? -? 서블릿 아님 -> 서블릿으로 변환 -> 컴파일 -> 로드 -> 클라이언트 응답

한번 요청된 jsp -> 로드 -> 응답

서블릿은 

요청 -> 컴파일 -> 로드 -> 응답

 

서블릿은 자바코드안에 HTML을 작성할 수 있음

JSP는 HTML안에 자바코드를 작성할 수 있다.

 

html (정적페이지)

 

 

jsp(동적페이지)

 


컨텍스트 패스(Context Path)

 경로를 나타내는 것 (기본적으로 프로젝트명과 동일)

 

 

변경방법

dynamic Web Project 생성시 그냥 finish 하지말고 next 누른후 본 창이 뜨면 원하는 명 쓰기

 

아무것도 표시하지 않기

Server -> Tomcat... 폴더 -> server.xml -> ctrol+f 로 <Cotext 찾기 -> 해당 코드 중 원하는 프로젝트명의 path를 "/" 로 설정

 

 

변경후


JSP 태그

 

<%  %>

: 스크립트릿(scriptlet) : 자바 코드를 작성할 수 있는 공간

JSP = HTML(디자인) + JAVA(동적작업)

(HTML작성된 위치에 코드가 만들어짐) - 지역변수

 

<%!  %>

: 선언문  - 자바 코드 작성공간

변수, 메서드 생성시 여기에 작업을 함

(선언문으로 작업한 코드는 클래스 바로 아래에 정의가 됨) - 전역변수

 

<%=  %>

:  표현식 변수출력 (out.print(a))  :  <%= a %>

계산식 출력 -> out.print( a + b ) : <%= a + b %>

메서드 호출 -> out.print( sum ( a , b ) ) : <%= sum(a, b) %>  

 

EX)

<%@ 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>

	<h3> 여기 아래에 선언문 작성 </h3>
<%!
	String str = "hi";
	int a = 10;
	int b = 20;
	
	public int add(int x, int y){
		return x + y ;
	}
%>
	<h3> 선언문 끝 </h3>

	<h3> 스크립트 시작 </h3>
<%
	out.print("<h5>" + str + "</h5>");
	out.print("두수의 합 : " + add(a,b));
%>
	<h3> 스크립트릿 끝 </h3>

</body>
</html>

 

 

ex)

test1

<%@ 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>

	<form method="get" action="test02.jsp">
		숫자 입력 : <input type="text" name = "num">
		<input type="submit" value="전송">
	</form>

</body>
</html>

test2

<%@page import="javax.swing.text.AbstractDocument.BranchElement"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%!	//변수 선언
	int global = 0;
	//클래스 전체에서 사용가능
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<% 
	int local = 0;
    //메서드 내에서만 사용가능
	out.print("global : " + ++global);
	out.print("<br>");
	//int num = Integer.parseInt(request.getParameter("num"));
	//out.print("전달 받은 숫자 : " + num);
	
%>
	<br>
<%
	out.print("local : " + ++local);
%>
	//새로고침시 global변수만 숫자 증가함 
	  get메서드 요청시 

</body>
</html>

 

728x90
Comments