概要:
基于上次軟體設計本着界面簡潔、易于使用的初衷,進行功能的實作,代碼位置:https://github.com/LinZezhong/testDemo
第一部分:軟體的使用
注冊:
登入: 主界面(所有社團顯示): 點選社團,将跳到社團申請頁面: 點選申請加入,即可送出申請 如果申請過該部門,将會提示“已申請過了" 點選主界面”個人“,檢視修改個人資訊 點選主界面”稽核“,顯示自己有權限稽核的社團部門 點選相應部門,出現相應需要處理的部門申請: 點選, 點送出,完成該申請的稽核 此時,201521121076使用者點選”我的申請“,檢視自己的申請 點選,出現自己的申請結果及通知第二部分:代碼實作(采用http資料傳輸)
用戶端采用的是Eclipse編輯
結構如下:
伺服器端被我架設在雲伺服器上,使用MyEclipse+Tomcat+MySQL
MyEclipse:
思路:根據用戶端的不同功能要求連接配接到伺服器端的不同servlet上,有servlet調用相應的MySQL操作方法獲得相應的資料,分裝成JSON資料傳輸到用戶端。
用戶端:
使用UrlConnection以post方式向伺服器端發送請求。
請求方法:
public class GetPostUtil {
public static final String urlBase="http://111.230.230.93:8080/LinkMySQL/servlet/";
public static String sendPost(String url,String params){
PrintWriter out = null;
BufferedReader in = null;
String json=null;
try {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
//設定通用的請求屬性
conn.setRequestProperty("accept","*/*");
conn.setRequestProperty("connecttion","Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1)");
//發送post請求必須設定的兩行
conn.setDoOutput(true);
conn.setDoInput(true);
//擷取URLConnection對象對應的輸出流
out = new PrintWriter(conn.getOutputStream());
//發送請求參數
out.print(params);
//flush緩沖流的緩沖
out.flush();
//定義BufferdReader輸入流來讀取URL的響應
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
InputStream is = conn.getInputStream();
json = netUtil.readString(is);
return json;
} catch (Exception e) {
System.out.println("發送post請求出現異常!"+e);
e.printStackTrace();
}
finally{
try{
if(out !=null){
out.close();
}
if(in != null){
in.close();
}
}
catch(IOException e){
e.printStackTrace();
}
}
return json;
}
}
伺服器回傳的資料轉化為json字元串方法:
public class netUtil {
public static byte[] readBytes(InputStream is){
try {
byte[] buffer = new byte[1024];
int len = -1 ;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while((len = is.read(buffer)) != -1){
baos.write(buffer, 0, len);
}
baos.close();
return baos.toByteArray();
} catch (Exception e) {
e.printStackTrace();
}
return null ;
}
public static String readString(InputStream is){
return new String(readBytes(is));
}
}