`
- 浏览:
192665 次
- 性别:
-
tomcat
java 代码
- protected synchronized String generateSessionId() {
-
- byte random[] = new byte[16];
-
-
- StringBuffer result = new StringBuffer();
- int resultLenBytes = 0;
- while (resultLenBytes < this.sessionIdLength) {
- getRandomBytes(random);
- random = getDigest().digest(random);
- for (int j = 0;
- j < random.length && resultLenBytes < this.sessionIdLength;
- j++) {
- byte b1 = (byte) ((random[j] & 0xf0) >> 4);
- byte b2 = (byte) (random[j] & 0x0f);
- if (b1 < 10)
- result.append((char) ('0' + b1));
- else
- result.append((char) ('A' + (b1 - 10)));
- if (b2 < 10)
- result.append((char) ('0' + b2));
- else
- result.append((char) ('A' + (b2 - 10)));
- resultLenBytes++;
- }
- }
- return (result.toString());
-
- }
hibernate uuid:
java 代码
- public abstract class AbstractUUIDGenerator implements IdentifierGenerator {
-
- private static final int IP;
- static {
- int ipadd;
- try {
- ipadd = BytesHelper.toInt( InetAddress.getLocalHost().getAddress() );
- }
- catch (Exception e) {
- ipadd = 0;
- }
- IP = ipadd;
- }
- private static short counter = (short) 0;
- private static final int JVM = (int) ( System.currentTimeMillis() >>> 8 );
-
- public AbstractUUIDGenerator() {
- }
-
-
-
-
-
- protected int getJVM() {
- return JVM;
- }
-
-
-
-
-
- protected short getCount() {
- synchronized(AbstractUUIDGenerator.class) {
- if (counter<0) counter=0;
- return counter++;
- }
- }
-
-
-
-
- protected int getIP() {
- return IP;
- }
-
-
-
-
- protected short getHiTime() {
- return (short) ( System.currentTimeMillis() >>> 32 );
- }
- protected int getLoTime() {
- return (int) System.currentTimeMillis();
- }
-
-
- }
-
- public class UUIDHexGenerator extends AbstractUUIDGenerator implements Configurable {
-
- private String sep = "";
-
- protected String format(int intval) {
- String formatted = Integer.toHexString(intval);
- StringBuffer buf = new StringBuffer("00000000");
- buf.replace( 8-formatted.length(), 8, formatted );
- return buf.toString();
- }
-
- protected String format(short shortval) {
- String formatted = Integer.toHexString(shortval);
- StringBuffer buf = new StringBuffer("0000");
- buf.replace( 4-formatted.length(), 4, formatted );
- return buf.toString();
- }
-
- public Serializable generate(SessionImplementor session, Object obj) {
- return new StringBuffer(36)
- .append( format( getIP() ) ).append(sep)
- .append( format( getJVM() ) ).append(sep)
- .append( format( getHiTime() ) ).append(sep)
- .append( format( getLoTime() ) ).append(sep)
- .append( format( getCount() ) )
- .toString();
- }
-
- public void configure(Type type, Properties params, Dialect d) {
- sep = PropertiesHelper.getString("separator", params, "");
- }
-
- public static void main( String[] args ) throws Exception {
- Properties props = new Properties();
- props.setProperty("separator", "/");
- IdentifierGenerator gen = new UUIDHexGenerator();
- ( (Configurable) gen ).configure(Hibernate.STRING, props, null);
- IdentifierGenerator gen2 = new UUIDHexGenerator();
- ( (Configurable) gen2 ).configure(Hibernate.STRING, props, null);
-
- for ( int i=0; i<10; i++) {
- String id = (String) gen.generate(null, null);
- System.out.println(id);
- String id2 = (String) gen2.generate(null, null);
- System.out.println(id2);
- }
-
- }
-
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
例如,当用户重新登录、应用程序池回收或者Session超时后,新的Session将被创建,从而产生一个新的Session ID。如果发现Session ID频繁变化,可能是因为配置不正确或是存在某些错误。 #### ASP与ASP.NET之间是否...
以上这篇postman模拟访问具有Session的post请求方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:Postman模拟发送带token的请求方
- `renew`:通过创建新的Session ID,删除原有的ID,并将原有Session中的数据信息更新到新的Session中; - `setFlash(string$flashMessage, string$layout='default', array$params, string$key='flash')`:将`$...
对持久对象的更动,会对数据库中的数据产生影响。(自动脏检查机制) Detached(托管状态): 1.和Session失去关联 2.数据库中有对应记录存在 3.对托管对象的更动,在托管期间不会影响数据库,但是将托管状态重新和...
SELECT sid, serial#, status FROM v$session WHERE audsid=userenv('sessionid'); ``` SID(System Identifier)和Serial#是会话的标识符,这个查询用于识别当前用户会话。 8. **查看当前数据库的字符集**: `...
解决session丢失的方法 - **设置合理的超时时间**。 - **使用Cookie保持会话ID**。 - **禁用浏览器缓存**。 - **确保HTTPS的安全性**。 #### 28. 输出"Hello, World!"的函数 - **示例代码** (C#): ```csharp ...
参考文献的引用表明了学生们在设计过程中可能参考的技术资料和教程,帮助他们在遇到问题时找到解决方案。最后,成绩评定部分是对整个设计项目的评价,包括代码质量、功能实现和文档完整性等方面。 总的来说,这个...
- **点击数/页面浏览量/独立用户数**:分别指访问页面产生的Web访问记录、网页被访问的次数以及一天内不同IP地址、UserAgent和SessionID的用户数量。 - **访问者数/平均访问时间/搜索引擎摘录量**:分别指独立用户的...
70. **session的工作原理**:服务器通过sessionID识别用户会话,客户端通过cookie保存sessionID。 71. **防范SQL注入**:使用预编译语句(PreparedStatement)、参数绑定、输入验证等方式。 72-73. **XSS与CSRF**:...
2. 由sessionfactory 产生 session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程...
假设有个bean并且通过语句设置成远程可用,有种类型的参数他本身是一个带有setter的java bean,但setter会产生严重的隐患.攻击者可能促使这隐患的发生.通过下面的语句就可以设置但个类的bean converter 要想允许转换...
A12:关联是处理动态数据的关键,例如从服务器返回的session ID。LR提供了多种关联方法,如自动关联、手动关联和正则表达式关联。我们会根据实际情况选择合适的方法,确保每个请求都能正确地使用前一个请求产生的...
例如,如果你想获取通过GET方法传递的参数,以前可能写成`$id = $HTTP_GET_VARS['id'];`,现在应改为`$id = $_GET['id'];`。同样,对于POST数据,应该使用`$_POST['id']`而不是`$HTTP_POST_VARS['id']`。 其次,另...
在Spring Boot应用中,防重复提交是一个重要的功能,特别是在高并发和事务一致性要求较高的场景下。这个名为"springboot防重复提交工具包"的资源很...具体使用方法可能需要参考包内的文档或示例代码进行学习和实践。
获自EXPLAIN PLAN语句的执行计划跟具体执行的计划可以不同,因为 cursor 可能被不同的session 参数值编译(如, HASH_AREA_SIZE)。 通过V$SQL_PLAN视图,可以: 1. 确认当前的执行计划 2. 鉴别创建表索引效果 3. ...
这段代码首先打开一个 `Session` 并开始一个事务,然后创建一个新的 `Event` 对象并设置其属性值,接着使用 `Session` 的 `save` 方法将该对象保存到数据库中,最后提交事务并关闭 `Session`。 #### 五、编写高效 ...
A: 同一用户生成的Excel文件用同一个文件名,文件名可用用户ID号或SessionID号等可确信不重复字符串组成。这样新文件生成时自动覆盖上一文件。 B: 在Global.asa文件中设置Session_onEnd事件激发时,删除这个用户的...
formatter 采用类来对该 Measure 的值进行格式,具体参考 Level 的 formatter 属性。 caption 标题,用来显示时使用。 4. JPivot标签库使用详解 4.1. Introduce JPivot 是一套基于 Mondrian 的 OLAP 前端展现...
3. **多态**:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在.NET中,多态可以通过接口实现或通过继承并重写基类方法来实现。 **抽象类**:抽象类是一种不能被实例化的类,通常包含一个或多...