㈠ 在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逻辑代码。