WEB...
- 현재 WAP 구성 형태 순차적으로 처리- Action 또는 View마다 하나의 자원(JSP)이 필요- Static Method를 주로 사용
HTML 코드를 재사용                                스크립틀렛을                                               줄이고 간략히                  ...
CUSTOM TAG                                                                       예) 테이블 목록                                ...
SERVLET & DISPATCHERpublic class MyServlet extends HttpServlet {   protected void doPost(HttpServletRequest request, HttpS...
FILTER  Web어플리케이션 전반에 영향을 끼치는 모듈클래스 작성public interface Filter {   public abstract void init(FilterConfig filterconfig) throws...
JSTL :          The expression language기존 코드 유형                                           <% %> 안에 작성하는 JSP<% if (user.get...
인증                     실체 확인 : 로그인<web-app xmlns="http://caucho.com/ns/resin"          public class MyAuthenticator extend...
인가    자원에 대한 접근 권한<web-app xmlns="http://caucho.com/ns/resin"            xmlns:resin="urn:java:com.caucho.resin">  <resin:...
RESTFUL1.	 HTTP	 프로토콜의	 PUT,	 GET,	 POST,	 DELETE	 등과	 같은	 Method를	 의미	 그대로	 사용한다.2.	 Resource에	 대한	 접근을	 URI를	 이용한다.예)	 H...
Upcoming SlideShare
Loading in...5
×

vine webdev

319

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
319
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • vine webdev

    1. 1. WEB...
    2. 2. - 현재 WAP 구성 형태 순차적으로 처리- Action 또는 View마다 하나의 자원(JSP)이 필요- Static Method를 주로 사용
    3. 3. HTML 코드를 재사용 스크립틀렛을 줄이고 간략히 표현- Client 요청을 처리하는 객체를 ServletController로 단일화- Model -> Data Object , Controller -> Servlet, View -> JSP 값을 가져오는 형태 String name = request.getParameter(“name”); 값을 Request에 저장하는 형태 MemberDTO dto = new MemberDTO(); request.setAttribute(“dto”, dto);
    4. 4. CUSTOM TAG 예) 테이블 목록 <address mode=”list”/> 등으로 사용가능1. <%@ page import="package.classFile" %>2. <%@ taglib uri="/WEB-INF/taglib.tld" prefix="honey" %> <honey:printName /> 예) 프로필 사용 <profile id=”desk”/> 등으로 사용가능
    5. 5. SERVLET & DISPATCHERpublic class MyServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponseresponse) throws ServletException, IOException { String name = request.getParameter(“name”); Member name = new Member(name); ....... 처리 ....... request.setAttribute("result", member); ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher("/view.jsp"); rd.forward(request, response); 또는 rd.include(request, response); } 1. JSP를 View로 사용하고 (JSP는 Servlet에서 생성한 결과만 출력하는 기능)} 2. Servlet내에 doGet, doPost (각각 get, post 메소드를 처리) 내에서 비지니스 로직을 처리 3. 응답은 request, session등 상황에 맞는 저장소에 저장 4. 페이지 제어권 용도에 따라서 forward, include를 통해 View로 결과 보냄
    6. 6. FILTER Web어플리케이션 전반에 영향을 끼치는 모듈클래스 작성public interface Filter {   public abstract void init(FilterConfig filterconfig) throws ServletException;   public abstract void doFilter(ServletRequest servletrequest, ServletResponse servletresponse, FilterChain filterchain)         throws IOException, ServletException;   public abstract void destroy();} 모든 URL에 필터적용<filter-mapping> SetCharacterEncdoin      <filter-name>SetCharacterEncodingFilter</filter-name>      <url-pattern>/*</url-pattern> gFilter 를 적용함   </filter-mapping> 예) 동작하는 필터 예 ) public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,          ServletException {       if(request instanceof HttpServletRequest) {          HttpServletRequest httpRequest = (HttpServletRequest)request;  // class casting          HttpServletResponse httpResponse = (HttpServletResponse)response;  // class casting          String userAgent = httpRequest.getHeader("user-agent").toUpperCase();      }
    7. 7. JSTL : The expression language기존 코드 유형 <% %> 안에 작성하는 JSP<% if (user.getRole() == "member")) { %> <p>Welcome, member!</p><% } else { %> 스크립트 코드들과 많은 <p>Welcome, guest!</p><% } %> 양의 HTML로 복잡해지는 JSTL 코드의 작성을 쉽게<jsp:setProperty name="user" property="timezonePref" value=<%= request.getParameter("timezone") %>/> JSTL, 표현식<c:out value="${user.firstName}"/><c:set var="timezone" scope="session" value="CST"/> http://slog2.egloos.com/3581446
    8. 8. 인증 실체 확인 : 로그인<web-app xmlns="http://caucho.com/ns/resin" public class MyAuthenticator extends AbstractAuthenticator xmlns:resin="urn:java:com.caucho.resin"> { <-- Authentication mechanism --> private PasswordUser _user; <resin:BasicLogin/> public MyAuthenticator() <-- Role-based authorization --> { <resin:Allow url-pattern="/foo/*"> _user = new PasswordUser("harry", "quidditch", <resin:IfUserInRole role="user"/> new String[] { "user" }); </resin:Allow> } <-- The authenticator --> public PasswordUser getUser(String userName) <resin:DatabaseAuthenticator> { <resin:data-source>test</resin:data-source> if (userName.equals(_user.getName())) <resin:password-query> return _user; SELECT password FROM login WHERE username=? else </resin:password-query> return null; <resin:cookie-auth-query> } SELECT username FROM LOGIN WHERE cookie=? } </resin:cookie-auth-query> <resin:cookie-auth-update> UPDATE LOGIN SET cookie=? WHERE username=? 예) 사용자 인증 코드 </resin:cookie-auth-update> <resin:role-query> SELECT role FROM LOGIN WHERE username=? <web-app xmlns="http://caucho.com/ns/resin" </resin:role-query> xmlns:resin="urn:java:com.caucho.resin"> </resin:DatabaseAuthenticator> ...</web-app> <resin:XmlAuthenticator password-digest="none"> <resin:user name="Harry Potter" password="quidditch" group= 사용자 인증에 대한 내 <resin:user name="Draco Malfoy" password="pureblood" group= </resin:XmlAuthenticator> ... 용을 web.xml에 설정 </web-app>
    9. 9. 인가 자원에 대한 접근 권한<web-app xmlns="http://caucho.com/ns/resin" xmlns:resin="urn:java:com.caucho.resin"> <resin:BasicLogin/> <resin:Allow url-pattern="/foo/*"> <resin:IfUserInRole role="user"/> </resin:Allow> <resin:XmlAuthenticator> ... </resin:XmlAuthenticator></web-app><web-app xmlns="http://caucho.com/ns/resin" ... xmlns:resin="urn:java:com.caucho.resin"> <resin:Allow url-pattern="/webdav/*"> view에서 권한 <resin:IfUserInRole role=webdav/> </resin:Allow> ... 에 따라 처리</web-app> 인증, 권한에 대한 내용 을 코드가 아니라 web.xml에 설정
    10. 10. RESTFUL1. HTTP 프로토콜의 PUT, GET, POST, DELETE 등과 같은 Method를 의미 그대로 사용한다.2. Resource에 대한 접근을 URI를 이용한다.예) HTTP request가 REST 웹 서비스GET /book HTTP/1.1Host: www.jaso.co.krAccept: application/xml위의 HTTP request는 책 목록을 가져 오기 위한 요청입니다. 특정 책의 상세 정보를 요청하는 경우에는 다음과 같이 할 수 있습니다.GET /book/isbn_0001 HTTP/1.1Host: www.jaso.co.krAccept: application/xml특정 책 정보를 삭제하는 경우는 다음과 같습니다.DELETE /book/isbn_0001 HTTP/1.1Host: www.jaso.co.krAccept: application/xml

    ×