㈠ 在js中轉到servlet用document.location.href出現404錯誤,別人機器上用的一模一樣的代碼沒錯,怎麼回事
404是找不到路徑,你跳轉的路徑如果是相對路徑,最簡單的是右鍵頁面看屬性,看裡面的地址是不是正確拼出了你實際想要訪問的頁面地址
㈡ 在html頁面中如何用js調用java類
在html頁面中,使用js調用java類要使用ajax,具體方法步驟如下:
1、將要調用的類名和方法名作為參數傳給某個servlet.這一步的方法有許多種,用框架,或者直接用xmlHttpRequest對象;
2、要調用的類名和類的完整包路徑最好寫在配置文件里,這里假設類名為Hello,方法名為sayHello,並且sayHello方法不帶參數,類路徑為com.demo.Hello。
3、配置文件AjaxConfig.properties
Hello = com.demo.Hello
4、傳入的參數設置為 class=Hello&method=sayHello
在servlet中作如下處理:
String className=request.getParameter("classname");
String methodName=request.getParameter("method");
String classPath=null;
5、讀取配置文件,取出className所對應的值放入classPath變數中,
Class c=Class.forName(classPath);//載入你所指定的類
Class param[]=new Class[0];//方法的參數為0個
Method m=null;
String returnValue=null;//返回值
try {
m = c.getMethod("sayHello",param);//獲取你所指定的類中的指定方法
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
returnValue=(String)m.invoke(c.newInstance(), new Object[0]);//調用你所指定的方法
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
6、將returnValue的值返回給客戶端即可
類Hello.java
public class Hello
{
public String sayHello()
{
return "hello";
}
}
㈢ jsp中的js怎麼設置session保存一個數組的值,然後servlet怎麼讀取這個數組的值
1、js是運行在客戶端的代碼,session是伺服器端的,所以您的第一個問題:js不可以寫session
2、您要想從servlet中獲取js中的值,辦法有兩個:
a、在頁面中再做一次頁面的form提交,可以用js來完成。即在頁面上放置一個form,設置form的method方法為post或者get(在servlet中取值是對應post和get方法),在form中放置一個input,先使用js給input賦值,然後再用js將form提交給servlet,在servlet的post或者get方法中使用request.getParameter("name");得到耐沒,然後再放入session中。
b、在頁面譽譽中使用get方式提交,用js完成,比如:昌虛納 location.href = "servlet?name='adfasdfs';";
在servlet中的get方法中可以使用request.getParameter("name");得到,然後再放入session中。
注意一點:js代碼最好寫在input標簽之後,因為頁面載入的順序,如果寫在input之前,那就要在頁面的onload方法中寫js邏輯代碼。