Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Передача данных от сервлет к HTML


Автор: kubn 6.4.2012, 01:10
Скажем так. В общем проекте с участием TomCat (хвала его разрабам), есть сервлет на Java (получает информацию от клиента) в котором есть несколько переменных (периодически меняются). Есть HTML файл, где значения этих переменных должны бы обрабатываться в java-script. Как в java-script обратиться к этим переменным?

Автор: AntonSaburov 6.4.2012, 13:49
А теперь еще раз и понятнее smile
Сервлет что отдает и куда и в каком виде ? 
Отдает на страницу HTML ? Но как он это делает - через AJAX-запрос с этой страничке этому сервлету ?
Формат передачи этих параметров какой ?

Или тогда опиши задачу. А то все это напоминает разговор двух студентов об английском языке:

- Как на английском будет "у" ?
- В смысле ? Что ты хочешь сказать ?
- У доски стит стол.


Автор: sergioK1 9.4.2012, 13:47
Цитата(kubn @ 6.4.2012,  00:10)
Скажем так. В общем проекте с участием TomCat (хвала его разрабам), есть сервлет на Java (получает информацию от клиента) в котором есть несколько переменных (периодически меняются). Есть HTML файл, где значения этих переменных должны бы обрабатываться в java-script. Как в java-script обратиться к этим переменным?


не путай мясо с молоком ,
Java Script + HTML - работает на слиенте 
Servlet тут не причем , 

вот пример "богатого" клиента [code=nocolor]
<html>
<head>
<script Language="JavaScript">

var timeStr, dateStr;
function clock() {
        var now = new Date();

        // time
        var hours = now.getHours();
        var minutes = now.getMinutes();
        var seconds = now.getSeconds();
        
        timeStr = hours;
        timeStr += ((minutes < 10) ? ":0" : ":") + minutes;
        timeStr += ((seconds < 10) ? ":0" : ":") + seconds;
        
        document.clock.time.value = timeStr;

        // date
        date = now.getDate();
        month = now.getMonth()+ 1;
        year = now.getYear();
        
        dateStr = "" + month;
        dateStr += ((date < 10) ? "/0" : "/") + date;
        dateStr += "/" + year;

        document.clock.date.value = dateStr;
        
        setTimeout("clock()", 1000);
}

</script>
</head>
<body onLoad="clock()">
<form name="clock">
  Time:
  <input type="text" name="time" size="8" value=""><br>
  Date:
  <input type="text" name="date" size="8" value="">
</form>

</body>
</html>
[/code]


вот сервера 

Код

  
import java.io.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DemoSiteSelector extends HttpServlet{
    
    Vector sites = new Vector();
    Random random = new Random();
    
    public void init(ServletConfig config)throws ServletException{
        
        super.init(config);
        sites.addElement("http://www.google.com");
        sites.addElement("http://www.java-tips.org");
        sites.addElement("http://www.yahoo.com");
        sites.addElement("http://www.rediffmail.com");
        
    }
    public void doGet(HttpServletRequest req,HttpServletResponse res)
            throws ServletException,IOException{
        
        res.setContentType("text/plain");
        PrintWriter out= res.getWriter();
        int siteIndex = Math.abs(random.nextInt())%sites.size();
        String site = (String) sites.elementAt(siteIndex);
        req.sendRedirect(site);
        
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)