小编Chr*_*ris的帖子

如何将Map <String,String>编码为Base64字符串?

我喜欢将字符串的java映射编码为单个基本64位编码字符串.编码的字符串将被传输到远程端点,并且可能由不好的人操纵.因此,应该发生的最糟糕的事情是invaild key,value-tuples,但不应该带来任何其他安全风险.

例:

Map<String,String> map = ...
String encoded = Base64.encode(map);

// somewhere else
Map<String,String> map = Base64.decode(encoded);
Run Code Online (Sandbox Code Playgroud)

是的,必须是Base64.不喜欢那个 或那个 或任何其他这些.是否有现有的轻量级解决方案(Single Utils-Class首选)?或者我必须创建自己的?

有什么比这更好的?

// marshalling
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(map);
oos.close();
String encoded = new String(Base64.encodeBase64(baos.toByteArray()));

// unmarshalling 
byte[] decoded = Base64.decodeBase64(encoded.getBytes());
ByteArrayInputStream bais = new ByteArrayInputStream(decoded);
ObjectInputStream ois = new ObjectInputStream(bais);
map = (Map<String,String>) ois.readObject();
ois.close();
Run Code Online (Sandbox Code Playgroud)

谢谢,

java encoding serialization

7
推荐指数
1
解决办法
8299
查看次数

将HQL解析为AST结构并将AST转换回HQL

我有一个HQL查询:

query = select item.itemNumber from items item where item.stock>0 and item.price<100.00
Run Code Online (Sandbox Code Playgroud)

我想解析此查询并将其转换为树结构:

AST queryTree = parse(query);
Run Code Online (Sandbox Code Playgroud)

比我喜欢迭代节点,更改一些值,并将树转换回字符串表示:

Iterator<ASTNode> it = queryTree.nodeIterator();
while(it.hasNext())
{
  ASTNode node = it.next();
  System.out.println( node.text() + "->" + node.value() );
}
query = queryTree.toString();
Run Code Online (Sandbox Code Playgroud)

如果parse方法在违反HQL语法的情况下抛出异常会很好,但不是必需的.有谁知道如何实现这一目标?是否有任何hibernate提供的API方法来完成该任务?

谢谢,

java parsing hibernate hql

5
推荐指数
1
解决办法
462
查看次数

如何逐帧阅读视频?

我想逐帧读取java8-64bit中的Mp4文件,并将每个帧作为jpg写入我的硬盘.我的第一次尝试是使用JavaFX 2.2媒体播放器在View组件上播放该文件.我想也许会有一个选项来注册一个观察者来获取一个事件,每次加载一个新的框架并准备在组件表面上绘制,但似乎没有这样的方法.仅仅抓住在组件上绘制的那些帧/像素就足够了.

这可以通过使用媒体播放器来完成吗?我使用媒体播放器的原因是bcs这是我工作的最简单的解决方案.我尝试了vlcj,只有32位,和gstreamer,但没有运气:(

到目前为止我得到了什么:

public class VideoGrabber extends extends JFrame { 

// code for scene setup omitted

final MediaView view = createMediaView(...)

// some other stuff happens here

// now start the video
view.getMediaPlayer().seek(Duration.ZERO);
view.getMediaPlayer().play();
view.getMediaPlayer().setOnEndOfMedia(new Runnable()
{ // save image when done
  BufferedImage img = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_BGR 
  view.paint(img.getGraphics());
  ImageIO.write(img, "JPEG", new File("pic-"+System.currentTimeMillis()+".jpg"));
});

// somewhere else to create 
private MediaView createMediaView(String url)
{
  final Media clip = new Media(url);
  final MediaPlayer player = new MediaPlayer(clip);
  final MediaView …
Run Code Online (Sandbox Code Playgroud)

java video image-processing

5
推荐指数
2
解决办法
2万
查看次数

适用于Oracle Database 18c的Hibernate方言?

Oracle Database 18c是否有Hibernate方言?还是应该使用org.hibernate.dialect.Oracle12cDialectHibernate附带的那个?

当使用Hibernate 5.3和Oracle 18c RAC时,应用程序需要处理一些特殊的事情吗?

hibernate oracle-rac oracle18c

5
推荐指数
1
解决办法
2681
查看次数

是否有克罗地亚语词干算法的实现?

我正在寻找克罗地亚语词干算法的实现.理想情况下在Java,但我也会接受任何其他语言.

是否有某个英语口语开发者社区正在为克罗地亚语言开发搜索应用程序?

谢谢,

stemming porter-stemmer

4
推荐指数
1
解决办法
1598
查看次数

您可以推荐哪些JavaScript缓存

我正在寻找一个好的java脚本内存缓存lib来缓存客户端计算结果.

我的要求:

  • 适用于Internet Explorer,FireFox,Safari,Opera,Chrome等
  • 稳定
  • 成熟
  • 快速
  • 缓存策略应该是可配置的
  • 一个页面中的几个缓存,每个缓存都有不同的eviciton策略
  • LFU,LRU加分

您在Web项目中使用哪一个?你能推荐哪一个?

javascript caching

3
推荐指数
1
解决办法
1671
查看次数

如何将文档转换回字符串?

我需要一个java脚本函数,它将当前加载页面的文档对象转换回它的源文本.在firefox中它是那样的:

var doc = document;
var str = (new XMLSerializer()).serializeToString(doc);
alert(str);
Run Code Online (Sandbox Code Playgroud)

但我需要一个跨浏览器解决方案.怎么做?

例如:

<html>
  <body>
    <script>
       alert( asText(document) );
    </script>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

会弹出:

<html>
  <body> 
    <script>
       alert( asText(document) );
    </script>
</html>
Run Code Online (Sandbox Code Playgroud)

你将如何实现'asText'功能?

html javascript text document

3
推荐指数
1
解决办法
184
查看次数