You will be fine

<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

활동하기