⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xueshengcjscreen.java

📁 手机的联网应用
💻 JAVA
字号:
package cn.com.javachen;

import java.util.Hashtable;

import javax.microedition.io.Connector;
import javax.microedition.io.HttpConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;

public class XueShengCJScreen extends Form implements CommandListener, Runnable {
	private HomeReceiveMidelt hrMidelt;

	private Command backCommand = new Command("返回", Command.BACK, 1);
	

	private Command chaXunCommand1 = new Command("第一学期", Command.SCREEN, 1);

	private Command chaXunCommand2 = new Command("第二学期", Command.SCREEN, 1);

	private Command chaXunCommand3 = new Command("第三学期", Command.SCREEN, 1);

	private Command chaXunCommand4 = new Command("第四学期", Command.SCREEN, 1);

	private Command chaXunCommand5 = new Command("第五学期", Command.SCREEN, 1);

	private Command chaXunCommand6 = new Command("第六学期", Command.SCREEN, 1);

	private Command chaXunCommand7 = new Command("第七学期", Command.SCREEN, 1);

	private Command chaXunCommand8 = new Command("第八学期", Command.SCREEN, 1);

	private int choiceId;

	private int cx;

	private String[] str;

	private Settings set;		

	private StringTokenizer st;

	public XueShengCJScreen(HomeReceiveMidelt hrMidelt, Settings set) {
		super("学生成绩:");
		this.hrMidelt = hrMidelt;
		this.set = set;
		choiceId = 1;
		cx = 0;
		str = new String[1024];
		
		this.append("欢迎使用成绩查询系统!");
		addCommand(backCommand);
		addCommand(chaXunCommand1);
		addCommand(chaXunCommand2);
		addCommand(chaXunCommand3);
		addCommand(chaXunCommand4);
		addCommand(chaXunCommand5);
		addCommand(chaXunCommand6);
		addCommand(chaXunCommand7);
		addCommand(chaXunCommand8);

		setCommandListener(this);
	}

	public void commandAction(Command arg0, Displayable arg1) {
		// TODO Auto-generated method stub
		cx += 1;
		if (cx == 1) {
			clearForm(this);
		}
		if (arg0 == backCommand) {
			hrMidelt.mainMenuScreenShow(null);
			return;
		} else if (arg0 == chaXunCommand1) {
			choiceId = 1;
			Thread thread = new Thread(this);
			thread.start();
		} else if (arg0 == chaXunCommand2) {
			choiceId = 2;
			Thread thread = new Thread(this);
			thread.start();
		} else if (arg0 == chaXunCommand3) {
			choiceId = 3;
			Thread thread = new Thread(this);
			thread.start();
		} else if (arg0 == chaXunCommand4) {
			choiceId = 4;
			Thread thread = new Thread(this);
			thread.start();
		} else if (arg0 == chaXunCommand5) {
			choiceId = 5;
			Thread thread = new Thread(this);
			thread.start();
		} else if (arg0 == chaXunCommand6) {
			choiceId = 6;
			Thread thread = new Thread(this);
			thread.start();
		} else if (arg0 == chaXunCommand7) {
			choiceId = 7;
			Thread thread = new Thread(this);
			thread.start();
		} else if (arg0 == chaXunCommand8) {
			choiceId = 8;
			Thread thread = new Thread(this);
			thread.start();
		}

	}

	private void chaXun(int choiceId) {
		// TODO Auto-generated method stub
		// clearForm(this);
		
		HTML_HttpConnectionHandlerImpl handler = new HTML_HttpConnectionHandlerImpl();

		try {
			String host = set.getUrlString().toString().trim();
			String port=set.getPort().toString().trim();
			String url = "http://" + host + ":"+port+"/test/chaxun.jsp?lianxifangshi="
					+ set.getPassword().toString().trim() + "&xingming="
					+ URLEncoder.encode(set.getName().toString().trim(),"utf-8")+ "&xueqi=" + choiceId;
			
			
//			String message = "lianxifangshi="
//					+ set.getPassword().toString().trim() + "&xingming="
//					+ set.getName().toString().trim()+ "&xueqi=" + choiceId;
//			String mess = new String(message.getBytes("gb2312"), "iso8859-1");
			HttpConnection conn;
			int cmnet=set.getCmnet();
			System.out.print(cmnet);
			if (cmnet==0) {
				conn = (HttpConnection) Connector.open(url);
//				conn = (HttpConnection) Connector.open(url + '?' + message);
				// DataOutputStream dos = conn.openDataOutputStream();
				// dos.write(mess.getBytes("utf-8"));
				// dos.flush();
				conn.setRequestProperty("Accept-Charset" , "utf-8") ;
				Waitting wait = new Waitting(true, hrMidelt, this);
				Display.getDisplay(hrMidelt).setCurrent(wait);
				while (conn.getResponseCode() != HttpConnection.HTTP_OK) {
				}
				wait.exit();
				Display.getDisplay(hrMidelt).setCurrent(this);

			} else  {
				conn = (HttpConnection) Connector.open("http://10.0.0.172"
						+ "/test/chaxun.jsp?lianxifangshi="
						+ set.getPassword().toString().trim() + "&xingming="
						+ URLEncoder.encode(set.getName().toString().trim(),"utf-8") + "&xueqi="
						+ choiceId);
				 conn.setRequestProperty("X-Online-Host", host+":"+port);

			}

			if (conn.getResponseCode() == HttpConnection.HTTP_OK) {
				// System.out.println("建立连接成功");

				Hashtable requestHeaderPair = new Hashtable();

				requestHeaderPair.put(HTML_HttpConnectionHandlerImpl.RQH_HOST,
						host);
				requestHeaderPair.put(
						HTML_HttpConnectionHandlerImpl.RQH_CONTENT_TYPE,
						"application/octet-stream");
				requestHeaderPair.put(
						HTML_HttpConnectionHandlerImpl.RQH_CONTENT_LANGUAGE,
						"en-US");
				requestHeaderPair.put(
						HTML_HttpConnectionHandlerImpl.RQH_ACCEPT,
						"application/octet-stream");
				requestHeaderPair.put(
						HTML_HttpConnectionHandlerImpl.RQH_CONNECTION_OPTION,
						"Keep-Alive");
				// conn.setRequestProperty("User-Agent","Profile/MIDP-1.0
				// Configuration/CLDC-1.0" );
				handler.putRequestHeader(conn, requestHeaderPair);
				handler.setRequestMethod(conn, HttpConnection.GET);
				handler.sendRequestData(conn, "GET / HTTP/1.1");
				if (conn.getResponseCode() == HttpConnection.HTTP_OK) {
					System.out.println("发送请求成功");

					System.out.println("获得回应数据");
					String reponseData = (String) handler.getResponseData(conn);
					
					byte[] ccc = reponseData.getBytes("utf-8");					
					for (int i = 0; i < ccc.length; i++)
						System.out.print(Integer.toHexString((ccc[i])) + " ");
					System.out.print(reponseData);
					String reponse=new String(ccc,"utf-8");
					st = new StringTokenizer(reponse.toString().trim(),
							"\r\n\f\t");
					this.append("第" + choiceId + "学期:" + "\n");
					for (int i = 0; st.hasMoreTokens(); i++) {// 取其中的字符串用作list
						str[i] = st.nextToken();						
						this.append(unexpandString(str[i]) + "\n");
					}
//					this.append(unexpandString(reponse));
					// System.out.println(reponseData);
					// this.append("第"+choiceId+"学期");
					// this.append(reponseData);
					Display.getDisplay(hrMidelt).setCurrent(this);
				} else {
					System.out.println("发送请求失败");
					System.out.println("错误信息:" + handler.getMessage());
				}
			} else {
				append("发送失错了");
				System.out.println("建立连接失败");
			}
		} catch (Exception ex) {
			clearForm(this);
			append("发送失败");
			System.out.println("错误信息:" + handler.getMessage());
			ex.printStackTrace();
		}

	}

//	private String toUTF8(String string) {
//		// TODO 自动生成方法存根
//		String DataType="gbk";
//		if(set.getDataType()==0){
//			DataType="gbk";
//		}else if(set.getDataType()==1){
//			DataType="utf8";
//		}else if(set.getDataType()==2){
//			DataType="iso8859-1";
//		}
//		String sTemp = null;
//		String str = null;
//		try { // System.getProperty("microedition.encoding")得到手机默认的编码格式
//			sTemp = new String(string.getBytes(System
//					.getProperty("microedition.encoding")), DataType);
////			sTemp = new String(string.getBytes("utf-8"), DataType);
//			System.out.print("编码为:"
//					+ System.getProperty("microedition.encoding"));
//			// sTemp = new String(str.getBytes(),"UTF-8");
//			byte[] gbk = sTemp.getBytes("utf-8");
//			str = new String(gbk, "utf-8");
//			for (int i = 0; i < gbk.length; i++)
//				System.out.print(Integer.toHexString((gbk[i])) + " ");
//			System.out.print(sTemp);
//		} catch (java.io.UnsupportedEncodingException ex) {
//		}
//
//		return str;
//	}

	private void clearForm(Form f) {
		int sz = f.size();
		while (sz > 0) {
			f.delete(--sz);
		}
	}

	public void run() {
		// TODO Auto-generated method stub
		chaXun(choiceId);
	}

//	private String urlEncode(String s) {
//		StringBuffer sb = new StringBuffer();
//		for (int i = 0; i < s.length(); ++i) {
//			switch (s.charAt(i)) {
//			case ' ':
//				sb.append("%20");
//				break;
//			case '+':
//				sb.append("%2b");
//				break;
//			case '\'':
//				sb.append("%27");
//				break;
//			case '<':
//				sb.append("%3c");
//				break;
//			case '>':
//				sb.append("%3e");
//				break;
//			case '#':
//				sb.append("%23");
//				break;
//			case '%':
//				sb.append("%25");
//				break;
//			case '{':
//				sb.append("%7b");
//				break;
//			case '}':
//				sb.append("%7d");
//				break;
//			case '\\':
//				sb.append("%5c");
//				break;
//			case '^':
//				sb.append("%5e");
//				break;
//			case '~':
//				sb.append("%73");
//				break;
//			case '[':
//				sb.append("%5b");
//				break;
//			case ']':
//				sb.append("%5d");
//				break;
//			default:
//				sb.append(s.charAt(i));
//				break;
//
//			}
//		}
//		return sb.toString();
//
//	}
	private String unexpandString(String s) {
		if (s == null)
			return null;
		StringBuffer result = new StringBuffer();
		int saveI, i, ch;
		for (i = 0; i < s.length(); i++) {
			if ((ch = s.charAt(i)) == '\\') {
				if (s.length() > i + 1 && s.charAt(i + 1) == 'u') {
					saveI = 1;
					i += 2;
					while (s.length() > i && s.charAt(i) == 'u') {
						i++;
					}
					if (s.length() >= i + 4) {
						ch = Integer.parseInt(s.substring(i, i + 4), 16);
						i += 3;

					} else {
						i = saveI;
					}
				}
			}
			result.append((char) ch);
		}
		return result.toString();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -