원지의 개발
article thumbnail
Published 2022. 12. 2. 18:20
[JSP] MVC2, JSTL, 형변환태그 Server/JSP
728x90

디자인 패턴: 클래스를 설계하는 기술

MVC2 컴포넌트 설계 / MVC2 패턴

1. 화면의 자바코드 없애기

2. 컨트롤러 만들기


1. 자바코드 없애기 / 제어문 없애기

EL (Expression Language)

  • JSP에서 저장객체를 출력할때 스크립팅<%= %>을 전혀 쓰지 않을 수 있는 기술
  • 표현식을 대체
표현식 <%= value %>  ▶  EL ${ value }

내장 객체   의미
 pageScope   JSP의  page 객체를  참조하는  객체
requestScope 생략가능/  ${ 객체명.이름 } JSP의  request 객체를  참조하는  객체
 sessionScope 생략가능/  ${ 객체명.이름 } JSP의  session 객체를  참조하는  객체
applicationScope 생략가능 JSP의  application 객체를  참조하는  객체
param ${ 객체명.이름 } 요청  파라미터를  참조하는  객체
paramValues   요청  파라미터(배열)를  참조하는  객체
 initParam   서블릿컨텍스트  초기화  파라미터를  참조하는  객체
cookie   쿠키  객체를  참조하는  객체

1. EL 기본

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

	<h2>EL태그는 표현식을 대체합니다</h2>

	${ 1 + 2 }
	<br> ${ 1 > 2 }
	<br /> ${ 1 == 2 }
	<br /> ${ 1 == 2 ? '같음' : '다름' }
	<br />

	<!-- ||, or 둘 다 써도 됨 -->
	${ 1 < 2 || 1 > 2 }
	<br /> ${ 1 < 2 or 1 > 2 }
	<br /> ${ 1 < 2 && 1 > 2 }
	<br /> ${ 1 < 2 and 1 > 2 }
	<br /> ${ '홍길동' == '홍길동' }
	<br /> ${ '홍길동' eq '홍길동' }
	<br /> ${ ! false }
	<br /> ${ not false }
	<br />

	<!-- 대체 가능
	
	< , lt (little then)
	<=, le (little or equals)
	
	> , gt
	>= , ge (greater or equals)
	
	 -->

</body>
</html>

2. param.태그이름으로 파라미터 값 가져오기

    (request.Parameter 사용x)

<%@ 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 action="el_form_ok.jsp" method="post">

		이름:<input type="text" name="name"><br /> 아이디:<input
			type="text" name="id"><br /> 비밀번호:<input type="password"
			name="pw"><br /> <input type="submit" value="확인">

	</form>


</body>
</html>
<%@ 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>
	<!-- 원래는 request.Parameter 사용했었음 -->
	<!-- param.태그이름 으로 한번씩 받아서 사용합니다. -->
	${ param.name }
	<br> ${ param.id }
	<br> ${ param.pw }

</body>
</html>

3. User 객체를 생성 후 vo라는 변수에 담고, session, application에 저장 - 사용

<%@page import="com.example.bean.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	User vo = new User();
	vo.setId("aaa123");

	//세션 저장
	//1
	session.setAttribute("vo", vo);
	//2
	session.setAttribute("auth", "y");
	
	//어플리케이션 저장
	application.setAttribute("menu", "햄버거");

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<!-- vo는 값까지 사용 -->
	<!-- 어딘꺼를 사용하는지 알 수 있도록 session, application 불여줌 -->
	${ sessionScope.vo.id }
	<br> ${ sessionScope.auth }
	<br> ${ applicationScope.menu }
	<br>


</body>
</html>

4. request에 저장된 vo의 id를 꺼내줘 혹은 setAttribute의 "vo" 이름. id,name,email

<%@page import="com.example.bean.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	User vo = new User();
	vo.setId("hhh123");
	vo.setName("홍길숙");
	vo.setEmail("hhh@naver.com");
	
	request.setAttribute("vo", vo); //리퀘스트에 강제 저장
	

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<!-- request에 저장된 vo의 id를 꺼내줘 -->
	아이디: ${ requestScope.vo.id }
	<br /> 이름: ${ requestScope.vo.name }
	<br /> 이메일: ${ requestScope.vo.email }
	<br />

	<!-- 
		requestScope는 생략을 하고 많이 사용
		사용되는 순서 = request → session → application (사용주기가 짧은 것부터)
		
		setAttribute의 "vo" 이름. id,name,email
	-->
	${ vo.id }
	<br> ${ vo.name }
	<br> ${ vo.email }
	<br>

</body>
</html>

JSTL (제어문 없애기)

  • JSP Standard Tag Library
  • 자바의  제어문을  HTML 태그화
  • JSTL의  경우  우리가  사용하는  Tomcat 기본  컨테이너에  포함되어  있지  않으므로,
    별도의  라이브러리를  설치하고 사용

JSTL 태그

  • Core 라이브러리는  기본적인  라이브러리로  출력, 제어문, 반복문  같은  기능이  포함
  • 코어  라이브러리를  사용하기  위해서  반드시  JSP 파일  내의  지시자  태그 사용
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

1. 출력 태그

<c:out value="출력값">

2. 변수  선언  태그

<c:set var="변수명" value="설정값" scope="범위">
  • JSTL이  지원하는  태그에서  사용할  수  있는  변수를  설정하기  위해  사용, EL변수 생성
  • var: 값을  저장할  EL 변수의  이름을  지정함.
    value: 변수의  값을  지정함. 표현식, EL, 텍스트를  사용하여  지정가능.
    scope: 변수를  저장할  영역을  지정함. page, request, session, application 중  하나를  지정해야  하며  지정하지  않을  경우 page를  기본  값으로  사용.

3. 변수  제거  태그

<c:remove var="변수명" scope="범위">
  • remove 태그를 사용시 삭제할 변수의 scope을 지정하지  않으면 동일한 이름으로 저장된 모든 영역의 변수를 삭제
  • but, 굳이 지우지 않아도 됨

4. 조건문(if) 태그

<c:if test="조건식" >
  • 자바 언어의  if 블록과  비슷한  기능을  제공합니다. 중첩된  if~else 문과  같은  효과를  낼  수는  없지만  단순한 
    if 블록을  쉽게  대체할  수  있기 때문에  많이  사용

5. 조건문(choose) 태그

<c:choose>
    <c:when test="조건식"> 처리 내용 </c:when> 
    <c:when test="조건식"> 처리 내용 </c:when> 
    <c:otherwise> 처리 내용 </c:otherwise>
</c:choose>
  • 자바의  switch 구문과  if~else 구문을  혼합한  형태로  다수의  조건문을  하나의  블록에서  수행할  때  사용
  • otherwise = else

6. 반복문  태그 [암기]

<c:forEach items="객체명" begin="시작값" end="끝 값" step="증감식" var="변수명">
  • 배열, 컬렉션  또는  맵에  저장되어  있는  값들을  순차적으로  처리할 때 사용
  • 배열의  경우는  객체의  배열뿐만  아니라  기본  데이터  타입의  배열도  알맞게  처리를  하며  기본  데이터  타입은  래퍼  클래스를  통해  처리
  • step = 몇번씩 증감 할꺼냐

실습

더보기

1. if절, choose절

<%@ 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>if절 확인하기</h3>

	<form action="jstl_if.jsp">
		이름:<input type="text" name="name"><br> 나이:<input
			type="text" name="age"><br> <input type="submit"
			value="확인"><br>
	</form>


	<h3>choose절 확인하기</h3>

	<form action="jstl_choose.jsp">
		이름:<input type="text" name="name"><br> 나이:<input
			type="text" name="age"><br> <input type="submit"
			value="확인"><br>
	</form>


</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%-- 출력문 --%>
	<c:out value="${ param.name }" />

	<%-- 변수로 선언 --%>
	<c:set var="num" value="${param.age}" />
	<c:out value="${num}" />

	<hr />
	<%-- if문 --%>

	<% if(request.getParameter("name").equals("홍")) { %>
	<h3>홍 입니다ㅣ</h3>
	<% } %>

	<c:if test="${ param.name eq '홍' }">
		<h3>홍 입니다.</h3>
	</c:if>

	<c:if test="${ param.age >= 20 }">
		<h3>성인입니다.</h3>
	</c:if>

	<c:if test="${ param.age < 20 }">
		<h3>미성년자입니다.</h3>
	</c:if>


</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<c:choose>
		<c:when test="${ param.name eq '홍길동' }">
			<h3>홍길동</h3>
		</c:when>
		<c:when test="${param.name eq '이순신' }">
			<h3>이순신</h3>
		</c:when>
		<c:otherwise>
			<h3>둘다 아님</h3>
		</c:otherwise>
	</c:choose>

	<hr>
	<c:choose>
		<c:when test="${ param.age >= 20 }">
			성인입니다.
		</c:when>
		<c:otherwise>
			미성년자입니다.
		</c:otherwise>


	</c:choose>



</body>
</html>

2. forEach

회전하는 법 암기
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<h3>1~100까지 홀수 합</h3>
	<%
	int sum = 0;
	for(int i = 1; i <= 100; i+=2) {
		sum = sum + i;
	}
	%>

	결과:<%=sum %>

	<hr />
	<c:set var="sum" value="0" />
	<!-- 변수값, 변수이름은 sum, sum값은 0 -->
	<!-- 지역변수의 개념으로 같은 sum이 있으면 덮어버림 -->
	<c:forEach var="i" begin="1" end="100" step="2">
		<c:set var="sum" value="${ sum + i }" />
	</c:forEach>

	결과:${ sum }

	<hr>
	<h3>2~9단 까지 구구단 세로 출력</h3>
	<!-- step은 생략하면 자동으로 1 -->
	<c:forEach var="i" begin="2" end="9" step="1">
		<c:forEach var="j" begin="1" end="9" step="1">
	 		${i}  * ${j} = ${i*j}<br>
		</c:forEach>
		<br>
	</c:forEach>

	<hr>
	<h3>향상된 포문</h3>
	<%
	 	int[] arr = new int[] {1, 2, 3, 4, 5};
	 	for(int a : arr) {
	 		out.println(a);
	 	}
	 %>

	<br>
	<!-- 배열은 생성구문이 없어서 아래와 같이 적어줌 -->
	<c:set var="arr" value="<%= new int[] {1, 2, 3, 4, 5} %>" />

	<!-- 회전하는 방법 꼭 알아두기 -->
	<c:forEach var="a" items="${ arr }" varStatus="s">
		<!-- for(int a : arr) 이것과 같음 -->
		인덱스번호: ${ s.index }
		순서: ${ s.count }
		값: ${ a }
		<br>
	</c:forEach>

</body>
</html>

3. 

<%@page import="java.util.HashMap"%>
<%@page import="java.util.HashSet"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>

<%
	Date date = new Date();    
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String now = sdf.format(date);
    
    ArrayList<String> list = new ArrayList<>();
    HashSet<Integer> set = new HashSet<>();
    HashMap<Integer, String> map = new HashMap<>();
    
    list.add("hong");
    list.add("kim");
    
    set.add(1);
    set.add(1); // X 안들어감
    set.add(10);
    
    map.put(1, "lee");
    map.put(2, "jang");
%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	지금:
	<%=now %><br> 리스트:
	<%=list.toString() %><br> 맵:
	<%=map.toString() %><br> 셋:
	<%=set.toString() %><br>


</body>
</html>

4. 로또번호 생성

<%@page import="java.util.ArrayList"%>
<%@page import="java.util.HashSet"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
/*
1. Set을 이용해서 처리
2. 1~45까지 로또번호를 생성하고 리스트에 추가
3. 중복되지 않은 숫자의 6개의 로또번호를 저장하면 됩니다.
4. 화면에 출력
*/

HashSet<Integer> set = new HashSet<>();


while(true) {
	
	int ran = (int)(Math.random() * 45 ) + 1;

	set.add(ran);
	if(set.size() == 6) {
		break;
	}
}


%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	로또번호:
	<%= set.toString() %>

</body>
</html>

 5

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

	<%
	//자바코드
	int a = 10;
	if(a >= 10) {
		out.println("10보다 큼"); //화면 출력
	} else {
		out.println("10보다 작음");
	}
	%>

	<hr>
	<%
	for(int i = 1; i <= 10; i++) {
		out.println("<br>" + i); //"" 넣으면 태그로 인식
	}
	%>

	<hr>
	<%
	int num = 0;
	if(num >= 0) {
		out.println("<h6>num은 0보다 큽니다.</6>");
	}
	%>

	<hr>
	<!-- 위의 변수 num 그대로 사용가능, 화면이 하나로 연결되어 있음 -->
	<% if(num >= 10) { %>
	<h6>num은 10보다 큼</h6>
	<% } else { %>
	<h6>num은 10보다 작음</h6>
	<% } %>

	<hr>
	1. 구구단 3단 out.perintln과, br태그를 사용해서 브라우저 화면에 출력

	<% int j = 3; %>
	<% for(int k = 1; k <= 9; k++) { %>
	<%	out.println("<br>" + j + " * " + k + " = " + j*k); %>
	<% } %>

	<hr>
	2. 동일한 name을 가진 체크박스 20개를 브라우저에 생성
	<br>

	<% for(int i = 1; i <= 20; i++) { %>
	<input type="checkbox" name="test"> HTML
	<br>
	<% } %>


</body>
</html>

6. 

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

<%
	//상단부 선언
	int a = 10;
	String str = "hello world";
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%-- ctrl + shift + / 단축키 
	<%
		out.println(a + "<br>");
		out.println(str + "<br>");
	%>
	 --%>

	<!-- 
	html 주석은 보임
	 -->

	<%=a %><br>
	<%=str %><br>

	<h2>구구단 3단을 표현식을 통해서 출력</h2>
	<% for(int i = 1; i <= 9; i++) { %>
	<%-- 이 부분은 html 코드가 들어가는 부분이기 때문에 그냥 적으면 출력, 변수만 <%= %>에 담아줌 --%>
	ah....
	<%= "3 * " + i + " = " + 3*i %><br>
	<%-- 3 * <%= i %> = <%=3*i %><br> --%>
	<% } %>

	<h2>반복문으로 체크박스에 1~20까지 이름을 붙여서 가로 출력</h2>
	<% for(int i = 1; i <= 20; i++) { %>
	<%= i %>
	<input type="checkbox" name="test">
	<% } %>



</body>
</html>

형변환 태그

1.

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<h2>formatNumber, formatDate, parseDate, parseNumber</h2>
	<%--
	format → 형식변환(보여지는 숫자, 날짜의 형식 변환)
	parse → 형변환(데이터타입 변환)
	 --%>

	<hr>
	<h3>formatDate → 날짜를 날짜의 형태로 변경</h3>

	<c:set var="day" value="<%=new Date() %>" />

	${ day }
	<br>
	<!-- Fri Dec 02 16:27:37 KST 2022 이렇게 나옴 -->
	<fmt:formatDate var="r_day" value="${ day }"
		pattern="yyyy년 MM월 dd일 hh:mm:ss" />
	<fmt:formatDate var="r_day2" value="${ day }" pattern="yy-MM-dd" />
	${ r_day }
	<br> ${ r_day2 }
	<br>

	<hr>
	<h3>parseDate → 문자를 날짜의 형태로 변경</h3>
	<fmt:parseDate var="r_day3" value="2022-12-02" pattern="yyyy-MM-dd" />
	<!-- 패턴은 동일한 형태로 들어가야 함 -->
	<fmt:parseDate var="r_day4" value="2022-12-02 23:45:12"
		pattern="yyyy-MM-dd HH:mm:ss" />
	<!-- 24시간 기준 HH -->
	${ r_day3 } ${ r_day4 }


	<hr>
	<h3>formatNumber → 숫자형식을 숫자의 형태로 변경</h3>
	<fmt:formatNumber var="r_num" value="2000" pattern="0,000.000" />
	<!-- 0이 자릿수, 원은 문자열로 붙여 ㅎㅎ -->
	${ r_num }
	<br>

	<hr>
	<h3>parserNumber → 문자를 숫자의 형태로 변경</h3>
	<!-- 문자가 있을 때 그 숫자만 뽑고 싶다하면 사용 -->
	<fmt:parseNumber var="r_num2" value="1,000원" pattern="0,000원" />
	${ r_num2 }
	<br>


	<hr>
	<h2>실습</h2>
	<h3>아래 값들을 2020년 05월 03일 형식으로 변경해서 출력</h3>

	<c:set var="TIME_A" value="2020-05-03" />
	<!-- 문자 -->
	<fmt:parseDate var="TIME_A1" value="${ TIME_A }" pattern="yyyy-MM-dd" />
	<fmt:formatDate var="TIME_A2" value="${ TIME_A1 }"
		pattern="yyyy년 MM월 dd일" />
	${ TIME_A2 }
	<br>
	<!-- var값은 생략하면 나감 -->

	<c:set var="TIME_B" value="<%=new Date() %>" />
	<!-- 날짜 -->
	<fmt:formatDate var="TIME_B1" value="${ TIME_B }"
		pattern="yyyy년 MM월 dd일" />
	${ TIME_B1 }
	<br>

</body>
</html>

2.

<%@page import="java.util.ArrayList"%>
<%@page import="com.example.bean.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
	
	ArrayList<User> list = new ArrayList<>();

	for(int i = 1; i <= 10; i++) {
		User user = new User();
		user.setId(i+""); //다 문자열
		user.setName("홍길동" + i);
		user.setEmail(i + "@naver.com");
		
		list.add(user);
	}
		
	//리퀘스트에 담는다
	request.setAttribute("list", list);

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<h3>list안에 값을 행별로 번호를 붙여서 반복문으로 출력</h3>

	${ list }
	<br>
	<!-- list객체 주소가 나옴 -->
	<c:set var="sum" value="0" />
	<c:forEach var="a" items="${ list }" varStatus="s">
		<!-- 향상된 for문과 같음 -->
		
		${ a.id }
		${ a.name }
		${ a.email } <!-- get 안써도 나옴 -->
		
		${ s.count }번:  ${ a.getId() } / ${ a.getName() } / ${ a.getEmail() }
		
		<c:set var="sum" value="${ sum + s.count }" />
		<br>
	</c:forEach>
	번호합:${ sum }

</body>
</html>

header - section - footer

<%@ include file="include_header.jsp"%>

header

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

	<header>
		<h3>header파일</h3>
		<nav>
			<ul>
				<li>목록</li>
				<li>목록</li>
			</ul>
		</nav>
	</header>

section - 실행

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

<%@ include file="include_header.jsp"%>

<section>
	<h3>본문입니다.</h3>
</section>

<%@ include file="include_footer.jsp"%>

footer

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

<footer>
	<h3>Copyright 2022.11.29</h3>
</footer>

</body>
</html>

2. 컨트롤러 만들기

URL - Pattern

package com.example.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("*.test") //1. URL주소를 확장자패턴으로 변경
public class TestController extends HttpServlet {
	private static final long serialVersionUID = 1L;
       

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//		System.out.println("실행");
		doAction(request, response);
	}

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

	//2. get, post 요청을 하나로 모음
	protected void doAction(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		//3. 한글처리
		request.setCharacterEncoding("utf-8");
		
		//4. 요청분기
		System.out.println( request.getRequestURI() );
		//이렇게만 하면 basic파일의 href 부분의 이름이 바뀌어도 들어감
		//경로를 일관성있게 통일해주는게 좋음
		
		//System.out.println( request.getContextPath() ); //ContextPath()하면 JSPBasic 출력
		String path = request.getContextPath();
		//문자열 자르기
		String command = request.getRequestURI().substring( path.length() );
		System.out.println(command); //JSPBasic 잘리고, controller/join.test 출력
		
		
		switch (command) {
		case "/controller/join.test":
			 System.out.println("가입 처리");
			 break;
		
		case "/controller/login.test":
			 System.out.println("로그인 처리");
			 break;
			 
		case "/controller/logout.test":
			System.out.println("로그아웃 처리");
			break;
			
		case "/controller/delete.test":
			System.out.println("탈퇴 처리");
			break;
			
		case "/controller/update.test":
			System.out.println("수정 처리");
			break;
			 
		default:
			 break;
		}
		
	}
	

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

	<a href="join.test">가입</a>
	<a href="login.test">로그인</a>
	<a href="logout.test">로그아웃</a>
	<a href="/JSPBasic/controller/delete.test">탈퇴</a>
	<a href="/JSPBasic/controller/update.test">수정</a>

</body>
</html>

오늘 하루

더보기

기억에 남는 부분

 

어려운 부분

 

문제 해결 부분

 

728x90
profile

원지의 개발

@원지다

250x250