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