2016-06-14 5 views
0

나는 HTML, 자바 스크립트 및 자바를 사용하여 간단한 웹 응용 프로그램을 테스트하고있다. HTML과 자바 스크립트는 프론트 엔드의 일부이고 자바는 백엔드를 형성합니다. 애플릿을 사용하고 있습니다. 현재 요구 사항이 HTML과 자바 스크립트 만 사용해야한다고 JSP 또는 JSF를 사용하고 싶지 않습니다. 다음과 같은 오류가 발생합니다. 백엔드로 자바와 자바에 자바 스크립트 연결

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(); 
} 

}

주요 자바 파일 :

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는 프론트 엔드의 일부이며 자바는 백엔드를 형성합니다. 애플릿을 사용하고 있습니다."* 의미가 없습니다. 애플릿은 UI입니다. 백엔드에서만 Java를 사용한다면 애플릿을 사용하고 싶지 않을 것입니다. –

+0

HTML, Javascript (또는 jquery)를 사용하여 ajax 명령을 서블릿 또는 webservice에 보냅니다. –

+1

또한 애플릿이 종료되었습니다. Chrome은 더 이상 Java 플러그인이 브라우저에서 작동해야하는 NPAPI를 지원하지 않으며 Firefox는 지원을 중단하고 Edge는 애플릿을 지원하지 않습니다. –

답변

-1

DWR (Direct Web Routing) 기술을 사용할 수 있습니다. 이것은 단순히 아약스 기능입니다 ..

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

이것은 아마도 당신을 도울 것입니다.

+0

DWR은 여전히 ​​존재합니다. 사용 후 10 년이되어야합니다. –

+0

DWR은 여전히 ​​존재하지만 여전히 효과적입니다. –

+0

흠, Ajax 이전의 세계에 속한 것 같습니다. –