2016-06-14 8 views
0

Я пробовал простое веб-приложение с использованием html, javascript и java. HTML и javascript являются частью интерфейса, а java - бэкэнд. Я использую апплеты. Я не хочу использовать JSP или JSF, так как мое текущее требование говорит, что мне нужно использовать только HTML и javascript. Я получаю следующую ошибку.Подключение javascript к java с java как backend

enter image description here

Я получил этот код из интернет-источника. Мой код, как показано ниже:

HTML:

<script type="text/javascript" src="liveconnect.js"> </script> 
</head> 
<body onload="showProgrammer()"> 
    <applet id="app" code="LauncherApplet" height="1" width="1" MAYSCRIPT></applet> 
    <table> 
    <tr> 
    <td>Name</td> 
    <td>:</td> 
    <td><input type="text" id="name"/></td> 
    </tr> 
    <td>Age</td> 
    <td>:</td> 
    <td><input type="text" id="age"/></td> 
    </tr> 
    <td>Programming Language(PHP,Java or Python)</td> 
    <td>:</td> 
    <td><input type="text" id="language"/></td> 
    </tr> 
</table> 
<input type="button" onclick="processProgrammer()" value="click"/> 
</body> 

JS:

function Programmer(name,age,language){ 
    this.name=name; 
    this.age=age; 
    this.language=language; 
} 
function showProgrammer(){ 
try{ 
    var programmer=app.getProgrammer(); //app is the id of applet tag which refers to the applet instance. 
    var data="Name= "+programmer.name+",Age= "+programmer.age+",Language= "+programmer.language; 
    alert(data); 
} 
catch(e){ 
    alert(e); 
    } 
} 
function processProgrammer(){ 
try{ 
    var name=document.getElementById("name").value; 
    var age=document.getElementById("age").value; 
    var language=document.getElementById("language").value; 
    var programmer=app.getProgrammer(); 
    var myprog=new Programmer(name,age,language); 
    programmer.setData(myprog); 
    var advice=programmer.getAdvice(); 
    alert(advice); 
    } 
    catch(e){ 
    alert(e); 
    } 
} 

апплета:

import java.applet.*; 
import java.awt.*; 
public class LauncherApplet extends Applet{ 
    public Programmer getProgrammer(){ 
    return new Programmer(); 
} 

}

Основной Java файл:

import netscape.javascript.*; 
public class Programmer { 
    public String name="Programmer1"; 
    public String age="20"; 
    public String language="Java"; 
    public void setData(JSObject js){ 
    try{ 
    this.name=((String)js.getMember("name")).toLowerCase(); 
    this.age=((String)js.getMember("age")).toLowerCase(); 
    this.language=((String)js.getMember("language")).toLowerCase(); 
    System.out.println("Name= "+name+",Age= "+age+",language= "+language); 
} 
catch(JSException e){System.out.println(e);} 
} 
public String getAdvice(){ 
    String advice=""; 
    switch(language){ 
    case "php": 
    advice=name+", you should definitely try out CodeIgniter."; 
    break; 
    case "java": 
    advice=name+", you should definitely try out JavaServer Faces."; 
    break; 
    case "python": 
    advice=name+", you should definitely try out Django."; 
    break; 
    default: 
    advice="You language of choice is not any one of PHP, Java or Python"; 
    } 
    return advice; 
} 
} 

Файлы java были скомпилированы успешно. Нет ошибок. Пожалуйста, скажите мне, какую ошибку я делаю.

Заранее спасибо

+1

* «HTML и javascript являются частью интерфейса, а java - бэкэнд. Я использую апплеты». * Это не имеет смысла. Апплеты - это пользовательский интерфейс. Если вы используете Java только в бэкэнд, вы не хотите использовать апплеты. –

+0

использует HTML, Javascript (или jquery) для отправки ajax-команд сервлету или веб-сервису. –

+1

Кроме того, апплеты мертвы. Chrome больше не поддерживает NPAPI, который должен использовать плагин Java для работы в браузере, Firefox также отказывается от поддержки, а Edge также не поддерживает апплеты. –

ответ

-1

Вы могли бы использовать DWR технологии (Direct Web Routing). Это просто функции Ajax ..

http://directwebremoting.org/dwr/introduction/getting-started.html

Это, возможно, поможет вам.

+0

Моя доброту DWR все еще существует - должно быть 10 лет с тех пор, как я ее использовал. –

+0

DWR все еще существует и все еще работает хорошо. –

+0

Хм, кажется, принадлежит миру до Ajax –