zoukankan      html  css  js  c++  java
  • JavaWeb的json包装以及跨域问题--博客园老牛大讲堂

    1、下面内容简介---博客园老牛大讲堂

      下面我主要说一下javaweb端怎样利用MVC框架包装json数据。和json数据的跨域问题解决。

      这个文章不适用与javaEE初学者,需要一定基础。

    2、知识补充:---博客园老牛大讲堂

      ①:java分为三种javaEE,javaSE,javaME

      ②:javaEE一般javaEE一般是开发服务器的,javaSE是开发桌面服务器的,javaME是开发移动端的。三种模式区别

      ③:javaEE一般是用来提供服务的(提供数据,就是通常说的后端),我下面的例子就是开发后端,为移动端或者网页前端提供服务的。

      ④:通常开发项目时候,前端和后端是分开的,例如一个web网页前端和一个javaEE后端。开发时候只需要商量好接口就行了,

        那么网页怎样获取数据呢?

        只有通过后端提供的数据。

        那么后端怎样提供数据呢?

        其实后端可以提供各种类型的数据例如:xml格式数据,json数据,txt数据等等。

        现在主流就是json数据的交互。我为大家讲解一下javaEE写服务端,json数据的包装。

    3、下面例子是关于javaEE怎样包装json数据并且实现跨域问题。代码---博客园老牛大讲堂

      这个工程是一个简单的登录验证。

      这个工程首先有可能会报错,因为少了jar包的原因,那么jar包就自己下载把!java对json包装的jar包。

      目录结构图:

      

      Dao包的loginDao类

        

    package Dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import Entity.Login;
    import Util.Connec;
    
    public class LoginDao {
    	
    	//登陆验证,用于测试用的---博客园老牛大讲堂
    	public List<Login> getLogin(String username,String password)
    	{
    		List<Login> list=new ArrayList<Login>();
    		Login login=new Login();
    		list.add(login);
    		return list;
    	}
    }
    

      Entity包的Login类

    package Entity;
    
    public class Login {
    	
    private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }

      JsonTools包的JsonTools类

    package JsonTools;
    
    
    import net.sf.json.JSONObject;
    
    public class JsonToos 
    {
    	//返回一个结果的json数据--博客园老牛大讲堂
    	public String returnResult(String value)
    	{     
             JSONObject jsonObject=new JSONObject();  
             jsonObject.put("result",value);  
             return jsonObject.toString();  
        } 
    	
    	//把list数据包装成json数据--博客园老牛大讲堂
    	public String returnListJSON(String key,Object value)
    	{
    		JSONObject jsonObject=new JSONObject();  
            jsonObject.put(key,value);  
            return jsonObject.toString();
    	}
    }
    

      Server包的LoginSerlet类

    package Server;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import Dao.LoginDao;
    import Entity.Login;
    import JsonTools.JsonToos;
    
    public class LoginSerlet extends HttpServlet {
    
    	private JsonToos jsonToos=new JsonToos();
    	private LoginDao loginDao=new LoginDao();
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request,response);
    	}
    
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		//http://localhost:8080/A/LoginSerlet?username=1&password=1&callback
    		//博客园老牛大讲堂
    		String username=new String(request.getParameter("username").getBytes("ISO-8859-1"),"GBK");
    		String password=new String(request.getParameter("password").getBytes("ISO-8859-1"),"GBK");
    		String callback=new String(request.getParameter("callback").getBytes("ISO-8859-1"),"UTF-8");
    		
    		String jsonstring="";
    		List<Login> list=loginDao.getLogin(username, password);
    		
    		if(list.size()!=0){
    			jsonstring=jsonToos.returnListJSON("result", "Success");
    		}else{
    			jsonstring=jsonToos.returnListJSON("result","Failure");
    		}
    		String jsoncallback = callback + "("+jsonstring+")";
    		PrintWriter out = response.getWriter();
    		out.println(jsoncallback);
    		out.flush();
    		out.close();
    		
    	}
    
    }
    

      Util包的Connec类

    package Util;
    
    import java.io.FileInputStream;
    import java.sql.*;
    import java.util.Properties;
    
    public class Connec {
    	
    	//博客园老牛大讲堂,这里用了sqlserver数据库连接
    	private static String url="jdbc:sqlserver://localhost:1433;DatabaseName=sysxzx";
    	private static String userName="root";
    	private static String password="root";
    	private static String parper="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    	
    	public static Connection getConnection(){
    		try {
    			Class.forName(parper);
    			return DriverManager.getConnection(url, userName, password);
    		} catch (Exception e) {
    			 System.out.println("数据库连接出问题啦");
    		}
    		return null;
    	}
    
    	public static void close( Connection conn,Statement stmt){
    		try {
    			conn.close();
    			stmt.close();
    		} catch (SQLException e) {
    			 System.out.println("数据库关闭出问题啦");
    		}
    	}
    
    	public static void close(Connection conn ,Statement stmt,ResultSet rs){
    		try {
    			close(conn,stmt);
    			rs.close();
    		} catch (SQLException e) {
    			System.out.println("数据库关闭2出问题啦");
    		}
    	}
    }
    

      

  • 相关阅读:
    centos 7修改时间为中国时间
    颜色表及html代码
    前端日志监控体系
    测试开发必备技能:安全测试漏洞靶场实战
    Jmeter(三)----win10系统下如何修改Jmeter字体大小?
    Jmeter(二) ---Jmeter英文版本修改为中文
    Jmeter(一) ---Windows环境搭建
    跟着高手学复盘_初步理解
    小测试对 HTTP/2 的了解
    软件测试入坑建议
  • 原文地址:https://www.cnblogs.com/laonniudajiangtang/p/6106150.html
Copyright © 2011-2022 走看看