`
codeone
  • 浏览: 45455 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HttpURLConnection模拟用户登录

    博客分类:
  • java
 
阅读更多

首先创建2个servlet,一个负责用户登录并将username保存在session中,另一个负责从session中获取username并返回给客户端.

 

LoginServlet:

 

public class LoginServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req,resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		PrintWriter out = resp.getWriter();
		req.getSession().setAttribute("username","zhangsan");
		out.print("OK");
		out.flush();
		out.close();
	}
}

 

QueryServlet:

 

public class QueryServlet extends HttpServlet{
	@Override
	public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		 doPost(req,resp);
	}

	@Override
	public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		PrintWriter out = resp.getWriter();
		 if(req.getSession()==null){
			 out.print("sessioni is null");
		 }
		 else{
			 out.print("userid : "+req.getSession().getAttribute("username"));
		 }
		out.flush();
		out.close();
	}
}

 

HttpURLConnection模拟用户登录的代码如下:

 

public class Test1 {

	private String sessionId;

	private String sessionUrl = "http://127.0.0.1:8088/session/servlet/login";

	private String queryUrl = "http://127.0.0.1:8088/session/servlet/query";

	public void login() throws Exception {
		URL url = new URL(sessionUrl);
		HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
		InputStream inputStream = urlConnection.getInputStream();
		String session_value = urlConnection.getHeaderField("Set-Cookie");
		sessionId = session_value.split(";")[0];
		byte[] byte_result = new byte[inputStream.available()];
		inputStream.read(byte_result);
		String result = new String(byte_result);
		System.out.println("result = " + result);
		inputStream.close();
	}

	public void queryUser() throws Exception {
		URL url = new URL(queryUrl);
		HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
		urlConnection.setRequestProperty("Cookie", sessionId);
		InputStream inputStream = urlConnection.getInputStream();
		byte[] byte_result = new byte[inputStream.available()];
		inputStream.read(byte_result);
		String result = new String(byte_result);
		System.out.println("result = " + result);
		inputStream.close();
	}

	public static void main(String[] args) throws Exception {

		Test1 test1 = new Test1();
		test1.login();
		test1.queryUser();

	}
}
 

 

分享到:
评论

相关推荐

    用HttpClient来模拟浏览器GET POST

    所访问的这些页面有的仅仅是一些普通的页面,有的需要用户登录后方可使用,或者需要认证以及是一些通过加密方式传输,例如HTTPS。目前我们使用的浏览器处理这些情况都不会构成问题。不过你可能在某些时候需要通过...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    Google Android SDK开发范例大全的目录

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    Google+Android+SDK开发范例大全

    ) 2.3 Android应用程序架构——从此开始 2.4 可视化的界面开发工具 2.5 部署应用程序到Android手机 第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字...

    Google Android SDK 开发范例大全01

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    Google Android SDK 开发范例大全02

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    Google Android sdk 开发范例大全 部分章节代码

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    Google Android SDK开发范例大全(完整版)

    第3章 用户人机界面 3.1 更改与显示文字标签——TextView标签的使用 3.2 更改手机窗口画面底色——drawable定义颜色常数的方法 3.3 更改TextView文字颜色——引用Drawable颜色常数及背景色 3.4 置换TextView文字——...

    HttpClient以及获取页面内容应用

    * post方式提交表单(模拟用户登录请求) */ public void postForm() { // 创建默认的httpClient实例. CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httppost ...

Global site tag (gtag.js) - Google Analytics