<Jsp> 8. Web
by BFine반응형
1. WebStorage
Web은 Stateless이므로 상태정보를 server에 보존하지 못한다 ---> WebStorge 객체를 통해서 저장 ( 쿠키 대신 사용)
요청이 없어도 응답이 가능
localStroge : 장기 보관, sessionStorage : session이 유효할 때 까지 저장
1 2 3 4 5 6 7 8 | localStorage.setItem("key", "value");//key value 형태로 저장 localStorage.getItem("key");// getter //localStorage.변수이름 = 변수값 localStorage.key=15; localStorage.clear()//삭제 localStorage.removeItem(key)// Item 삭제 | cs |
2. WebSocket
Http는 요청받고 응답하는 기간에만 연결이 이루어지므로 실시간 통신은 하기 어렵다.
Http 대신, WebSocket을 이용하여 서버와 클라이언트간 연결을 유지한다.
http request-> http response -> websocket request -> websocket response ->websocket request ....
1 2 3 4 5 6 7 | window.onload = function() { var socket = new WebSocket("ws://localhost:포트번호/프로젝트_이름/매핑명"); // 소켓생성 socket.onopen = function() {} // socket open socket.onmessage = function() {}// client to server msg 전달 socket.onerror = function() {}// 에러 처리 socket.onclose = function() {}// socket close } | cs |
1 2 3 4 5 6 7 8 9 10 11 | @ServerEndpoint("/매핑명") public class WebSocket { @OnMessage public void message(String msg, Session session)throws Exception{ } @OnOpen public void open(Session session){} @OnClose public void close(Session session){} @OnError public void error(Throwable e,Session session){} | cs |
3. 서버로 메세지 전달하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | $(document).ready(function(){ var socket=new WebSocket("ws://localhost:9090/AW93_WebSocket/transfer"); socket.onopen=function (){ alert("socket open"); } socket.onmessage=function (){ } socket.onclose=function (){ alert("socket close"); } socket.onerror=function (e){ alert(e); } $("#a").on('click',function(){ socket.send($("#msg").val()); $("#msg").val(""); }); }); 서버에 메세지 보내기 : <input type="text" id="msg"> <input type="button" id="a" value="전송"> =============================== @ServerEndpoint("/transfer") public class Web { Session session; @OnOpen public void onOpen(Session session){ System.out.println("Soket Open : id="+session.getId()); } @OnMessage public void onMessage(String msg,Session session) throws IOException{ session.getBasicRemote().sendText("From Server : OK!"); System.out.println("From Client : "+msg); } @OnClose public void onClose(Session session) throws IOException{ System.out.println("Soket Close : id="+session.getId()); session.close(); } @OnError public void onError(Throwable e,Session session) throws IOException{ session.getBasicRemote().sendText(e.getMessage()); session.close(); } public Web() throws Exception { // TODO Auto-generated constructor stub } } | cs |
실행
반응형
'공부(2018~2019) - 스킨변경전 > Jsp' 카테고리의 다른 글
<Jsp> 7. Expression Language (0) | 2018.04.24 |
---|---|
<Jsp> 6. DataSource (0) | 2018.04.20 |
<Jsp> 5.useBean, Session, Cookie (0) | 2018.04.19 |
<Jsp> 4. Action Tags (0) | 2018.04.18 |
<Jsp> 3. Inner Object (0) | 2018.04.17 |
블로그의 정보
57개월 BackEnd
BFine