首先创建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();
}
}
分享到:
相关推荐
模拟登录是指通过编程方式自动登录到一个网站,通常是通过发送HTTP请求,模拟用户填写表单并提交的过程。在这个场景中,我们关注的是POST请求,因为大多数登录表单会通过POST方法提交数据,以确保数据的安全性。 ...
6. **模拟浏览器行为**: 为了使模拟登录更接近真实用户,我们可能需要复制浏览器的一些行为,比如设置User-Agent,处理Referer字段,以及处理其他可能影响登录的HTTP头。 7. **持久化会话**: 如果登录成功,我们...
我们可以使用 Java 语言来发送 HTTP 请求,并将 Cookie 信息写入到 HTTP 头部中,以便模拟用户的登陆行为。 Java 模拟 Cookie 登陆的实现 下面是一个简单的 Java 模拟 Cookie 登陆的示例代码: ```java import ...
模拟登录是指通过编程方式自动执行登录过程,通常是通过发送HTTP请求到服务器,模拟用户填写表单并提交。在这个项目中,主要涉及的技术是HTTP协议和POST请求。 1. **HTTP协议**:HTTP(超文本传输协议)是互联网上...
在Java编程中,HTTPURLConnection是Java标准库提供的一种用于处理HTTP连接的类...通过这种方式,即使没有浏览器环境,也能模拟登录状态,爬取登录后的内容。同时,注意处理各种可能的异常情况,确保网络请求的健壮性。
在信息技术领域,模拟登录是一种常见的技术手段,它允许开发者或自动化测试工具模拟用户登录到特定网站,以便进行数据抓取、功能测试或自动化任务执行。本篇将深入探讨如何使用Java语言来实现模拟百度登录的过程。 ...
3. **构建POST请求**:在获取到表单数据后,我们需要构建一个POST请求来模拟用户填写表单并提交的过程。这通常涉及到创建`HttpURLConnection`或使用第三方库如Apache HttpClient或OkHttp。在请求头中设置"Content-...
在本文中,我们将深入探讨如何使用Java在Android平台上实现模拟登录知乎并抓取用户信息的过程。这个过程涉及网络请求、HTTP协议、数据解析以及JSON理解等多个关键知识点。 首先,我们需要了解的是Android的网络访问...
5. **发送登录请求**:执行POST请求,模拟用户提交登录表单。 6. **处理登录响应**:接收服务器返回的响应,检查是否登录成功。这可以通过检查重定向URL、特定的HTML内容或Cookie来判断。 7. **后续抓取**:如果...
模拟登录是网络爬虫或自动化测试中常见的技术,它允许程序以用户的身份与网站交互。对于Java开发者来说,理解这一过程对于构建自动化工具或者数据抓取项目是至关重要的。 首先,我们需要了解HTTP协议的基础知识,...
在本文中,我们将深入探讨如何使用Java来模拟微信Web登录平台,从而实现微信机器人的功能。微信机器人可以自动处理微信消息、执行特定任务,如自动回复、群管理等,这在许多场景下都非常实用。 首先,我们需要理解...
- 模拟登录成功:如果登录成功,我们可以使用保存的Cookie继续后续的请求,模拟用户已登录的状态。 6. **获取QQ空间说说**: - 分析页面结构:登录后,我们需要分析QQ空间的HTML页面,找到展示说说的部分。Jsoup...
2. **构造请求**:使用Java的HttpURLConnection或HttpClient库,构造一个与登录页面相同的POST请求。设置请求头(如User-Agent),添加必要的Cookie信息,以及填充用户名和密码。 3. **发送请求并处理响应**:发送...
模拟登录是指通过编程方式模拟用户在浏览器中进行登录操作,这通常涉及到向服务器发送登录请求,携带用户名、密码等认证信息。在这个过程中,我们需要了解HTTP协议,尤其是POST请求的使用,因为大多数登录操作是通过...
在本文中,我们将深入探讨如何使用Java来模拟微信登录并实现获取粉丝以及主动推送信息的功能。这个主题涉及到多个Java编程和微信开发的知识点,包括网络通信、JSON解析、OAuth认证等。 首先,我们要理解微信API的...
首先,理解模拟登录的基本原理:通过编程的方式,模拟用户在浏览器上填写表单、点击登录按钮的过程,向服务器发送登录请求并接收响应。在Java中,我们可以使用HttpURLConnection、HttpClient或Apache的OkHttp等库来...
在Android平台上,模拟登录学校教务网站是一项常见的需求,尤其对于开发者来说,它涉及到网络通信、数据解析以及可能的图像处理等技术。本项目“android模拟登录学校教务网站的小demo”提供了一个实用的示例,帮助...
6. **实现会话维持**:通过保存和在每个请求中附带cookies,我们可以模拟用户已登录的状态,进行如浏览、发帖等操作。 7. **使用Jsoup解析网页**:在Java中,`Jsoup`库可以帮助我们解析登录后的HTML页面,查找我们...
在Android开发中,模拟登录评论CSDN是一个常见的任务,主要涉及到网络请求、JSON解析以及UI交互等技术。本文将详细讲解如何实现这一功能,并结合`WellTestDemo`项目进行阐述。 首先,我们需要理解Android应用的基本...
因此,我们需要了解JSON并使用Gson、Jackson或org.json等库解析JSON,提取出重要的Cookie信息,例如session_id和cookie_token,这些都是保持用户登录状态的关键。 关于Cookie管理,Android系统并没有内置的Cookie...