Ajax 방식을 사용하세요.
먼저 호출할 클래스명과 메소드명을 파라미터로 서블릿에 전달합니다. 이 단계는 프레임워크를 사용하거나 XMLHttpRequest 객체를 직접 사용하여 수행할 수 있습니다.
또한 호출할 클래스 이름과 클래스의 전체 패키지 경로를 구성 파일에 작성하는 것이 가장 좋습니다
여기서 클래스 이름은 Hello, 메서드 이름은 sayHello, sayHello 메서드는 매개 변수를 사용하지 않으며 클래스 경로는 com.demo.Hello
라고 가정합니다.구성 파일 AjaxConfig.properties
Hello = com.demo.Hello
따라서 전달된 매개변수는 class=Hello&method=sayHello
입니다.서블릿에서 다음 처리를 수행합니다.
String className=request.getParameter("클래스 이름");
String methodName=request.getParameter("method");
문자열 클래스 경로=null;
.
구성 파일을 읽고 className에 해당하는 값을 꺼내서 classPath 변수에 넣습니다. (이 단계를 수행하는 방법은 여러 가지가 있습니다. 구성 파일을 읽는 방법은 온라인에서 정보를 찾을 수 있습니다. 많은 내용이 있지만 여기서는 다루지 않겠습니다. 자세히 살펴보세요)
.
Class c=Class.forName(classPath); //지정한 클래스를 로드합니다
Class param[]=new Class[0]; //메서드의 매개변수는 0
메서드 m=null;
String returnValue=null; //반환값
시도해보세요 {
m = c.getMethod("sayHello",param); //지정한 클래스에서 지정된 메소드를 가져옵니다
} catch(SecurityException e) {
//TODO 자동 생성 캐치 블록
e.printStackTrace();
} catch(NoSuchMethodException e) {
//TODO 자동 생성 캐치 블록
e.printStackTrace();
}
시도해보세요 {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]) //지정한 메서드 호출
} catch(IllegalArgumentException e) {
//TODO 자동 생성 캐치 블록
e.printStackTrace();
} catch(IllegalAccessException e) {
//TODO 자동 생성 캐치 블록
e.printStackTrace();
} catch(InvocationTargetException e) {
//TODO 자동 생성 캐치 블록
e.printStackTrace();
} catch(InstantiationException e) {
//TODO 자동 생성 캐치 블록
e.printStackTrace();
}
마지막으로 returnValue 값을 클라이언트에 반환합니다
수업 Hello.java
공개수업 안녕하세요
{
공개 문자열 sayHello()
{
"안녕하세요"를 반환합니다;
}
}
이해가 안되면 67919823을 추가해서 같이 토론해보자
웹 페이지와 Android 애플리케이션 간의 상호 작용을 촉진하기 위해 Android 시스템은 WebView의 JavaScript 웹 스크립트에 대한 메커니즘을 제공하여 Java 클래스 메서드를 호출합니다. addJavascriptInterface 메소드를 호출하여 Java 객체를 JavaScript 객체에 매핑하면 됩니다.
1. Java 개체를 JavaScript 개체로 매핑
코드는 다음과 같습니다.
mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
최종 WebSettings 설정 = mWebView.getSettings();
settings.setSupportZoom(true);
//WebView에서는 Javascript 스크립트 실행이 가능합니다
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindows자동으로(true);
//Java 객체를 "js2java"라는 Javascript 객체에 매핑
//JavaScript에서는 "window.js2java"를 통해 Java 객체 메서드를 호출할 수 있습니다
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
코드는 다음과 같습니다.
/**웹페이지 Javascript 호출 인터페이스**/
class JSInvokeClass {
public void back() {
activity.finish();
}
}
2. Java 객체를 호출하는 JavaScript의 예
다음과 같이 위 JSInvokeClass 클래스 객체의 back 메소드를 호출합니다.
코드 복사 코드는 다음과 같습니다.
window.js2java.back();
힘든다! 하나는 프론트, 다른 하나는 백데크인데, AJAX가 이 아이디어를 실현합니다! . 아래는 AJAX 예입니다:
//자바스크립트 문서
var xmlHttp;
함수 GetXmlHttpObject()
{
var xhr=null;
시도해
{
// 파이어폭스, 오페라 8.0+, 사파리
xhr=새 XMLHttpRequest();
}잡기(e)
{
//인터넷 익스플로러
시도해
{
xhr=new ActiveXObject("Msxml2.XMLHTTP");
}잡기(e)
{
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
}
x시간 반납;
}
함수 getDataByDept(str)
{
xmlHttp = GetXmlHttpObject();
if(xmlHttp==null)
{
alert("죄송합니다! 귀하의 브라우저는 AJAX를 지원하지 않습니다!");
반품;
}
var url = "/intcard/jsp/employee.do?method=getByDept"
xmlHttp.onReadyStateChange=stateChanged;
xmlHttp.open("post",url,true);
xmlHttp.setRequestHeader('Content-Type', 'application/x--form-urlencoded;charset=UTF-8');
xmlHttp.send("dept=" + str);
}
함수 상태 변경()
{
if(xmlHttp.readyState == 4)
{
var 결과 = xmlHttp.responseText;
document.getElementById("select_employees").innerHTML = 결과;
}
}
HTML 컨트롤의 이벤트를 통해 JS 메소드를 호출하고, JS 프로세스에서 httprequest 객체의 open 메소드를 통해 서버 스크립트를 호출하는 아이디어입니다 ----- 서버 스크립트에서는 javabean 메소드를 사용할 수 있습니다 계산 결과를 JS에 전달하면 Curves가 당신의 생각을 실현합니다
위 내용은 js에서 JAVA 클래스 메소드를 호출하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!