ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • el_개념
    EL, JSTL 2022. 5. 27. 00:47
    <body>
    	<form action="<%= request.getContextPath() %>/myEL.do" method="post">
    		<h2>개인정보 입력</h2>
    		이름 : <input type="text" name="name" id="name"><br>
    		성별 : <input type="radio" name="gender" value="남">남자
    			  <input type="radio" name="gender" value="여">여자<br>
    		나이 : <input type="text" name="age">
    		
    		<hr>
    		
    		<h2>당신이 가장 좋아하는 ____은?</h2>
    		
    		<span class="user">OOO</span>님이 가장 좋아하는 <span class="item">음료</span>는? 
    		<input type="text" name="beverage"><br>
    		
    		<span class="user">OOO</span>님이 가장 좋아하는 <span class="item">물건1</span>은? 
    		<input type="text" name="product"><br>
    		
    		<span class="user">OOO</span>님이 가장 좋아하는 <span class="item">물건2</span>는? 
    		<input type="text" name="product"><br>
    		
    		<span class="user">OOO</span>님이 가장 좋아하는 <span class="item">물건3</span>은? 
    		<input type="text" name="product"><br>
    		
    		<span class="user">OOO</span>님이 가장 좋아하는 <span class="item">책</span>은? 
    		<input type="text" name="book"><br>
    		
    		<span class="user">OOO</span>님이 가장 좋아하는 <span class="item">영화</span>는? 
    		<input type="text" name="movie"><br>
    		
    		<br>
    		
    		<input type="submit" value="전송">
    	</form>
    	
    	
    	
    	<script>
    		window.onload = function(){
    			var name = document.getElementById("name");
    			name.addEventListener("blur", function(){
    				var user = document.getElementsByClassName("user");
    				for(var i = 0; i < user.length; i++){
    					user[i].innerText = name.value;
    				}
    			});
    		}
    	</script>
    </body>

     


    /myEL.do

     

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		String name = request.getParameter("name");
    		char gender = request.getParameter("gender").charAt(0);
    		int age = Integer.parseInt(request.getParameter("age"));
    		
    		Person p = new Person(name, gender, age);
    		
    		String baverage = request.getParameter("beverage");
    		String products[] = request.getParameterValues("product");
    		String book = request.getParameter("book");
    		String movie = request.getParameter("movie");
    		
    		request.setAttribute("person", p);
    		request.setAttribute("baverage", baverage);
    		request.setAttribute("products", products);
    		request.setAttribute("year", 2022);
    		
    		//세션에 담음
    		HttpSession session = request.getSession();
    		session.setAttribute("book", book);
    		session.setAttribute("beverage", "물");
    		//어플리케이션에 담음
    		ServletContext application = request.getServletContext();
    		application.setAttribute("movie", movie);
    		application.setAttribute("beverage", "포카리스웨트");
    		
    		request.getRequestDispatcher("/02_el/01_2_elEnd.jsp").forward(request, response);
    	}

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%-- <%@ page import="action.model.vo.Person"%> --%>
    <%-- 
    // 	Person person = (Person)request.getAttribute("person");
    // 	String baverage = (String)request.getAttribute("beverage");
    // 	int year = (int)request.getAttribute("year");
    // 	String[] products = (String[])request.getAttribute("products");
    // 	String book = (String)request.getAttribute("book");
    // 	String movie = (String)request.getAttribute("movie");
    <%-- %> --%>
    
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>.item{font-weight: bold; color: yellowgreen;}</style>
    </head>
    <body>
    <!-- 	<h2>scriptlet을 통해 request객체에 저장된 데이터 출력</h2> -->
    <%-- 	<h4>개인정보(<%= year %>)</h4> --%>
    <%-- 	이름 : <%= (Person)request.getAttribute("person").getName() %><br> --%>
    <%-- 	성별 : <%= (Person)request.getAttribute("person")person.getName() %><br> --%>
    <%-- 	나이 : <%= (Person)request.getAttribute("person")person.getName() %><br> --%>
    <!-- 	<h4>취향 정보</h4> -->
    <%-- 	<%= person.getName() %>님이 가장 좋아하는 음료 : <%= baverage %><br> --%>
    <%-- 	<%= person.getName() %>님이 가장 좋아하는 물건 : <%= products[0] %>, <%= products[1] %>, <%= products[2] %><br> --%>
    <%-- 	<%= person.getName() %>님이 가장 좋아하는 도서 : <%= book %><br> --%>
    <%-- 	<%= person.getName() %>님이 가장 좋아하는 영화 : <%= movie %><br> --%>
    	<hr>
    
    	<h2>EL의 내장객체 XXXScope를 통해 저장된 데이터 출력</h2>
    	<h4>개인정보(${ requestScope.year })</h4>
    	이름 : ${ requestScope.person.name }<br>
    	성별 : ${ requestScope.person.gender }<br>
    	나이 : ${ requestScope.person.nai }<br>
    	<h4>취향 정보</h4>
    	${ requestScope.person.name }님이 가장 좋아하는 음료 : ${ requestScope.baverage }<br>
    	${ requestScope.person.name }님이 가장 좋아하는 물건 : ${ requestScope.products[0] }, ${ requestScope.products[1] }, ${ requestScope.products[2] }<br>
    	${ requestScope.person.name }님이 가장 좋아하는 도서 : ${ sessionScope.book }<br>
    	${ requestScope.person.name }님이 가장 좋아하는 영화 : ${ applicationScope.movie }<br>
    	<!-- 서블릿에서 book은 세션에 담았고, movie는 application에 담아서 Scope가 다르다 -->
    	
    	<hr>
    	
    	<h2> Scope를 생략하여 저장된 데이터 출력</h2>
    	
    	<p>
    		el내장객체 pageScope, requestScope, sessionScope, applicationScope는 생략 가능<br>
    		pageScope-> requestScope -> sessionScope -> applicationScope순으로 찾음
    		동일한 value가 pageScope, requestScope, sessionScope, applicationScope에 있으면
    		제일처음에 나온 값이 들어가고 뒤까지 돌지않는다.
    		여러 스코프에 동일한 속성을 기록해 이름 충돌(name conflict)이 의심되면 명시적으로 스코프를 지정해야한다.
    	</p>
    	<h4>개인정보(${ year })</h4>
    	이름 : ${ person.name }<br>
    	성별 : ${ person.gender }<br>
    	나이 : ${ person.nai }<br>
    	<h4>취향 정보</h4>
    	${ person.name }님이 가장 좋아하는 음료 : ${ baverage }, ${ sessionScope.beverage }, ${ applicationScope.beverage }<br>
    	${ person.name }님이 가장 좋아하는 물건 : ${ products[0] }, ${ products[1] }, ${ products[2] }<br>
    	${ person.name }님이 가장 좋아하는 도서 : ${ book }<br>
    	${ person.name }님이 가장 좋아하는 영화 : ${ movie }<br>
    	<!-- 서블릿에서 book은 세션에 담았고, movie는 application에 담아서 Scope가 다르다 -->
    	
    </body>
    </html>

    'EL, JSTL' 카테고리의 다른 글

    custom_multiply_실습문제  (0) 2022.05.27
    elOperator  (0) 2022.05.27
    forward_개념  (0) 2022.05.26
    Include_개념  (0) 2022.05.26
    JSP Action Tag_개념_useBean  (0) 2022.05.26
Designed by Tistory.