ajax调用java后台的一个方法

想问一下那个url参数怎么传啊xmlHttp.open("GET",url,true);假如我的java类名是aa.java,方法名是bb那么这个url怎么写... 想问一下那个url参数怎么传啊 xmlHttp.open("GET",url,true);假如我的java类名是aa.java,方法名是bb
那么这个url怎么写
展开
 我来答
小傻

推荐于2017-10-10 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

   ajax调用java后台的方法,其实是通过url链接来访问,示例如下:

package com.xxxx.xxxx.servlet;  
  
import java.io.IOException;  
import java.sql.Connection;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
  
import javax.naming.Context;  
import javax.naming.InitialContext;  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import javax.sql.DataSource;  
  
public class oaLoginLimitedServlet extends HttpServlet {  
    private static final long serialVersionUID = 1L;  
    private static Connection conn=null;  
    private static PreparedStatement pstmt=null;  
      
      public oaLoginLimitedServlet() {  
            super();  
        }  
  
      public void destroy() {  
            super.destroy();   
        }  
      
      
    public static String getCount(String userid)   
    {  
        String v_sql=".....";  
        String v_count="";  
          
        try {  
            pstmt = conn.prepareStatement(v_sql);  
            pstmt.setString(1, userid);  
            ResultSet rs = pstmt.executeQuery();  
            while(rs.next()){  
                v_count = rs.getString(1);  
            }  
        } catch (SQLException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
            try {  
                pstmt.close();  
                conn.close();  
            } catch (SQLException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            }  
        }  
        return v_count;  
    }  
      
     public static Connection getConnection(){        
            Context ctx = null;      
            try {      
                ctx = new InitialContext();      
                DataSource ds = (DataSource)ctx.lookup("jndiname");      
                conn = ds.getConnection();      
            } catch (Exception e) {      
                e.printStackTrace();      
            }                
            return conn;                  
        }     
       
        public void doPost(HttpServletRequest request, HttpServletResponse response)  
                throws ServletException, IOException {  
            String v_userid=request.getParameter("userid");  
            System.out.println(v_userid);  
            getConnection();  
            String v_count=getCount(v_userid);  
            response.setCharacterEncoding("UTF-8");   
            response.getWriter().write(v_count);      
          response.flushBuffer();  
        }  
          
        public void doGet(HttpServletRequest request, HttpServletResponse response)  
                throws ServletException, IOException {  
            doPost(request,response);  
        }  
  
  
}  

如果要前端能够访问到该servlet,需要将该servlet注册到 web.xml文件中。需要在web.xml文件中添加以下内容
[html] view plaincopy
<servlet>  
    <servlet-name>oaLoginLimitedServlet</servlet-name>  
    <servlet-class>com.xxxx.xxxx.servlet.oaLoginLimitedServlet</servlet-class>  
</servlet>  
<servlet-mapping>  
    <servlet-name>oaLoginLimitedServlet</servlet-name>  
    <url-pattern>/oaLoginLimitedServlet</url-pattern>  
</servlet-mapping>  

重启相关服务。
通过ajax就可以调用了。

[html] view plaincopy
 var msg = $.ajax({  
     type: "post",  
     url: ....+'/oaLoginLimitedServlet?userid='+ $('#act').val(),  
     async:false  
 }).responseText;
千江月success
2014-01-15 · TA获得超过827个赞
知道小有建树答主
回答量:1031
采纳率:100%
帮助的人:914万
展开全部
ajax调用的java的方法,实际上是访问服务,不是所有java类的方法都能够使用,最简单的方法是ajax调用servlet.而我看你的描述明显不是这么想的。综上所述,你的想法是不成立的,应该把这个方法封装到servlet中或action中暴露成服务才能用ajax调用。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
软件钢琴师
推荐于2017-09-27 · TA获得超过702个赞
知道小有建树答主
回答量:728
采纳率:50%
帮助的人:378万
展开全部
ajax调用的java的方法,实际上是访问服务,不是所有java类的方法都能够使用,最简单的方法是ajax调用servlet或者struts的action。

servlet中或action中暴露成服务才能被ajax调用到。servlet就是doPost、doGet方法,action中就是有返回值的那些方法。传过来的参数需要通过request.getParameter来获取,然后调用相应防反再产生返回值。
追问
function aa(){ xmlHttp = new XMLHttpRequest();url='/ddservlet?kk=1';  xmlHttp.open("GET",url,true);  xmlHttp.onreadystatechange=nn;  xmlHttp.send(null);}
那你的意思是这样
追答
没错,你这样调用的就是servlet,这样你把ddservlet的doPost、doGet方法完善一下就行了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钱尐啦
2014-01-15
知道答主
回答量:69
采纳率:0%
帮助的人:26.5万
展开全部
直接用json格式传入
追问
我是问路径怎么写  不是参数怎么传

比如说是不是 base/aa/bb?+参数
这种形式
追答
你试试,应该可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式