質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

0回答

1871閲覧

【WebSocket】入力したメッセージをMySQLに格納したい(その3)

Sfidante

総合スコア90

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/07/17 07:33

WebSocketに関する質問が立て続けで申し訳ないのですが、
よろしくお願い致します。

###入力されたメッセージをサーブレットでMySQLに格納したい
まずは、クライアントのページの必要部分だけを記載致します。

javascript

1<script type="text/javascript"> 2 var webSocket; 3 window.onload = function() { 4 var forRtoA = document.createElement('a'); 5 forRtoA.href = "loadMessage"; 6 webSocket = new WebSocket(forRtoA.href.replace("http://", "ws://").replace("https://", "wss://")); 7 var messageArea = document.getElementById("messageArea"); 8 9 var appendMessage = function(value, color) { 10 var messageElement = document.createElement("div"); 11 messageElement.style.color = color; 12 messageElement.innerText = value; 13 messageArea.insertBefore(messageElement, messageArea.firstChild); 14 } 15 webSocket.onopen = function() { 16 appendMessage("Opened", "blue"); 17 } 18 webSocket.onclose = function() { 19 appendMessage("Closed", "red"); 20 } 21 webSocket.onmessage = function(message) { 22 var data = JSON.parse(message.data); 23 if ("message" == data.command) { 24 appendMessage(data.text, "black"); 25 } else if ("error" == data.command) { 26 appendMessage(data.text, "red"); 27 } 28 } 29 webSocket.onerror = function(message) { 30 appendMessage(message, "red"); 31 } 32 var messageInput = document.getElementById("messageInput"); 33 messageInput.onkeypress = function(e) { 34 if (13 == e.keyCode) { 35 var message = messageInput.value; 36 if (webSocket && "" != message) { 37 webSocket.send(message); 38 messageInput.value = ""; 39 } 40 } 41 } 42 } 43</script>

html

1<li class="msg_send "> 2 <div class="inner-box"> 3 <p class="balloon_right" id="messageArea"></p> 4 <p class="time_send">ここに時間を出力</p> 5 </div> 6</li> 7<textarea id="messageInput" class="p-sendbox" name="sendarea" maxlength="1000" cols="40" rows="2" wrap="soft"></textarea>

続いて、サーブレットでの処理を記載致します。

java

1package message; 2 3import java.io.IOException; 4import java.util.ArrayList; 5import java.util.List; 6 7import javax.servlet.ServletException; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11import javax.servlet.http.HttpSession; 12import javax.websocket.OnClose; 13import javax.websocket.OnError; 14import javax.websocket.OnMessage; 15import javax.websocket.OnOpen; 16import javax.websocket.Session; 17import javax.websocket.server.ServerEndpoint; 18 19import dao.MessageDao; 20 21@ServerEndpoint("/loadMessage") 22public class WebSocketEndpointAction extends HttpServlet{ 23 public static List<Session> sessions = new ArrayList<Session>(); 24 private static final long serialVersionUID = 1L; 25 26 String message = null; 27 @OnOpen 28 public void onOpen(Session session) { 29 // 開始時 30 sessions.add(session); 31 } 32 33 @OnMessage 34 public void onMessage(String message) throws IOException { 35 // クライアントからの受信時 36 for (Session session : sessions) { 37 session.getBasicRemote().sendText("{\"command\":\"message\", \"text\": \"" + message.replace("\\", "\\\\").replace("\"", "\\\"") + "\"}"); 38 } 39 } 40 41 @OnError 42 public void onError(Throwable t) throws IOException { 43 // エラー発生時 44 for (Session session : sessions) { 45 session.getBasicRemote().sendText("{\"command\":\"error\", \"text\": \"" + t.getMessage().replace("\\", "\\\\").replace("\"", "\\\"") + "\"}"); 46 } 47 } 48 49 @OnClose 50 public void onClose(Session session) { 51 // 完了時 52 sessions.remove(session); 53 } 54} 55 56/**おこないたいこと*/ 57protected void doGet(HttpServletRequest request, HttpServletResponse respons , String mess) 58 throws ServletException, IOException { 59 request.setCharacterEncoding("utf8"); 60 HttpSession ses = request.getSession(true); 61 int userid = (int)ses.getAttribute("userid"); 62 int roomid = (int)ses.getAttribute("roomid"); 63 MessageDao messagedao = new MessageDao(); 64 try{ 65 messagedao.connect(); 66 messagedao.insertMessage(userid, roomid, mess); 67 messagedao.close(); 68 }catch(Exception e){ 69 e.printStackTrace(); 70 } 71}

サーブレットでは入力されたメッセージを

java

1 messagedao.insertMessage(userid, roomid, mess);

でデータベースに格納したいです。

何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問