1. 程式人生 > >小程式JAVA後臺配置[完整]

小程式JAVA後臺配置[完整]

這裡先明確幾點:

  1. 小程式前後臺是分離的,前臺用微信開發者工具開發,後臺使用自己的技術開發;我這裡用的是JAVA
  2. 剛瞭解到上面那一點的時候,很奇怪,這不是跨域訪問麼?怎麼可以?後來查詢了資料,知道是小程式前臺 —>微信後臺—>你的後臺。
  3. 基於上一點,必然要保證訪問的安全性,所有服務都需要驗證身份,這裡微信提供了使用者登入機制和驗證機制。

一、微信前臺AJAX

  • 微信封裝了AJAX,官方API文件有,照樣畫葫蘆就可以了。
/**
   * 生命週期函式--監聽頁面初次渲染完成
   */
  onReady: function () {
    wx.request({
      url: 'http://localhost:8080/wxCode/wx_getDB',
      data: {
        phoneNum: '13738042310'
      },
      method: 'GET',
      header: {
        'content-type': 'application/json' // 預設值
      },
      success: function (res) {
        var data = res.data;
        console.log(data)
      },
      fail: function (res) {
        console.log(".....fail.....");
      }
    })
  },
  • 設定本地測試時,不驗證https和域名,這樣才能先在本地測試(設定——專案設定)。


二、後臺JAVA配置

  • 這裡使用的是struts2框架,myeclipse 2017
  • 需要配置fastjson(阿里json包),sqljdbc4(SQLSERVER JDBC包) ,struts Action對映,tomcat 資料連線池。
  • 測試完成。
  1. 建立一個web專案,直接在專案中右鍵加入struts框架。


      2.網上下載fastjson,sqljdbc4包,匯入專案中。

      3.新建一個包與類,最後形成如下目錄,名字自取。


4.配置Action對映,將方法對映成可以訪問的servlet,需要操作struts.xml檔案。

     如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
	<package name="default" namespace="/" extends="struts-default,json-default">
		<action name="wx_*" class="com.rx.action.HelloWorld" method="{1}">
			<result name="success" type="json">
                     <param name="root">data</param>
            </result>
		</action>
	</package>
</struts>    
<package>裡就是配置,這裡直接配置的json資料作為返回物件,和小程式交流你也用不到介面。繼承struts-default,json-default

<action>中  name就是外部連結地址的訪問物件: http://localhost:8080/專案名/wx_方法名,這裡用了對映,wx_加上方法名就可以直接訪問指定的方法。配置這一條就夠用了。

<action>中  class指定包;

<result>內部如上就行了,data是引數名。

5.配置tomcat資料連線池。

  • 開啟專案空間內,tomcat服務配置。

  • 配置context.xml,尾行前加入
 <Resource 
	name="jdbc/DBNAME" 
	auth="Container" 
	type="javax.sql.DataSource" 
	driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
	url="jdbc:sqlserver://localhost:1533;DatabaseName=DBNAME" 
	username="sa" 
	password="123456" 
	maxActive="10" 
	maxIdle="5"/>
  • 配置web.xml
<resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/DBNAME(與context中name相對應)</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
  • 編寫後臺檔案HelloWord
	public String data="";  //返回引數data,與context中配置名相同
	
	@Override
	public String execute () throws Exception{
			System.out.println("正在執行Action!");
			return SUCCESS;
	}
	
	
	public String getDB() throws SQLException{
		 Connection dbConn=null;
		 String username="";
		 try {
			      HttpServletRequest request = ServletActionContext.getRequest();  //獲取請求頭
				 String phoneNum=(String)request.getParameter("phoneNum");   //獲取引數phoneNum與微信前臺傳入引數
          System.out.println("獲取引數手機號:"+phoneNum);
         Context ctx=new InitialContext();
				 DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/DNAME");
				 dbConn=ds.getConnection();
                                 //以上獲取context中配置的資料庫連線
           System.out.println("成功連線資料庫");
           String sql="select * from app_user where sjh= ?";
				 PreparedStatement pstmt = dbConn.prepareStatement(sql);
				 pstmt.setString(1, phoneNum);
				 ResultSet rs =  pstmt.executeQuery();
				 while(rs.next()){
					 username=rs.getString("yhm");
				 }
                                 //以上根據手機號獲取姓名 (JDBC)
               } catch (Exception e) {

		 e.printStackTrace();

		 }finally{
			 dbConn.close();
		 }

		 JSONObject obj=new JSONObject(); 
		 obj.put("name", username);
		 data=obj.toString();
               //以上將值賦予data,返回成功。
                return SUCCESS;
	}
	
6.測試

     前臺成功根據手機號讀出使用者名稱:

     後臺成功獲取引數,並連線資料庫

7.總結

主要就是配置了servlet和資料庫連線池,還有針對小程式的一些特殊點;

如果是自己本來就做java web專案,這種後臺估計都不用配了。這部分內容對於前端比較陌生,所以這裡寫一下。

如有錯誤和改進,請提出,謝了。

相關推薦

程式JAVA後臺配置[完整]

這裡先明確幾點:小程式前後臺是分離的,前臺用微信開發者工具開發,後臺使用自己的技術開發;我這裡用的是JAVA剛瞭解到上面那一點的時候,很奇怪,這不是跨域訪問麼?怎麼可以?後來查詢了資料,知道是小程式前臺 —>微信後臺—>你的後臺。基於上一點,必然要保證訪問的安全性

微信程式+java後臺

          開發一個微信小程式需要https域名以及伺服器         1. 進入微信公眾平臺https://

微信程式+java後臺實現登入(java操作)

登入,在微信小程式上面稱為當一個使用者使用該小程式,進入到小程式中,我們拿到該使用者的資訊,進行一系列的操作,並記錄下來。 微信小程式與java介面實現登入操作,大致思路如下: 1.微信小程式端通過呼叫對應的api,將對應的變數傳入後臺(code、iv、encr

微信程式+java後臺實現支付(java操作)

支付,在微信小程式上面稱為當一個使用者使用該小程式,當進入到支付環節,我們需要呼叫微信支付介面過程,進行一系列的操作,並記錄下來。 微信小程式與java介面實現支付操作,大致思路如下: 1.微信小程式呼叫Java後臺方法獲取引數, 2.java 後臺設定引數等並

程式前端)微信程式-畢設級專案搭建(內含原始碼,微信程式+java邏輯後臺+vue後臺管理系統+MySQL資料庫)~不求完美,實現就好

一、環境搭建 參考教程:https://blog.csdn.net/u012888052/article/details/79623229 二、根據上方教程新建的專案,編寫對應程式         第一次做的小程式,是一款閱讀器軟體,包括了簡單的文章瀏覽、歷史回顧、簽到

微信程式----編寫後臺服務介面配置檔案

編寫後臺服務介面配置檔案 const basePath = 'http://test.cdbhbc.com/wbgapi'; const urlList = { // 重新整理token

程式後臺介面封裝

小程式的程式碼結構和app很相似,基本操作都是前端js邏輯就能搞定,然後就是和後臺進行資料交換。 新建一個api目錄,建一個index.js專門處理介面的檔案 2.封裝一個fetch函式 import config from '../config'; let apiPath =

程式: 域名配置

1. 問題     在小程式中,如果我們沒有在微信公眾平臺: 配置 https開頭的、備案過的域名話,呼叫該域名下的介面,就會報錯     當然: 如果只是簡單的學習下小程式使用的話,可以不校驗域名 — 微信開發者工具中: 詳情 — 打鉤: 不校驗合法域名、web-

微信程式 | app.json配置屬性

    app.json 檔案用來對微信小程式進行全域性配置,決定頁面檔案的路徑、視窗表現、設定網路超時時間、設定多 tab 等。 widows: 用於設定小程式的狀態列、導航條、標題、視窗背景色。 navigationBarBackgroundColor 導航條背景顏色可用 十六

微信程式Nginx-SSL配置

方法/步驟   首先,你要有SSL證書,前提得申請一個域名。什麼?你不會申請?那你的去問問度娘咯~ 在域名註冊商(我是用的騰訊雲),選擇雲產品-域名服務,你會看到SSL證書管理,沒錯,就是它,點它。   接著選擇申請證書(免費版的DVSSL證書) &nb

微信程式lianc++後臺

貼上微信小程式傳送http請求程式碼: onsend: function(){ wx.request({ url: 'http://127.0.0.1:1000', //c++後臺ip、埠 data: { x: '1' ,

微信程式開發——全域性配置詳細介紹

本文針對官方文件未說明清楚的進行詳細探索研究,官方文件詳見:全域性配置 。 pages: 刪除頁面,需要先刪除app.json中pages對應頁面的路徑,再去刪除頁面相關的所有檔案,不然會出現頁面檔案混亂。 window: 用於設定小程式的狀態列、導航條、標題、視窗背景色:  

程式——阿里伺服器配置https及什麼是IIS

1.申請域名:阿里雲 2.免費開啟SSL證書:管理=》免費開啟SSL證書》單域名》dev.xxx.top 3.配置伺服器:下載=》IIS7證書 *註冊一個域名,可以免費開啟一個https域名; *一個服務,只能一個https 域名;多個https域名需要單獨配置;  什麼是IIS? &nb

微信程式合法域名配置-不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書

微信小程式合法域名配置-不校驗合法域名、web-view(業務域名)、TLS 版本以及 HTTPS 證書 很多教程說按照以上方式呼叫即可。但是當我們在程式中實際呼叫以上程式時,就會報錯, http://14.116.211.92:8099 不在以下 request 合法域名列表中,請參考文件

程式的支付的完整程式碼(php)

小程式的支付的完整程式碼(php) 下面為後臺程式碼 function pay(){ $openid = "使用者的openid" $money ="需要支付的金額" ; // (!$lawyer_id) &&am

微信程式後臺API通訊

1、微信小程式不能直接訪問後臺的介面。 2、通過內網穿透實現,暴漏到公網。 3、這裡使用的工具是 ngrok.com 使用ngrok進行內網穿透 1、開啟https://dashboard.ngrok.com,註冊賬號登陸,download 下載適合自己電腦的。

微信程式上傳圖片檔案 程式+Java

小程式程式碼: chooseImage(){ wx.chooseImage({ success: function (res) { var tempFilePaths = res.tempFilePaths wx.up

程式——對後臺返回的資料新增新的欄位

如二維陣列,想要將每一條資料的末尾加新的一列。做法直接命名並賦值。 var type = "food"; for (i = 0; i < res.data.length; i++) { res.data[i].type = type; } 有試過報t

程式釋出 一 配置伺服器域名

step 1 2018.11.5 小程式資訊:補充小程式的基本資訊,如名稱、圖示、描述等   √ 新增開發者 : 新增開發者,進行程式碼上傳  √ 在開發設定頁面檢視AppID和AppSecret,配置伺服器域名  50% 阿里雲購買雲伺服器 ECS √ 阿里雲購買域

關於微信程式接受後臺json資料漢字變成問號

   最近做微信小程式開發,發現後臺傳來的json資料裡面的中文全變成了“?”    如下圖:          上網找也沒找到解決方法,後來經過自己除錯半天,突然就解決了,解決方案如下圖所示:           把 請求,響應的編碼格式和型別的語句 都放在  Pri