精华内容
下载资源
问答
  • servlet响应Ajax异步请求-附件资源
  • 这次给大家带来在jquery的请求ajax与在servlet中的响应ajax,在jquery的请求ajax与在servlet中的响应ajax的注意事项有哪些,下面就是实战案例,一起来看一下。在jsp中,首先,你需要导入jquery的架包:获取可返回...

    这次给大家带来在jquery的请求ajax与在servlet中的响应ajax,在jquery的请求ajax与在servlet中的响应ajax的注意事项有哪些,下面就是实战案例,一起来看一下。

    在jsp中,首先,你需要导入jquery的架包:

    获取可返回站点的根路径:

    String path = request.getContextPath();

    %>

    在jquery中写ajax请求:

    $(function(){

    $(".B").click(function(){

    $.ajax({

    type: "GET",

    //对应servlet中的方法

    url: "" + "/queryEvaluateByuserId.do",

    //返回是json数据

    dataType: "json",

    async:false,

    data:{

    },

    success: function(data){

    str = "";

    if(data != null){

    //循环表单列表

    for (var i in data)

    {

    var num = parseInt(i) + 1 ;

    str +="

    " + num + ""

    + data[i]['name'] + "

    "

    + data[i]['price'] + "元

    "

    + "

    ";

    }

    $(".trtd4").after(str);

    }else{

    }

    },

    error: function(data){

    }

    })

    });

    }

    jsp部分:

    序号业主名金额

    在servlet中用到了阿里巴巴的快速转换json的包com.alibaba.fastjson.JSON:private void queryEvaluateByuserId(HttpServletRequest request, HttpServletResponse response) throws SQLException, IOException, ServletException{

    HttpSession session=request.getSession();

    request.setCharacterEncoding("UTF-8");

    response.setContentType("text/html");

    response.setCharacterEncoding("UTF-8");

    Cookie[] cookies = request.getCookies();

    int ownerId = 0;

    for (int i = 0; i < cookies.length; i++) {

    Cookie cookie = cookies[i];

    if (cookie.getName().equals("ownerId")) {

    ownerId = Integer.parseInt(cookie.getValue());

    }

    }

    List orderList = new ArrayList<>();

    List queryEvaluateList = new ArrayList<>();

    orderList = orderServiceImpl.queryOrderList(ownerId, null, null, null, null, null);

    List> workers = new ArrayList>();

    for(int i = 0;i < orderList.size();i++){

    Map order = new HashMap();

    order.put("description", orderList.get(i).getDescription());

    order.put("name", orderList.get(i).getOwnerName());

    System.out.println(orderList.get(i).getDescription());

    order.put("type",orderList.get(i).getTypeName());

    queryEvaluateList = orderServiceImpl.queryEvaluateListByUserId(orderList.get(i).getId());

    order.put("comment", queryEvaluateList.get(0).getComment());

    List allocation = orderServiceImpl.queryAllocationByOrderId(orderList.get(i).getId());

    order.put("price", String.valueOf(allocation.get(0).getPrice()));

    System.out.println(order);

    workers.add(order);

    }

    //将map键值对转换成json,传给jsp

    response.getOutputStream().write(JSON.toJSONBytes(workers));

    }

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    展开全文
  • //在servlet中通过HttpServletResponse对象获取输出流,并输出即可响应Ajax异步请求 //向客户端输出string为响应的内容,在servlet中要返回JSON数据的话就要转JSON字符串之后再输出 response.getWriter().write...

    servlet就不介绍了,直接看源码

    //在servlet中通过HttpServletResponse对象获取输出流,并输出即可响应Ajax异步请求
    //向客户端输出string为响应的内容,在servlet中要返回JSON数据的话就要转JSON字符串之后再输出
    response.getWriter().write(string);
    

    举个栗子

       /**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//进入方法开始编写日志
    		LogWriteTool.log(new SystemLog((String)request.getSession().getAttribute("USER_NAME"), "查询日志开始", "开始处理查询日志的请求"));
    		//查询出所有的日志信息
    		SystemLogDao systemLogDao = new SystemLogDaoImpl();
    		List<SystemLog> systemLogs = new ArrayList<>();
    		try {
    			systemLogs = systemLogDao.getAllSystemLog();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		Gson gson = new Gson();//创建一个Gson对象,用于将数据对象转换成JSON字符串
    		String string = gson.toJson(systemLogs);//将数据转换成JSON字符串
    		response.getWriter().write(string);//向客户端输出
    		//业务处理完了之后开始编写日志
    		LogWriteTool.log(new SystemLog((String)request.getSession().getAttribute("USER_NAME"), "查询日志完毕", "响应报文行数:"+systemLogs.size()));
    	}
    

    Gson与JSONObject不同的是,只需要一个jar包

    最后奉上Gson的jar包,
    百度网盘下载地址:链接: https://pan.baidu.com/s/1dAlnA-Z6er6gkzbZGPJMJA 提取码: rbwk 复制这段内容后打开百度网盘手机App,操作更方便哦
    CSDN下载地址:https://download.csdn.net/download/qq_38403662/10866748

    如果需要使用JSONObject:
    可自行下载JSON所需jar包
    百度网盘下载地址:链接:https://pan.baidu.com/s/1vjv35Nj3uhKR6j3N7YoEzw 密码:xkvi
    CSDN下载地址:https://download.csdn.net/download/qq_38403662/10862642

    展开全文
  • java servlet 后台响应ajax请求

    万次阅读 多人点赞 2017-07-05 19:32:53
    网页异步请求在各种网站、系统中可谓无处不在,...首先,在后台建立一个servlet:右键一个包,new-->servlet,输入类名,就可以创建一个空白的servlet了。刚创建的servlet包含如下内容: package com.zhao; import ja
    网页异步请求在各种网站、系统中可谓无处不在,本文就介绍一个最简单的从前端发送请求-->java后台连接数据库-->从数据库读取数据-->把数据返回前端-->前端接收请求的例子。
    

    首先,在后台建立一个servlet:右键一个包,new-->servlet,输入类名,就可以创建一个空白的servlet了。刚创建的servlet包含如下内容:

    package com.zhao;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class Zhao1
     */
    @WebServlet("/Zhao1")              //这里是注解,设置请求的地址,默认是斜杠加类名。也可以采用配置的方式,下面会介绍。
    public class Zhao1 extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Zhao1() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		//这里是响应post请求的方法,一会我们就发post请求,所以一会的代码写在这里。这里标记为"后台post方法"
    	}
    
    }



    其中上面那个注解也可以不用,而采取xml配置的方式,具体做法是:
    在web.xml文件中添加一下内容:

      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>zhao1</servlet-name>
        <servlet-class>com.zhao.zhao1</servlet-class>
      </servlet>
      <servlet-mapping>
        <servlet-name>zhao1</servlet-name>
        <url-pattern>/Zhao1</url-pattern>
      </servlet-mapping>

    两个servlet-name对应起来,servlet-class就是类那个文件,按住ctrl鼠标指上去应该可以变成小手。url-pattern就是发送ajax请求的Url地址,在注解里就是括号里的字符串。
    现在就可以响应请求啦!先返回一个字符串试试,前台能不能接收到。
    ajax代码就不详细介绍了,只贴一段代码:

    $("#zhaotestAjax").click(function(){        
    	$.ajax({
                url:"Zhao1",
                type: "post",
                contentType:"application/json",
                success: function (result, status) {
                        var str=result;
    		    alert(str);
                }, error: function (res) {
                }
            });
    });

    这里有一点需要注意的,Url在注解里是“/Zhao1”,在发ajax请求的时候则是“Zhao1”,没有那一个斜杠。
    这时候没出错的话点击按钮是没反应的,也不出错,因为我们还没写返回什么。没错的话下面就写返回什么。
    在后台post方法处添加下面两句:

    response.setCharacterEncoding("utf-8");
    //写入到前台         	
    response.getWriter().write("测试成功");

    第一句是设置编码,以免因为中文出现乱码。第二句就是向前台传输数据了。
    点击id为zhaotestAjax的这个按钮,出现弹框:测试成功。或者在调试里看到str这个变量有值了,是这句话,那表示前后台传输数据成功了,就像打通了任督二脉,人类登上月球迈出的第一步,从此再复杂的业务逻辑,都是在这个过程的基础上添砖加瓦,在前后台进行数据处理。数据传输的一小步,网页请求的一大步!
    但是这样肯定是不够的,前后台通了,后台和数据库还没通。数据库我用的是mysql,简单粘贴一下连接数据库的代码。
    因为是个小例子,这里也不用框架了,也不用配置文件了,连接字符串什么的都放在类里了。

        private static final String driver = "com.mysql.jdbc.Driver"; //数据库驱动  
        private static final String url="jdbc:mysql://localhost:3306/gaofen_pie?serverTimezone=UTC"; //连接数据库的URL地址  
        private static final String username="root";//数据库的用户名  
        private static final String password="root";//数据库的密码</span>  
        private static Connection conn=null;  

    上面这是连接字符串,Url地址后面加的serverTimezone是因为不加它会有乱码。

    Class.forName(driver);
    if(conn==null){ 	
            conn=DriverManager.getConnection(url, username, password);  
    	Statement stmt =  conn.createStatement(); 
    	ResultSet rs = stmt.executeQuery("select * from pie1");
    	//下面进行数据操作
    }

    上面是连接过程,最后那个rs就是获取到的结果了,数据库和数据表请自己创建,这是我创建的。


    数据库名就是gaofen_pie,表名就是pie1。
    获取到了rs,还要遍历把里面的数据读出来,就是用它的next方法。

    		try {
    			Class.forName(driver);
    	        if(conn==null){  
    	            conn=DriverManager.getConnection(url, username, password);  
    	            Statement stmt =  conn.createStatement(); 
    	            ResultSet rs = stmt.executeQuery("select * from pie1"); 
    	            JSONObject jsonObject = new JSONObject();
    	            ArrayList<Object> arrList=new ArrayList<Object>();
    	            //int i=0;
    	            while (rs.next()) {
    			此处进行数据操作//
    	            }
                    response.getWriter().write(jsonObject.toString());
    	            if (rs != null) { 
    	                rs.close(); 
    	            } 
    	            if (stmt != null) { 
    	                stmt.close();    
    	            } 
    	            if (conn != null) { 
    	                conn.close();    
    	            } 
    	    		//out.print("1");
    	            //return conn;  
    	        }else{
    	        	//out.print("连接失败");
    	        	
    	        }
    	        //return conn;
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

    其中缺什么包就引用一下(mysql的jdbc connector),出错了就自动修正一下,一般就是用try catch包裹一下。
    while(rs.next)这一句相当于遍历,每次对rs中的一条记录进行操作。这里就要考虑一下我要用的这个数据应该怎么获取,怎么封装。
    前台和后台传输数据都是用字符串来传输的,但是数据量大的时候一个个的读字符串很麻烦,于是就有了json这种伟大的发明。
    json其实也是一串字符串,但是它有特定的格式,可以被JSON对象解析成对象。就好像螃蟹不好运输,我把它捆一下,运到了目的地再拆开。数据对象封装成json字符串,传递给前台,前台解析后又还原成和原来一样的对象。这就是json的意义。
    至于怎么封装数据,就要结合实际情况选择相对的方法了。我是先把我需要的数据组成一个二维数组,然后分别把这个二维数组放到json对象里。因为在前台用的也是二维数组,所以选择这样组装。
    最后贴上post里面的所有代码

    		try {
    			Class.forName(driver);
    	        if(conn==null){  
    	            conn=DriverManager.getConnection(url, username, password);  
    	            Statement stmt =  conn.createStatement(); 
    	            ResultSet rs = stmt.executeQuery("select * from pie1"); 
    	            JSONObject jsonObject = new JSONObject();
    	            ArrayList<Object> arrList=new ArrayList<Object>();
    	            //int i=0;
    	            while (rs.next()) {
    	            	Object[] obj=new Object[8];
    	            	for(int i1=1;i1<obj.length+1;i1++){
    	            	obj[i1-1]=rs.getString(i1);
    	            	}
    	            	arrList.add(obj);
    	            }
                	
    	            jsonObject.put("Consumption", arrList);
                	response.setCharacterEncoding("utf-8");
                    //写入到前台
                	
                    response.getWriter().write(jsonObject.toString());
    	            if (rs != null) { 
    	                rs.close(); 
    	            } 
    	            if (stmt != null) { 
    	                stmt.close();    
    	            } 
    	            if (conn != null) { 
    	                conn.close();    
    	            } 
    	    		//out.print("1");
    	            //return conn;  
    	        }else{
    	        	//out.print("连接失败");
    	        	
    	        }
    	        //return conn;
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

    前台ajax所有代码:

            $.ajax({
                url:"Response2",
                type: "post",
                contentType:"application/json",
                success: function (result, status) {
                    
                        var str=result;
                        var obj = JSON.parse(str);  //用这个方法可以把json字符串解析成对象。
                        
                        for(var i=0;i<obj.Consumption.length;i++){    //这里因为是二维数组,用了俩循环
                        	for(var j=1;j<obj.Consumption[i].length;j++){
                        		obj.Consumption[i][j]=parseFloat(obj.Consumption[i][j]);
                        	}
                        	chinaConsumptionLevel.push(obj.Consumption[i]);
                        }
    
        
                }, error: function (res) {
    
                }
            });

    其中chinaConsumptionLevel是一个事先声明的空的一维数组。这样最终组装之后,最后得到我想要的数据和数据形式,就是这样的:

    chinaConsumptionLevel=[
     ["一区",119.44507245851,34.613350841033, 22023, 24982, 27760, 30350, 33337], ["二区",119.46848114625,34.619757429255, 15200, 17852, 20624, 22984, 26261]
    ];

    至此,终于完成了从后台去数据到前台的任务。


    展开全文
  • AJAXServlet响应jsp

    2021-04-19 08:54:30
    package ajax.ajax; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax...
    package ajax.ajax;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    @WebServlet("/AJAXServlet")
    public class AJAXServlet extends HttpServlet {
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            //响应给get.jsp
            response.getWriter().println("doGet     我是AJAXServlet响应给get.jsp的内容");
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=UTF-8");
    
            //响应给post.jsp
            response.getWriter().println("doPost    我是AJAXServlet响应给post.jsp的内容; username=" + request.getParameter("username"));
        }
    }
    
    
    展开全文
  • 前提:会写一个 servlet ,参考文章 写一个 servlet 的方法 1.导入对象转 json 的jar 包 我这里使用的时maven 导包 &lt;dependency&gt; &lt;groupId&gt;com.fasterxml.jackson.core&lt;/...
  • 使用chrome 浏览器本地调试JS ,ajax 发送请求servlet,servlet响应之后,responseText 取不值。 使用F12调试发现问题: XMLHttpRequest cannot load file:///D:/file....
  • jquery的ajax请求servlet与serverlet响应数据类型json格式化
  • $.ajax({ url : "", success : function(){ //200ok调用 }, error : function() { //500服务器内部错误,404调用 } }) pw.writer(""); pw.flush(); 在客户端直接就能收到数据,但是请求响应并没有结束...
  • 2. Ajax 引擎请求服务器及接受响应 //javascript var xmlHttp; var userId = document.getElementById( "userId" ); var passwd = document.getElementById( "passwd" ); var info = document....
  • 今天在做项目的时候,发现了一个问题,在使用ajaxservlet通信的时候,servlet判断成功无法跳转指定的页面。 通过查资料,我发现servlet 不管用请求转发还是重定向 都没有任何效果 这就是因为 servlet的是...
  • 下面小编就为大家分享一篇浅谈ajax在jquery中的请求和servlet中的响应,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • jsp页面发请求servelt,servlet通过连接数据库读取数据,如何响应到jsp页面呢?   1.将查询出来的数据保存jsp的内置对象里面,request,session,application,一般保存在request里面,再使用jstl等标签从这些...
  • ![图片说明](https://img-ask.csdn.net/upload/201606/02/1464845235_854954.png)...!...首次进入列表页面有数据,点删除后进入删除的servlet,进行判断后没有删除,返回列表页面,可页面没数据了,刷新一下才有,为什么啊
  • Ajax 发送数据 Servlet

    2020-05-21 09:44:33
    本文介绍了 Ajax 发送数据 Servlet 的相关内容。。。
  • 现在问题是,如果在servlet 中用request.Attribute()转发目标的Xx.jsp 可以获得参数,但是ajax 的post 方法下的attr("src","Xx.jsp ")的这次响应的jsp 却找到的参数了,我现在是使用设置会话参数实现,有没有更好的...
  • 再就是登陆成功 的界面(想法是读取表单经过servlet的值) ![图片说明](https://img-ask.csdn.net/upload/202002/03/1580718575_312965.png) 浏览器截图 ![图片说明]...
  • ajaxServlet

    2019-12-29 23:09:35
    package com.bjsxt.servlet; import java.io.IOException;...import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servl...
  • AJAX处理数据提交到Servlet

    千次阅读 2017-11-26 19:20:55
    AJAX是与服务器交换数据的技术,它可以在不加载全部页面的情况下,...在这里我需要提到的是使用AJAX来处理将数据提交到servlet: 创建web工程 首先创建一个jsp页面(index.jsp):; charset=UTF-8" pageEncoding="UT
  • 使用ajax向后台servlet发出请求并响应

    千次阅读 2017-12-30 11:05:21
    使用ajax向后台servlet发出请求并响应 博主初来乍到,希望大家能给博主更多的意见。 jsp页面代码 一下jsp代码使用了JavaScript或JQuery来实现 @ page language="java" contentType="text/html; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,137
精华内容 13,254
关键字:

servlet响应到ajax