- 浏览: 455820 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (229)
- gef (1)
- emf (0)
- rcp (2)
- 杂谈 (3)
- draw2d (2)
- xml (1)
- spring (16)
- osgi (1)
- jsp (6)
- hibernate (8)
- j2se (41)
- oracle (25)
- js (23)
- ognl (1)
- struts2 (2)
- webwork (1)
- prototype (1)
- dwr (3)
- struts (7)
- axis2 (3)
- axis1 (6)
- lucene (9)
- pop3 (1)
- aspectj (1)
- 网络协议 (6)
- bat (6)
- Quartz (5)
- jms (3)
- jndi (7)
- 网络爬虫 (7)
- acegi (1)
- linux (5)
- 缓存 (1)
- mysql (1)
- 在使用Java处理图形应用时,经常有人推荐设置 -Djava.awt.headless=true,具体含义和效果查了一下,记录在这里分享 Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。 Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主 (1)
最新评论
-
hanmiao:
注释掉的那壹行少了壹個斜线,楼主...
servlet导出excel -
天下无贼:
Thread.Interrupt方法,只是通过扔出异常的方式, ...
Java Thread.interrupt 害人! 中断JAVA线程(zz) -
天下无贼:
呵呵,是你自己写错了。
Java Thread.interrupt 害人! 中断JAVA线程(zz) -
MO_ZHUANG_D:
如果是真的就感激不尽了
Axure RP教程 -
小嘴冰凉:
在开始执行的时候,如果是数据库存储,程序会从数据库中查job信 ...
quartz的持久化
TestServlet.java package nj.servlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class TestServlet extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response){ HttpSession session=request.getSession(); String str=(String)session.getAttribute("name"); System.out.println("name:"+str); session.setAttribute("name", "nj"); /*String ss=request.getHeader("Cookie"); System.out.println("session id:"+ss);*/ } public void doGet(HttpServletRequest request,HttpServletResponse response){ this.doPost(request, response); } } TestServlet.java package nj.ws.test; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.List; import java.util.Map; import java.util.Set; public class TestConnection { public static void main(String[] args){ //第一次连接,返回session id String sessionId=testUrlConnection(); //第二次使用session id连接 connectionBySession(sessionId); } public static String testUrlConnection(){ String urlStr="Http://localhost:8080/WebServiceProject/testServlet"; OutputStream out=null; InputStream in=null; try { URL url=new URL(urlStr); HttpURLConnection con=(HttpURLConnection)url.openConnection(); con.setRequestMethod("POST"); //打印请求头信息 Map hfs=con.getHeaderFields(); Set<String> keys=hfs.keySet(); for(String str:keys){ List<String> vs=(List)hfs.get(str); System.out.print(str+":"); for(String v:vs){ System.out.print(v+"\t"); } System.out.println(); } System.out.println("-----------------------"); String cookieValue=con.getHeaderField("Set-Cookie"); System.out.println("cookie value:"+cookieValue); String sessionId=cookieValue.substring(0, cookieValue.indexOf(";")); return sessionId; } catch (Exception e) { e.printStackTrace(); return null; }finally{ try { if(in!=null) in.close(); if(out!=null) out.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void connectionBySession(String sessionId){ InputStream in=null; try{ String url="Http://localhost:8080/WebServiceProject/testServlet"; URL u=new URL(url); HttpURLConnection con=(HttpURLConnection)u.openConnection(); con.setRequestMethod("POST"); con.setRequestProperty("Cookie", sessionId); in=con.getInputStream(); }catch(Exception e){ e.printStackTrace(); }finally{ try { if(in!=null) in.close(); } catch (IOException e) { e.printStackTrace(); } } } } 运行后打印结果: Web服务端: name:null name:nj 测试类打印: null:HTTP/1.1 200 OK Content-Length:0 Set-Cookie:JSESSIONID=7827696933343BC5005E5244369CB2A8; Path=/WebServiceProject Date:Mon, 01 Dec 2008 03:16:30 GMT Server:Apache-Coyote/1.1 ----------------------- cookie value:JSESSIONID=7827696933343BC5005E5244369CB2A8; Path=/WebServiceProject
发表评论
-
java泛型中的上界下界(上限下限) (转)
2013-01-23 18:02 1084java泛型中的super关键字不太常用,也不太好理解,今天又 ... -
Ant中过滤器的使用
2011-12-07 20:06 998Ant中过滤器的使用 <?xml version=&q ... -
将实体声明和实体引用读入 DOM
2011-06-17 17:10 1287实体是一个声明,指定 ... -
多线程编程 实战篇 (四)
2010-12-07 17:48 1026[线程的中断] 不客气地 ... -
Java Thread.interrupt 害人! 中断JAVA线程(zz)
2010-12-07 17:42 3741程序是很简易的。然而,在编程人员面前,多线程呈现出了一组新的难 ... -
Flex+%2B+LCDS+%2B+Java+入门教程
2010-09-03 16:07 854Flex+LCDS+Java+入门教程 -
Flex完全自学入门手册
2010-09-03 13:08 887http://lichen.blog.51cto.com/69 ... -
java 5 多线程sun教程
2010-05-21 10:43 1180http://gceclub.sun.com.cn/Concu ... -
ibm的nio教程
2010-04-12 18:13 1145ibm的nio教程 -
cas单点登陆
2009-12-17 17:05 834http://blog.csdn.net/DL88250/ar ... -
CAS项目实践
2009-12-17 16:40 1140目的:使用单点登录系 ... -
Tomcat SSL配置大全
2009-12-17 16:13 1129由于配置CAS的单点登陆系统,需要先配置Tomcat的SSL, ... -
Thread.getContextClassLoader() 详解
2009-12-17 12:24 1200答 : 这个问题经常出现在编写框架代码 , 需要动态加载很多类 ... -
Session知识共享
2009-12-09 17:02 954摘要:虽然session机制在 ... -
跨应用程序的session共享
2009-12-09 15:03 2352原创 跨应用程序的session共享 收藏 常常有这样的情况 ... -
HTTP代理如何正确处理Cookie
2009-12-09 14:15 1540大多数的 Web 应用程序 ... -
使用HttpURLConnection获得重定向地址
2009-12-09 09:37 1792今天跟TiGERTiAN谈到HttpURLConnec ... -
java多线程之 wait(),notify(),notifyAll()
2009-12-01 11:38 945java多线程之 wait(),notify(),notify ... -
Callable 和 Future
2009-12-01 11:28 1705天在书上看到callable和future这个两个东东,以前没 ... -
重载和覆盖
2009-11-17 10:02 869override可以翻译为覆盖,从字面就可以知道,它是覆盖了一 ...
相关推荐
使用Apache HttpClient库可以更方便地处理session共享,因为它提供了更强大的功能和更好的API,但基本原理相同:保存和发送Cookie以保持会话状态。如果你的项目已经包含了HttpClient库,可以考虑使用它来替代...
在Android开发中,当使用HttpURLConnection与Web服务器进行通信时,常常遇到的一个问题是无法正确保持session,导致每次请求都被服务器视为新的独立会话。这主要由于HTTP协议本身的无状态特性,以及Android客户端与...
需要注意的是,这种方式适用于简单的Cookie管理,如果服务器使用了更复杂的会话管理机制(如Session ID),可能需要额外的处理。同时,随着HTTPS的普及,考虑使用OkHttp这样的第三方库,它们提供了更好的Cookie管理...
使用HttpURLConnection,我们需要设置请求方法(如`setRequestMethod("POST")`)、添加请求头(如`addRequestProperty("Cookie", "sessionID=...")`),以及写入请求体(POST数据)。在接收响应时,可以通过`...
- **直接方式**:可以通过`getHeaderField("Set-Cookie")`获取服务器返回的Cookie,然后在下一次请求时,使用`setRequestProperty("Cookie", sessionid)`设置Cookie。如下所示: ```java HttpURLConnection huc ...
其中,`request`方法用于发送网络请求,并在请求头中添加了`sessionId`作为Cookie的一部分。另外,`loginRequest`方法模拟了登录过程,并保存了Session ID。 #### 结论 通过以上分析,我们可以总结出以下几点: -...
在Android端,需要确保每次请求都携带正确的Session ID,以保持会话的连续性。 2. **PHP服务端的实现**: - 创建Session:在PHP中,`session_start()`函数用于开启或恢复一个会话。可以使用`$_SESSION`数组存储...
当用户登录成功后,服务器会将SessionID返回给客户端,客户端在后续的请求中携带这个SessionID,服务器通过检查SessionID来识别用户身份,从而实现会话保持。 在"AutoUtil"项目中,开发者巧妙地利用了这一机制。...
服务器会将Session ID与用户的会话数据关联,并在后续请求中通过Cookie回传Session ID。客户端只需保持这个Cookie,服务器就能识别出同一用户的不同请求。 为了安全,登录信息通常需要加密传输。HTTPS是一种安全的...
huc.addRequestProperty("Cookie", sessionId); // 设置Cookie头 huc.connect(); //... } } ``` 通过在请求中添加`Cookie`头,我们可以将浏览器保存的session ID传递给服务器,从而保持会话状态。这样,即使在...
除了Cookie,还有其他的会话管理方式,例如Token(如JWT)、SessionID等。它们与Cookie相比,各有优缺点,开发者需要根据应用场景选择合适的方法。 总结,理解并正确使用Cookie对于Android开发者来说至关重要,无论...
本教程将深入讲解如何在Java中实现GET和POST两种HTTP请求方法,并讨论如何处理会话(Session)以保持用户状态。 首先,让我们了解GET和POST的区别。GET请求通常用于获取资源,它将参数附加到URL上,限制了数据长度...
- 登录状态维持:登录成功后,服务器返回一个Session ID的Cookie,客户端保存并附带在后续请求中,服务器根据Session ID识别用户。 - 跨域资源共享(CORS):Cookie可以在跨域请求中发送,但需遵循特定的安全规则...
在Java中,我们可以使用`HttpURLConnection`类或者第三方库如Apache HttpClient或OkHttp来实现。这里我们可能主要使用`HttpURLConnection`,因为它是Java标准库的一部分,无需额外引入依赖。 1. **构建请求头**: ...
如果验证成功,服务器会返回一个会话ID(session ID)给客户端,用于后续的交互,以保持用户登录状态。 在实现过程中,开发者可能面临各种挑战,例如处理网络异常、防止SQL注入攻击、优化查询性能等。对于网络异常...
在完成登录后,服务器通常会返回一个包含session ID或者cookie的响应,这些信息用于后续的无状态会话。Java客户端程序需要正确处理这些信息,将其保存并在后续的网络请求中携带,以保持会话的有效性。 3. **Cookie...
4. **会话终止**:当通信结束后,会话可能会被终止,或者通过会话重用技术(如Session ID或Session Resumption)节省资源。 在Java中,处理HTTPS请求通常涉及以下关键类和方法: 1. **`javax.net.ssl.SSLContext`*...
登录成功后,服务器通常会返回一个Session ID,通常以Cookie的形式。我们需要保存这个Cookie,以便后续的请求能继续维持会话。 **6. 防反爬策略:** - 用户代理:设置合适的User-Agent,模拟浏览器行为。 - 间隔...
Android提供了`HttpURLConnection`类,但更推荐使用`OkHttp`这样的第三方库,因为它提供了更好的性能和易用性。使用OkHttp,我们可以创建一个`Request`对象,指定URL和HTTP方法(如POST或GET),然后通过`...
主要的接口包括`Session`(会话)、`Message`(消息)、`Store`(存储)和`Transport`(传输)。在使用JavaMail API之前,我们需要配置相关的属性,比如SMTP服务器地址、端口、用户名和密码等,这些可以通过`...