Serlvet+Json接口+Ajax获取

1,此次文章讲述如何利用Serlvet服务端接口,给客户端ajax获取;
2,Serlvet实现服务器json数据并显示;
3,一个user类文件,一个主message类文件,一个web配置文件;
4,利用的是eclipse开发者工具
5,jar相关文件和ora.json文件网上有,可以找找,配置到web文件上以及iib文件下

一:利用Serlvet实现服务器json接口数据,简单的实现规则以及原理方法,因为做了很多android和h5之类的功能,网络获取json,读取显示,和蓝牙+wifi的android实现,只要是网络数据信息,因此离不开接口,所以,最近也看了网上很多相关资料,结合了自己所学所得,和前辈们的知识体结构,坚决的想自己独立开发出一套服务器接口;
二:Serlvet接口也并不是特别的复杂,也是最简单易上手的web服务器接口制作。相对ssm而言,应该大家都知道,stringmvc+string+mysql。复杂度需要先了解Serlvet知识,长话短说,我们先来看看类文件代码:

1,user/kapian类

public class kapian {  
    
    //头像路进  
    public String imgurl;  
      
    public String getImgurl() {  
        return imgurl;  
    }  
  
    public void setImgurl(String imgurl) {  
        this.imgurl = imgurl;  
    }  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public String getMoney() {  
        return money;  
    }  
  
    public void setMoney(String money) {  
        this.money = money;  
    }  
  
    public String getStyle() {  
        return style;  
    }  
  
    public void setStyle(String style) {  
        this.style = style;  
    }  
  
    public String getNum() {  
        return num;  
    }  
  
    public void setNum(String num) {  
        this.num = num;  
    }  
  
    public String getRevenue() {  
        return revenue;  
    }  
  
    public void setRevenue(String revenue) {  
        this.revenue = revenue;  
    }  
  
    public String getId() {  
        return id;  
    }  
  
    public void setId(String id) {  
        this.id = id;  
    }  
  
    //名字  
    public String name;  
      
    //金额  
    public String money;  
      
    //交易风格  
    public String style;  
      
    //订阅人数  
    public String num;  
      
      
    //收益率  
    public String revenue;  
      
    //标记  
    public String id;  
      
    public kapian(String imgurl,String name,String money,String style,String num,String revenue,String id){  
          
        this.imgurl=imgurl;  
        this.name=name;  
        this.money=money;  
        this.style=style;  
        this.num=num;  
        this.revenue=revenue;  
        this.id=id;  
    }  
      
}  

以上实现了user数据接口类,set以及get获取名称信息:
这里写图片描述
2,sever/message类文件

import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import org.json.JSONObject;  
import org.json.JSONArray;  
  
  
  
import java.util.ArrayList;  
import bean.kapian;  
import java.util.List;   
  
public class message extends HttpServlet {  
  
    /** 
     * Constructor of the object. 
     */  
      
      
      
    public message() {  
        super();  
    }  
  
    /** 
     * Destruction of the servlet. <br> 
     */  
    public void destroy() {  
        super.destroy(); // Just puts "destroy" string in log  
        // Put your code here  
    }  
  
    /** 
     * The doGet method of the servlet. <br> 
     * 
     * This method is called when a form has its tag value method equals to get. 
     *  
     * @param request the request send by the client to the server 
     * @param response the response send by the server to the client 
     * @throws ServletException if an error occurred 
     * @throws IOException if an error occurred 
     */  
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
  
         response.setHeader("Content-type", "text/html;charset=UTF-8");    
         response.setContentType("text/html;charset=utf-8");    
           
          
          
        List<kapian> li = new ArrayList<kapian>();  
          
        li.add(new kapian("1.jpg","周大","2345323","三三","10234323","200%","周"));  
        li.add(new kapian("1.jpg","唐网","123143","尔尔","1234234","190%","唐"));  
        li.add(new kapian("1.jpg","宋解开","2345323","丰富","10234323","200%","宋"));  
        li.add(new kapian("1.jpg","元武","2345323","Lilith","10234323","200%","元"));  
        li.add(new kapian("1.jpg","明研","2345323","倪策三","234235","2000%","明"));  
          
          
          
        try{  
        JSONArray json = new JSONArray();  
          
        for(kapian a :li){  
            JSONObject obj = new JSONObject();  
            obj.put("imgurl",a.getImgurl());  
            obj.put("name",a.getName());  
            obj.put("money",a.getMoney());  
            obj.put("style",a.getStyle());  
            obj.put("num",a.getNum());  
            obj.put("revenue",a.getRevenue());  
            obj.put("id",a.getId());  
              
            json.put(obj);  
              
          
        }  
        JSONObject js =new JSONObject();  
          
        response.getWriter().print(json.toString());      
          
        }  
          
        catch(Exception e){  
            e.printStackTrace();  
        }      
    }  
  
    /** 
     * The doPost method of the servlet. <br> 
     * 
     * This method is called when a form has its tag value method equals to post. 
     *  
     * @param request the request send by the client to the server 
     * @param response the response send by the server to the client 
     * @throws ServletException if an error occurred 
     * @throws IOException if an error occurred 
     */  
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
  
        response.setContentType("text/html");  
        PrintWriter out = response.getWriter();  
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");  
        out.println("<HTML>");  
        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");  
        out.println("  <BODY>");  
        out.print("    This is ");  
        out.print(this.getClass());  
        out.println(", using the POST method");  
        out.println("  </BODY>");  
        out.println("</HTML>");  
        out.flush();  
        out.close();  
    }  
    /** 
     * Initialization of the servlet. <br> 
     * 
     * @throws ServletException if an error occurs 
     */  
    public void init() throws ServletException {  
        // Put your code here  
    }  
}  

以上实现了接口信息类,这样就可以直接访问服务器地址,可以读取到相关的json数据了;

3,Filter/HeaderFilter类

import java.io.IOException;  

import javax.servlet.Filter;  
import javax.servlet.FilterChain;  
import javax.servlet.FilterConfig;  
import javax.servlet.ServletException;  
import javax.servlet.ServletRequest;  
import javax.servlet.ServletResponse;  
import javax.servlet.http.HttpServletResponse;  
  
  
public class HeaderFilter implements Filter   
{   
    public void doFilter(ServletRequest request, ServletResponse resp, FilterChain chain) throws IOException, ServletException  
    {  
    HttpServletResponse response = (HttpServletResponse) resp; response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错   
    response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");   
    response.setHeader("Access-Control-Max-Age", "3600"); //设置过期时间   
    response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, client_id, uuid, Authorization");   
    response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // 支持HTTP 1.1.   
    response.setHeader("Pragma", "no-cache"); // 支持HTTP 1.0. response.setHeader("Expires", "0");   
    chain.doFilter(request, resp);   
    }   
    public void init(FilterConfig filterConfig) {}   
    public void destroy() {}  
}

4,web配置文件信息;

    <filter>  
     <filter-name>HeaderFilter</filter-name>  
     <filter-class>Filter.HeaderFilter</filter-class><!--你过滤器的包 -->  
   </filter>  
   <filter-mapping>  
     <filter-name>HeaderFilter</filter-name>  
     <url-pattern>/*</url-pattern><!-- 你开放的接口前缀  -->  
   </filter-mapping> 

具体的详细代码都在这里了,可以利用外网ip地址访问到json数据,以及客户端ajax跨域请求获取到json,读取值,如果觉得哪里不懂可以评论,希望对各位有所帮助,谢谢!
这里写图片描述

5,客户端app利用跨域ajax请求获取数据:

$.ajax({  
    url:'http://119.23.225.64/.../message',  
    method:'get',  
    dataType:'json',  
    success:function(data){  
      $.each(data,function(i,term){  
        alert(term.name);  
        });  
    },  
    error:function(XMLHttpRequest,textStatus,errorThrown){  
        alert(XMLHttpRequest.status);  
        alert(XMLHttpRequest.readyState);  
        alert(textStatus);  
    }  
  });  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值