0

html5&jsp初心者ですが、ルームリストがデータベースから変更された際に取得できるようにしたいです。基本的に、メインページのヘッダーにあるルームリストをクリックすると、ルームリストを取得できますが、別のユーザーがルームを作成すると、リアルタイムでルームリストを取得できません。私を助けてください、ありがとう

聞くのは私のメインページのコードです

<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.util.*" %>
<% request.setCharacterEncoding("euc-kr"); %>
<html>
<Head>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
    <title>RoomListing</title>
    <link rel="stylesheet"   href="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.css" />  
    <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.0a4.1/jquery.mobile-1.0a4.1.min.js"></script>
    <script type="text/javascript">
    function ReloadPage() {
       location.reload();
        alert("hihi");
    };
    $(document).ready(function() {
        alert("hi");    

        setInterval("ReLoadPage()", 3000);
    });
    </script>   
</Head>
<body>
<section id="page1" data-role="page">
<%
//String subject = request.getParameter("subject");


Connection conn = null;
Statement stmt = null;

try{
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    conn = DriverManager.getConnection( "jdbc:mysql://localhost:8888/test",
             "root", "1234" );
    if(conn==null)
        throw new Exception("데이터베이스에 연결할 수 없습니다.<br>");


    stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from roominfo");
    ArrayList<String> room_list = new ArrayList<String>();
    while(rs.next()){
        room_list.add(rs.getString("id")+":"+rs.getString("subject")+":"+rs.getString("content"));
    }


    int num = room_list.size();
    request.setAttribute("num", num);

    for(int i=0; i<num; i++){

        String room_name = null;
        String max = room_list.get(i);
        out.print("<input type ='button' id = 'button1' value = "+max+">");
        request.setAttribute("room_name"+i, room_list.get(i));
    }

}catch(Exception e){
    e.printStackTrace();

}finally{
    try{
        stmt.close();
    }catch (Exception ignored){
    }
    try {
        conn.close();
    }catch(Exception ignored){}

    }
//RequestDispatcher dispatcher = request.getRequestDispatcher("RoomListing1.jsp");
//dispatcher.forward(request, response);

%>  

</section>
</body>
</html>
4

1 に答える 1

0

基本的に、リフレッシュまたはリロードは、color、image、style などの jsp 関連のもののみを変更します。スクリプトレット内に記述された Java コードは、リフレッシュとは何の関係もありません。そのため、ルームリストをクリックすると、ページが更新されるだけで、他には何もありません。データを動的に取得したい場合は、ユーザー リストがクリックされるか、ページが更新されるたびに呼び出される Java 関連のアクティビティを管理するサーブレットを作成する必要があります。JSP でコード全体を記述することはできず、良い方法ではありません。

于 2013-02-06T06:03:47.183 に答える