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出问题啦");
    		}
    	}
    }
    

      

  • 相关阅读:
    JavaScript 为字符串添加样式 【每日一段代码80】
    JavaScript replace()方法 【每日一段代码83】
    JavaScript for in 遍历数组 【每日一段代码89】
    JavaScript 创建用于对象的模板【每日一段代码78】
    html5 css3 新元素简单页面布局
    JavaScript Array() 数组 【每日一段代码88】
    JavaScript toUTCString() 方法 【每日一段代码86】
    位运算
    POJ 3259 Wormholes
    POJ 3169 Layout
  • 原文地址:https://www.cnblogs.com/laonniudajiangtang/p/6106150.html
Copyright © 2011-2022 走看看