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

📄 httplogin.java

📁 该HttpProxy用于从Applet或Swing界面中访问Ejb和服务端的JavaBean。
💻 JAVA
字号:
/**
 * @作者: 胡俊
 * @创建时间: 2008-03-05
 * @更新时间: 2008-03-05
 * @描述: 
 * 
 */
package com.nari.pmos.proxy.client;

import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.URL;
import java.net.URLConnection;

import com.nari.pmos.amm.amm.ViewSet;
import com.nari.pmos.amm.view_amm.User_View_View;



/**
 * @author hujun
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
//备份
public class HttpLogin {

	private String jSessionId = null;

	private String httpUrl = "";

	private String user = "";

	private String pwd = "";

	private boolean isLogon = false;
	
	private int log_detail = -3; //2008-04-10

	private final ViewSet viewSet = new ViewSet();

	private final ServletLocator locator = new ServletLocator();

	/**
	 * 
	 */
	public HttpLogin() {
		super();
		// TODO Auto-generated constructor stub
	}

	public boolean logon() {
		isLogon = false;
		Integer N = new Integer(2);
		int n = -1;

		// === 通过http协议访问 servlet ===============================
		try {
			// System.out.println("httpURL: " + httpURL);
			String urlStr = httpUrl + "?proxymode=logon";
			System.out.println(urlStr);
			URL url = new URL(urlStr);
			URLConnection urlconn = url.openConnection();
			// 初始化连接
			urlconn.setUseCaches(false);
			urlconn.setDoOutput(true);
			urlconn.setDoInput(true);

			// 准备,然后向http服务器发送数据(串行化对象),http服务器由相应的servlet接收并处理
			ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
			ObjectOutputStream out = new ObjectOutputStream(byteOut);

			// Flush 数据缓冲区
			out.writeObject(N);
			out.writeObject(user);
			out.writeObject(pwd);
			out.flush();
			byte buf[] = byteOut.toByteArray();
			System.out.println("buf.length is " + buf.length);

			// 设置属性
			urlconn.setRequestProperty("Content-type",
					"application/octet-stream");
			urlconn.setRequestProperty("Content-length", "" + buf.length);

			// 发送数据(数据的流向是根据JVM来定的,此时数据从JVM中流出去)
			DataOutputStream dataOut = new DataOutputStream(urlconn
					.getOutputStream());
			dataOut.write(buf);
			dataOut.flush();
			dataOut.close();

			// System.out.println(urlconn);

			// 等待并读取服务器响应数据
			ObjectInputStream in = new ObjectInputStream(urlconn
					.getInputStream());
			// 读取数据
			jSessionId = (String) in.readObject();
			N = (Integer) in.readObject();
			n = N.intValue();
			this.setLog_detail(n); //2008-04-10
			System.out.println("n is " + n);
			viewSet.clear();
			for (int i = 0; i < n; i++) {
				User_View_View uv = (User_View_View) in.readObject();
				// System.out.println(uv);
				viewSet.add(uv);
			}
			in.close();
		} catch (Exception e) {

			e.printStackTrace();
		}
		// 处理读入的列表

		// ===========================================================
		if (n > 0) {
			locator.setUrl(this.httpUrl);
			locator.setUsrAccount(this.user);
			locator.setUsrPwd(this.pwd);
			locator.setJsessionID(this.jSessionId);
			this.isLogon = true;
		} else {
			locator.setUrl("");
			locator.setUsrAccount("");
			locator.setUsrPwd("");
			locator.setJsessionID("");
			this.isLogon = false;
		}
		return isLogon;
	}

	public void logout() {
		locator.setUrl("");
		locator.setUsrAccount("");
		locator.setUsrPwd("");
		locator.setJsessionID("");
		this.isLogon = false;
	}

	/**
	 * @return Returns the httpUrl.
	 */
	public String getHttpUrl() {
		return httpUrl;
	}

	/**
	 * @param httpUrl
	 *            The httpUrl to set.
	 */
	public void setHttpUrl(String httpUrl) {
		this.httpUrl = httpUrl;
	}

	/**
	 * @return Returns the jSessionId.
	 */
	public String getJSessionId() {
		return jSessionId;
	}

	/**
	 * @param sessionId
	 *            The jSessionId to set.
	 */
	public void setJSessionId(String sessionId) {
		jSessionId = sessionId;
	}

	/**
	 * @return Returns the pwd.
	 */
	public String getPwd() {
		return pwd;
	}

	/**
	 * @param pwd
	 *            The pwd to set.
	 */
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	/**
	 * @return Returns the user.
	 */
	public String getUser() {
		return user;
	}

	/**
	 * @param user
	 *            The user to set.
	 */
	public void setUser(String user) {
		this.user = user;
	}

	/**
	 * @return Returns the viewSet.
	 */
	public ViewSet getViewSet() {
		return viewSet;
	}

	/**
	 * @return Returns the isLogon.
	 */
	public boolean isLogon() {
		return isLogon;
	}

	public int getLog_detail() {
		return log_detail;
	}

	private void setLog_detail(int log_detail) {
		this.log_detail = log_detail;
	}
	
	/**
	 * @return Returns the locator.
	 * @描述 建议不要直接使用这个方法
	 */
	public ServletLocator getLocator() {
		return locator;
	}

	/**
	 * @return Returns the ejb Proxy.
	 * @创建日期 2008-03-05
	 */
	public Object getEjb(Class classInterface) {
		Object obj = null;
		try{
			obj = locator.locateEjb(classInterface);
		}catch(Exception e){
			//log.error("" + e.getMessage());
			obj = null;
		}
		return obj;
	}
	
	/**
	 * @return Returns the web session bean Proxy.
	 * @创建日期 2008-03-05
	 */
	public Object getBean(Class classInterface) {
		Object obj = null;
		try{
			obj = locator.locateBean(classInterface);
		}catch(Exception e){
			//log.error("" + e.getMessage());
			obj = null;
		}
		return obj;
	}
	
	/**
	 * @return Returns the web frame bean Proxy.
	 * @创建日期 2008-03-05
	 */
	public Object getFrameBean(Class classInterface) {
		Object obj = null;
		try{
			obj = locator.locateFrameBean(classInterface);
		}catch(Exception e){
			//log.error("" + e.getMessage());
			obj = null;
		}
		return obj;
	}
	
	public static void main(String[] args) {
		HttpLogin httpLogin = new HttpLogin();
		httpLogin.setUser("dev_01");// account
		httpLogin.setPwd("1");
		// httpLogin.setHttpUrl("http://127.0.0.1:8080/pmos2000/nari/ProxyServlet");
		httpLogin
				.setHttpUrl("http://127.0.0.1:8080/pmos2000/pmos2000/ProxyServlet");
		if (httpLogin.logon())
			System.out.println("logon OK!");
		else
			System.out.println("logon Failed!");

	}
}

⌨️ 快捷键说明

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