以下为HTML页面:
<input id="btnok" type="button" value="单击返回hello" />
以下为我的js页面:
$(function () {
$("#btnok").click(function () {
$.ajax({
type:"post",
url: "myclass.java/Hello",
contentType: "application/json",
success: function (data) {
alert(data.d);
},
error:function(jqXHL){
alert("错误:"+jqXHL);
},
}) ;
}) ;
});
以下为我写的一个java类myclass.java,用于返回值:
public class myclass {
public String Hello()
{
return "Hello Ajax!";
}
}
运行后alert弹出404错误,刚开始学,好多不明白,望大神指教哪里出问题了?
前端要访问到后台的class类,有一定要求的,比如必须集成serverlet,或者用框架spring mvc的controller,sturts的anction等。直接访问普通的java类不行。
你使用servlet,那么web.xml应该有你的类的配置路径和两对标签,你可以参考下这个http://www.cnblogs.com/xdp-gacl/p/3760336.html
其实最基础的前后端参数传递就是使用Servlet,我直接给你写代码吧!
//1、前端ajax请求格式
var url = '/myclass' //这个url地址是你在WEBINF下的web.xml里面配置的servlet请求地址
$.ajax({
url:url,//这是你请求的url地址
type: 'get',//这是请求的方式,可以是get或是post
timeout: 10000,//这是请求超时的时间
success: function(ret) {//这个是成功访问之后的回调,ret是从后台返回的值
alert(ret);
}
});
下面来看一看,servlet应该怎么写:
@WebServlet(name = "myclass")
public class MyClassServlet extends HttpServlet {
//servlet里面都会有doget和dopost的方法,用于处理前端请求
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("application/json; charset=utf-8");
PrintWriter out = response.getWriter();
out.println("Hello Ajax!");
}
}
最后还有最重要的一点不要忘了,web.xml的配置,这个是必须要的
<servlet>
<servlet-name>myclass</servlet-name>
<servlet-class>MyClassServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>myclass</servlet-name>
<url-pattern>/myclass</url-pattern>
</servlet-mapping>
发送ajax,url 后面是 后台的路径。没有路径就会出现404