스크립트릿과 표현식에 이해

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:include page="/layout/header.jsp"/>
<style>
	main {
		
		display: flex;
		padding: 20px;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
	}
	main pre {
		width: 100%; 
		border: 1px solid black;
		padding: 20px;
	}
</style>
<main>
	<pre>
		<% %> <-- 스크립트 릿(scriptlet, HTML 랜더링 후 태그는 보이지 않습니다.)
		<%= "" %> <-- 표현식(expression, HTML 랜더링 후 태그는 보이지 않습니다.) 
		<%-- 여기는 확인 할 수 없어요!!! --%> <-- jsp 주석 (HTML 랜더링 후 태그는 보이지 않습니다.) 
		<!-- 여기는 HTML 주석 입니다. 소스보기로 확인 가능 합니다. -->
		-------------------------------------------------------------
		스크립트 릿은 HTML과 Java 코드를 혼합하여 사용할 수 있습니다. 
		<% new java.util.Date(); %><-- 부분은 출력은 안됨. 
		화면에 데이터를 출력 하려면 표현식을 사용해야 한다. 
		<%= new java.util.Date() %>
		--------------------------------------------------------------
		
		사용방법
		스크립트 릿 : <% %> JSP 페이지에서 자바코드를 실행 할 수 있습니다. 
		표현식 : <%= "" %> JSP 페이지에서 Java 코드의 결과 값을 출력할 수 있습니다. 
		
		자바 코드 위치 
		스크립트 릿 : JSP 페이지 어디든지 위치할 수 있습니다. 
		표현식 : HTML 태그 내부에서만 사용할 수 있습니다. 
		
		출력 결과 
		스크립트릿 : 출력 결과를 지정하지 않으면 아무런 출력이 되지 않습니다. 
		표현식 : 자바 결과 값을 출력합니다. 
		
		
	</pre>
</main>


<jsp:include page="/layout/footer.jsp"/>

선언문과 표현식

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@page import="java.util.TimeZone"%>
<%@page import="java.util.Date"%>
	
<jsp:include page="/layout/header.jsp" />
<style>
main {
	display: flex;
	padding: 20px;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
}

main pre {
	width: 100%;
	border: 1px solid black;
	padding: 20px;
}
</style>
<main>
	<pre>
		선언문(declaration)
		<%! %><-- 태그로 표현 합니다. 
		JSP 페이지에서 전역변수, 메서드, 클래스등을 선언할 수 있습니다. 
		스크립트릿과 달리, JSP 페이지에서 직접 호출 할 수 없습니다.
		------------------------------------------------------
		선언문과 표현식 연습 
		현재 시간은 한국 표기법으로 <%=getKoreanTime() %>
	</pre>
</main>

<%!
	public String getKoreanTime() {
	
		// 서버의 시간대를 한국 시단대로 변경 
		TimeZone.setDefault( TimeZone.getTimeZone("Asia/Seoul"));
		
		// 현재 시간을 가져와서 문자열로 변환 
		Date now = new Date(); 
		System.out.println(System.currentTimeMillis());
		String timeStr = String.format("%tY년 %tm월 %td일 %tT",now, now, now, now);
		return timeStr;
}

%>

<jsp:include page="/layout/footer.jsp" />

스크립트릿과 표현식 사용 - 구구단 만들기

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<jsp:include page="/layout/header.jsp" />
<style>
main {
	display: flex;
	padding: 20px;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
}

main pre {
	width: 100%;
	border: 1px solid black;
	padding: 20px;
}

table {
	border-collapse: collapse;
	width: 400px;
	font-size: 14px;
	margin: 20px;
}

td {
	background-color: #f2f2f2;
	border: 1px solid #ccc;
	text-align: center;
}

</style>
<main>
	<h1>구구단 예제</h1>
	<table>
	<% for(int i = 2; i < 10; i++) { %>
		<tr>
			<td><%=i %>단 시작</td>
		</tr>
		<% for(int j = 1; j <= 9; j++ ) { %>
		<tr>
			<td><%=i %> X <%=j %> = <%= i * j %></td>
		</tr>
		<% } %>
		<tr>
			<td>&nbsp;</td>
		</tr>
	<%} %>
	</table>
	<br>	
	<pre>
		스크립트릿과 표현식을 잘 구분해 봅시다.
	</pre>
</main>


<jsp:include page="/layout/footer.jsp" />

학생 성적표 만들어 보기

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<jsp:include page="/layout/header.jsp" />
<style>
main {
	display: flex;
	padding: 20px;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
}

main pre {
	width: 100%;
	border: 1px solid black;
	padding: 20px;
}

table {
	border-collapse: collapse;
	margin: 5px 10px; 
	font-size: 14px;
	width: 400px; 
}

td,th {
	background-color: #f2f2f2;
	padding: 10px;
	text-align: center;
	border: 1px solid #ccc;
}


</style>
<main>
	
	<h1>학생 성적표</h1>
	
	 <table>
	 	<tr>
	 		<th>이름</th>
	 		<th>국어</th>
	 		<th>영어</th>
	 		<th>수학</th>
	 		<th>총점</th>
	 		<th>평균</th>
	 	</tr>
	 	<%
	 		// 학생 정보를 2중배열로 저의 
	 		String[][] students = {
	 				{"홍길동", "90", "80", "85"},
	 				{"김철수", "85", "90", "99"},
	 				{"박영희", "75", "99", "80"},
	 		};
	 		
	 		for(int i = 0; i < students.length; i++) {
	 			String name = students[i][0];
	 			int kor = Integer.parseInt(students[i][1]);
	 			int eng = Integer.parseInt(students[i][2]);
	 			int math = Integer.parseInt(students[i][3]);
	 			int total = kor + eng + math; 
	 			double avg = total / 3.0;
	 	
	 	%>
	 		<tr>
	 			<td><%=name %></td>
	 			<td><%=kor %></td>
	 			<td><%=eng %></td>
	 			<td><%=math %></td>
	 			<td><%=total %></td>
	 			<td><%=String.format("%.1f", avg) %></td>
	 		</tr>
	 	
	 	<%} %>
	 </table>
</main>
<jsp:include page="/layout/footer.jsp" />

덧셈 게임 만들어 보기

tag5.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:include page="/layout/header.jsp"/>
<style>
	main {
		height: 300px; 
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		padding: 20px;
	}
	h1 {
		margin-top: 30px; 
		margin-bottom: 10px; 
		font-size: 28px; 
		font-weight: bold;
		text-align: center;
	}
</style>
<main>
	<h1>덧셈 게임</h1>
	<%
		int num1 = (int)(Math.random() * 10) + 1;
		int num2 = (int)(Math.random() * 10) + 1;
		int answer = num1 + num2; 
	%>
	
	<p><%=num1 %> + <%=num2 %> = ? </p>
	<form action="/demo3/result.jsp" method="post">
		<input type="hidden" name="answer" value="<%=answer %>">
		<input type="number" name="guess" required="required">
		<input type="submit" value="정답제출">
	</form>
	
</main>


<jsp:include page="/layout/footer.jsp"/>

 

result.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:include page="/layout/header.jsp"/>
<style>
	main {
		height: 300px; 
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		align-items: flex-start;
		padding: 20px;
	}
	h1 {
		margin-top: 30px; 
		margin-bottom: 10px; 
		font-size: 28px; 
		font-weight: bold;
		text-align: center;
	}
	
	a {
		text-decoration: none;
		color: black;
	}
</style>
<main>
	<h1>덧셈 게임</h1>
	<%
		if(request.getParameter("answer") != null) {
			
			int answer = Integer.parseInt(request.getParameter("answer"));
			int guess = Integer.parseInt(request.getParameter("guess"));
			
			if(answer == guess) {
				out.println("<p>축하합니다! 정답입니다</p>");
			} else {
				out.println("<p>아쉽지만 틀렸습니다. 다시 도전해 보세요</p>");
			}
		}
	%>	
	<br>
	<div>
		<a href="/demo3/tag5.jsp">문제 더 풀어보기</a>
	</div>
	
</main>


<jsp:include page="/layout/footer.jsp"/>

 

 

'JSP' 카테고리의 다른 글

JSP 스크립트  (0) 2023.04.06
Servelet with Form 데이터 처리  (0) 2023.03.27
Servlet Life-Cycle  (0) 2023.03.27
Servlet mapping  (0) 2023.03.27
JSP 와 Servlet 개념  (0) 2023.03.27

JSP(JavaServer Pages)에서는 다양한 스크립트 요소를 사용할 수 있습니다. 스크립트 요소는 JSP 페이지에서 Java 코드를 사용할 수 있도록 해주는 요소입니다. 이러한 스크립트 요소를 사용하면 JSP 페이지에서 동적으로 HTML을 생성하거나, 데이터베이스와 연동하여 데이터를 처리할 수 있습니다. 아래는 JSP에서 사용할 수 있는 스크립트 요소와 간단한 설명입니다.

  1. 스크립트릿(scriptlet)
    • <% %> 태그로 표현합니다.
    • JSP 페이지에서 Java 코드를 실행할 수 있습니다.
    • HTML과 Java 코드를 혼합하여 사용할 수 있습니다.
  2. 표현식(expression)
    • <%= %> 태그로 표현합니다.
    • JSP 페이지에서 Java 코드의 결과 값을 출력할 수 있습니다.
    • 출력할 값이 null인 경우, 빈 문자열이 출력됩니다.
  3. 선언(declaration)
    • <%! %> 태그로 표현합니다.
    • JSP 페이지에서 전역 변수, 메서드, 클래스 등을 선언할 수 있습니다.
    • 스크립트릿과는 달리, JSP 페이지에서 직접 호출할 수 없습니다.
  4. 주석(comment)
    • <%-- --%> 태그로 표현합니다.
    • JSP 페이지에서 주석을 작성할 수 있습니다.
    • 브라우저에서는 출력되지 않습니다.

css —> commom.css

@charset "UTF-8";

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

/* 웹 폰트 불러오기 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100&display=swap');

/*폰트 적용하기*/
body {
	font-family: 'Noto Sans KR', sans-serif; 
}

/*ul 태그 초기화*/
ul {
	display: flex;
	margin: 0; 
	padding: 30px; 
	list-style: none;
	background-color: #f5f5f5;
	justify-content: center;
	align-items: center;
	box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
}

ul li {
	margin-top: 15px;
	margin-right: 15px; 
	border: 1px solid #f5f5f5;
	padding: 15px;
	border: 1px solid gray;
	border-radius: 10px;
	}

ul li a {
	color: #333;
	text-decoration: none;
	font-size: 16px;
}

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 스크립트 연습</title>
<link rel="stylesheet" href="/demo3/css/common.css">
</head>
<body>
	<nav>
		<ul>
			<li><a href="/demo3/tag1.jsp">JSP 스크립트 1</a></li>
			<li><a href="/demo3/tag2.jsp">JSP 스크립트 2</a></li>
			<li><a href="/demo3/tag3.jsp">JSP 스크립트 3</a></li>
			<li><a href="/demo3/tag4.jsp">JSP 스크립트 4</a></li>
			<li><a href="/demo3/tag5.jsp">JSP 스크립트 5</a></li>
		</ul>
	</nav>
</body>
</html>

코드 분리 및 재활용 해보기

지시어 (directive)

<%@ include file="파일경로" %>

액션 active

<jsp:includ page="파일경로">

header.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSP 스크립트 연습</title>
<link rel="stylesheet" href="/demo3/css/common.css">
</head>
<body>
	<nav>
		<ul>
			<li><a href="/demo3/tag1.jsp">JSP 스크립트 1</a></li>
			<li><a href="/demo3/tag2.jsp">JSP 스크립트 2</a></li>
			<li><a href="/demo3/tag3.jsp">JSP 스크립트 3</a></li>
			<li><a href="/demo3/tag4.jsp">JSP 스크립트 4</a></li>
			<li><a href="/demo3/tag5.jsp">JSP 스크립트 5</a></li>
		</ul>
	</nav>

footer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>


<br>
<footer>
	<pre>
	JSP란 (Java Server Pages)
	웹 컨테이너(WAS) 안에 동적 컴파일 과정은 
	xxx_jsp -> xxx_jsp.java -> xxx_jsp.class -> xxx_jsp.obj 
	ⓒ Tenco Corp.
	</pre>
</footer>

css

@charset "UTF-8";

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

/* 웹 폰트 불러오기 */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100&display=swap');

/*폰트 적용하기*/
body {
	font-family: 'Noto Sans KR', sans-serif; 
}

/*ul 태그 초기화*/
ul {
	display: flex;
	margin: 0; 
	padding: 30px; 
	list-style: none;
	background-color: #f5f5f5;
	justify-content: center;
	align-items: center;
	box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
}

ul li {
	margin-top: 15px;
	margin-right: 15px; 
	border: 1px solid #f5f5f5;
	padding: 15px;
	border: 1px solid gray;
	border-radius: 10px;
	}

ul li a {
	color: #333;
	text-decoration: none;
	font-size: 16px;
}

footer {
	
	height: 200px; 
	background-color: #f5f5f5;
	padding: 20px;	
	display: flex;
	justify-content: center;
	align-items: center;
}

footer pre {
	
	font-size: 16px;
	font-weight: bold;
	font-family: 'NanumBarunGothic', 'serif';
}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:include page="/layout/header.jsp"/>
<style>
	main {
		height: 300px; 
		display: flex;
		justify-content: center;
		align-items: center;
	}
</style>
<main>
	여기는 index.jsp 파일 입니다.
</main>


<jsp:include page="/layout/footer.jsp"/>

'JSP' 카테고리의 다른 글

JSP 스크립트 2  (0) 2023.04.06
Servelet with Form 데이터 처리  (0) 2023.03.27
Servlet Life-Cycle  (0) 2023.03.27
Servlet mapping  (0) 2023.03.27
JSP 와 Servlet 개념  (0) 2023.03.27

1단계 확인 : URL 맵핑 확인 및 기본 개념

<%@ 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>여기 주소는 http://localhost:8080/demo2/index.jsp</h1>
	  xxx.java -> xxx.class -> xxx.obj --> response 
	  xxx_jsp.java -> 
	  index_jap.java -> xxx_jsp.class -> xxx_jsp.obj --> response 
</body>
</html>

2단계

package com.tenco.controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/loginProc")
public class LoginProc extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public LoginProc() {
		super();

	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	// method : post (form 태그에서)
	// http://localhost:8080/demo2/loginProc
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// form --> 반드시 속성 name="email" -> value = "a@naver.com"
		request.setCharacterEncoding("UTF-8");
		String email = request.getParameter("email");
		String password = request.getParameter("password");
		String isRemember = request.getParameter("check");
		String hobby = request.getParameter("hobby");
		String[] likes = request.getParameterValues("like"); // 배열처리 (다중 선택)

		System.out.println("email : " + email);
		System.out.println("password : " + password);
		System.out.println("isRemember : " + isRemember);
		System.out.println("hobby : " + hobby);
		if (likes != null) {
			for (String like : likes) {
				System.out.println("like :  " + like);
			}
		}
	}
}
<%@ 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>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet"
	href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
<!-- jQuery library -->
<script
	src="https://cdn.jsdelivr.net/npm/jquery@3.6.3/dist/jquery.slim.min.js"></script>
<!-- Popper JS -->
<script
	src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<!-- Latest compiled JavaScript -->
<script
	src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
<style type="text/css">
body {
	margin: 20px;
	height: 100vh;
	padding: 10px;
	display: flex;
	justify-content: center;
	align-content: center;
}

form {
	border: 1px solid black;
	width: 500px;
	height: 400px;
	padding: 15px;
	border-radius: 10px;
}
</style>
</head>
<body>
	<!-- 주소는 절대경로와 상대경로 설정할 수 있다. 
		/ <-- 절대 경로로 시작 
		 <- 상대 경로로 시작 
	  -->
	<form action="/demo2/loginProc" method="post">
		<div class="form-group">
			<label for="email">Email Address : </label> <input type="email"
				class="form-control" placeholder="Enter email" id="email"
				name="email" value="a@nate.com">
		</div>
		<div class="form-group">
			<label for="password">Password : </label> <input type="password"
				class="form-control" placeholder="Enter password" id="password"
				name="password" value="asd123">
		</div>
		<div class="form-group">
			<label for="isRemember" class=""> Remember me </label> <input
				type="checkbox" id="isRemember" name="check">
		</div>

		<div class="form-group">
			<label for="hobby">취미</label> <select name="hobby">
				<option value="코딩">코딩</option>
				<option value="공부">공부</option>
				<option value="프로젝트" selected="selected">프로젝트</option>
				<option value="운동">운동</option>
				<option value="술마시기">술마시기</option>
			</select>
		</div>
		
		<div>
			<p>좋아하는 동물</p>
			<input type="checkbox" name="like" value="cat" id="cat"> <label
				for="cat">고양이</label> <input type="checkbox" name="like" value="dog"
				id="dog"> <label for="dog">강아지</label> <input
				type="checkbox" name="like" value="lion" id="lion"> <label
				for="lion">사자</label>
		</div>
		<button type="submit" class="btn btn-success">Submit</button>
	</form>


</body>
</html>

 

'JSP' 카테고리의 다른 글

JSP 스크립트 2  (0) 2023.04.06
JSP 스크립트  (0) 2023.04.06
Servlet Life-Cycle  (0) 2023.03.27
Servlet mapping  (0) 2023.03.27
JSP 와 Servlet 개념  (0) 2023.03.27

init : 처음 생성되는 과정 
service :  일하는 단계 
destory : 종료 하는 단계
package com.tenco;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/todo")
public class Todo extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public Todo() {
    	System.out.println("------  생성자 호출 --------");
    }
    
    @Override
    public void init() throws ServletException {
    	System.out.println("------  init --------");
    }
    
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    	System.out.println("------  service --------");
    }
    
    @Override
    public void destroy() {
    	System.out.println("------  destroy --------");
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

'JSP' 카테고리의 다른 글

JSP 스크립트  (0) 2023.04.06
Servelet with Form 데이터 처리  (0) 2023.03.27
Servlet mapping  (0) 2023.03.27
JSP 와 Servlet 개념  (0) 2023.03.27
웹 서버와 웹 애플리케이션 서버란?  (0) 2023.03.27
URL mapping - 외부에서 요청하기 쉽도록 
(브라우저나, 모바일에서) 특정 문자를 이용해서 접근을 쉽게 할 수 있도록 해주는 기술이기도 하다.
  1. web.xml 파일을 이용해서 사용하는 방법
  2. java Annotation 을 이용해서 사용하는 방법 (java 6 이후 부터 나온 기술 )

web.xml : 설정 변경 후에 서버 재 실행 해야 반영 된다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>demo1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
  
	<servlet>
		<servlet-name>helloServlet</servlet-name>
		<servlet-class>com.tenco.HelloServlet</servlet-class>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>helloServlet</servlet-name>
		<url-pattern>/hs</url-pattern>
	</servlet-mapping>
	
  
</web-app>
package com.tenco;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServlet
 */
// @WebServlet("/helloServlet") 
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    // method : get 
	// http://127.0.01:8080/demo1/helloServlet
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("HelloServlet GET 요청~");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 

'JSP' 카테고리의 다른 글

Servelet with Form 데이터 처리  (0) 2023.03.27
Servlet Life-Cycle  (0) 2023.03.27
JSP 와 Servlet 개념  (0) 2023.03.27
웹 서버와 웹 애플리케이션 서버란?  (0) 2023.03.27
JSP + Flex 연습  (1) 2023.03.27

web.xml은 Java 웹 애플리케이션에서 사용하는 배치 지시자 파일입니다. 
이 파일은 웹 애플리케이션의 구성 정보와 서블릿 설정, 매핑 정보, 보안 설정 등을 담고 있습니다.

web.xml 파일은 웹 애플리케이션이 시작될 때 웹 컨테이너에 의해 로딩되어 애플리케이션 
컨텍스트의 초기화 매개변수로 사용됩니다. 또한, 서블릿 매핑 정보를 정의하여 URL 요청과 
서블릿 클래스 간의 매핑을 설정하거나, 보안 설정을 통해 사용자 인증, 권한 부여 등을 
설정할 수 있습니다.

최근에는 Java EE 6 버전부터는 web.xml 대신에 Java 어노테이션을 사용하여 서블릿과 필터를 
설정할 수 있는데, 이를 통해 더 간단하고 직관적인 설정이 가능해졌습니다. 하지만 여전히 일부 
웹 애플리케이션에서는 web.xml 파일을 사용하고 있습니다.

web.xml 파일은 웹 애플리케이션이 서버에 배포(deploy)될 때, 해당 애플리케이션의 설정 정보를 
담고 있는 XML 파일로써, 웹 서버가 시작될 때 한 번만 로딩되며, 
이후에는 수정이 되더라도 적용되지 않습니다. 따라서 웹 애플리케이션의 설정을 
변경하려면 해당 애플리케이션을 다시 배포해야 합니다.
서블릿(Servlet)에서 URL 매핑(URL mapping)은 클라이언트의 HTTP 요청을 처리할 서블릿을 
선택하는 방법을 지정합니다. URL 매핑은 web.xml 파일에서 설정하거나 간편하게 클래스 
파일에서 어노테이션을 지정해서 사용할 수 있습니다.
package com.tenco;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServlet
 */
@WebServlet("/ms")
public class MyServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public MyServlet() {
        super();
    }
    
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("contentType : " + request.getContentType());
		
		
		// 응답 response 객체를 사용하면 된다. 
		PrintWriter out = response.getWriter();
		response.setContentType("text/html; charset=utf-8;");
		out.print("<!DOCTYPE html>");
		out.print("<html>");
		out.print("<head>");
		out.print("</head>");
		out.print("<body>");
		out.print("<section>");
		out.print("<p style=\"color:red\">");
		out.print("Hello First Servlet ");
		out.print("</p>");
		out.print("</section>");
		out.print("</body>");
		out.print("</html>");
		
	}


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//doGet(request, response);
	}

}

'JSP' 카테고리의 다른 글

Servlet Life-Cycle  (0) 2023.03.27
Servlet mapping  (0) 2023.03.27
웹 서버와 웹 애플리케이션 서버란?  (0) 2023.03.27
JSP + Flex 연습  (1) 2023.03.27
개발 환경 셋팅  (0) 2023.03.27

Request 와 Response 의 개념을 알자

프로토콜과 IP 에 대한 개념에 대한 이해

웹 프로그램의 동작 원리

Web Server란?

- 클라이언트가 서버에 페이지 요청을 하면 요청을 받아 정적 컨텐츠(.html, .png, .css등)를 제공하는서버
- 클라이언트에서 전송된 HTTP 메시지를 핸들한다
- 동적 컨텐츠 제공이 필요한 경우 HTTP Request를 WAS에게 릴레이 한다

Web Application Server란?

- 비즈니스 로직을 처리하여 동적 컨텐츠를 제공하는 서버
- 정,동적 컨텐츠 처리가 모두 가능하여 Standalone으로 기능할 수 있다

'JSP' 카테고리의 다른 글

Servlet mapping  (0) 2023.03.27
JSP 와 Servlet 개념  (0) 2023.03.27
JSP + Flex 연습  (1) 2023.03.27
개발 환경 셋팅  (0) 2023.03.27
아파치 + 톰캣  (0) 2023.03.27

box-sizing

box-sizing 은 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성입니다. 
content-box : 콘텐트 영역을 기준으로 크기를 정합니다.
border-box : 테두리를 기준으로 크기를 정합니다.
initial : 기본값으로 설정합니다.
inherit : 부모 요소의 속성값을 상속받습니다.


font-family

속성은 해당 엘리먼트에서 사용될 글꼴을 지정합니다. 
위 코드에서는 Arial, Helvetica, sans-serif 중에서 하나의 글꼴을 사용하도록 지정하였습니다. 
이는 해당 엘리먼트 내의 텍스트에 대해 지정된 글꼴을 적용하게 됩니다.
<%@ 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>
<link rel="stylesheet" type="text/css" href="css/styles.css">
</head>
<body>
	<header>
		<h2>First JSP Web</h2>
	</header>

	<section>
		<nav>
			<ul>
				<li>홈</li>
				<li>구독화면</li>
				<li>추천화면</li>
				<li><a href="form2.jsp">flex form</a></li>
			</ul>
		</nav>
		<article>
			<p>Lorem Ipsum is simply dummy text of the printing and
				typesetting industry. Lorem Ipsum has been the industry's standard
				dummy text ever since the 1500s, when an unknown printer took a
				galley of type and scrambled it to make a type specimen book. It has
				survived not only five centuries, but also the leap into electronic
				typesetting, remaining essentially unchanged. It was popularised in
				the 1960s with the release of Letraset sheets containing Lorem Ipsum
				passages, and more recently with desktop publishing software like
				Aldus PageMaker including versions of Lorem Ipsum
			</p>
		</article>
	</section>

	<footer><span>Footer</span></footer>

</body>
</html>
@charset "UTF-8";

* {
		box-sizing: border-box;
		margin: 0;
		padding: 0;
	}
	
	body {
		font-family: Arial, sans-serif;
	}
	
	header {
		background-color: #555;
		color: white;
		font-size: 30px;
		padding: 30px;
		text-align: center;
	}
	
	section {
		display: flex;
		
	}
	
	nav {
		flex:1;
		background-color: #FFE0B2FF;
		padding: 20px;
	}
	
	nav ul {
		list-style: none;
		padding: 0;
	}
	
	article {
		flex: 3;
		padding: 20px;
	}
	
	footer {
		background-color: #555;
		color: white;
		padding: 30px;
		text-align: center;
	}

'JSP' 카테고리의 다른 글

Servlet mapping  (0) 2023.03.27
JSP 와 Servlet 개념  (0) 2023.03.27
웹 서버와 웹 애플리케이션 서버란?  (0) 2023.03.27
개발 환경 셋팅  (0) 2023.03.27
아파치 + 톰캣  (0) 2023.03.27

+ Recent posts