ServletResponse和HttpServletResponseWrapper之间的区别?

我是servlet的新手,并阅读有关filter和包装器的一些文本。 我可以理解filter,但对包装器感到困惑。 在书中,作者给出了一个例子: 如果没有包装: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String name = request.getParameter(“name”).trim(); try { chain.doFilter(request, response); PrintWriter out = response.getWriter(); if (name.length() == 0) { out.println(“Some message”); out.println(“”); out.println(“”); out.close(); } } catch (Throwable t) { } } 在包装的情况下: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) […]

Gson – 基于字段值反序列化为特定对象类型

我想基于type字段值将json对象反序列化为特定类型的对象(使用Gson库),例如: [ { “type”: “type1”, “id”: “131481204101”, “url”: “http://something.com”, “name”: “BLAH BLAH”, “icon”: “SOME_STRING”, “price”: “FREE”, “backgroundUrl”: “SOME_STRING” }, { …. } ] 因此, type字段将具有不同(但已知)的值。 基于该值,我需要将该json对象反序列化为适当的模型对象,例如:Type1Model,Type2Model等。我知道我可以在反序列化之前通过将其转换为JSONArray ,迭代它并解析应该反序列化的类型来轻松地做到这一点。至。 但我认为这是一种丑陋的方法,我正在寻找更好的方法。 有什么建议么?

Java:基于正则表达式在HashMap密钥中搜索?

我正在使用HashMap构建同义词库以存储同义词。 我正在尝试基于正则表达式搜索单词:该方法必须将字符串作为参数并返回结果数组。 这是我第一次尝试: public ArrayList searchDefinition(String regex) { ArrayList results = new ArrayList(); Pattern p = Pattern.compile(regex); Set keys = thesaurus.keySet(); Iterator ite = keys.iterator(); while (ite.hasNext()) { String candidate = ite.next(); Matcher m = p.matcher(candidate); System.out.println(“Attempting to match: ” + candidate + ” to ” + regex); if (m.matches()) { System.out.println(“it matches”); results.add(candidate); } […]

如何使用eclipse将图像添加到java项目中?

我已经围绕SO和Google链接做了很多阅读。 我还没弄明白如何正确地将图像添加到eclipse gui项目中,系统会识别它找到它。 我知道有一些关于CLASSPATH的mumbojumbo但它可能不应该这么难做。 首先让我描述一下我正在做的事情……(如果有人能够纠正我,那就更感激了。) 这是我的方法。 我使用“导入向导”(右键单击,“导入”,“常规”,“文件”)将图像添加到“导入目录”中,我称之为“/ resources” Eclipse在eclipse包资源管理器的树视图中自动创建一个名为“resources”的文件夹。 在“参考图书馆”条目下。 注意,“resources”不在“Referenced Libraries”下,它位于树中的同一级别。 然后我使用以下代码: ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); InputStream input = classLoader.getResourceAsStream(“/resources/image.jpg”); Image logo = ImageIO.read(input); 在这一点上,我运行测试程序并得到此错误: Exception in thread “main” java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(Unknown Source) at Test.main(Test.java:17) 在此先感谢您的帮助!

用坐标系生成六边形网格的算法

我试图将19行代码汇总到一个for循环中,但我感觉有点难过。 我问的原因是因为我希望网格是其他尺寸而不是5。 在Main::drawHexGridAdvanced() ,我试图推断出每一行之间的相似性,而不是Main::drawHexGridBasic() ,其中我是硬编码值。 我不确定如何确定每行中每列的x的开始,因为n == 5的模式是0, -1 -2 -2 -2之后,每个连续的列只是递增,除非循环到达中途点…… 信息和理解 `n` must be odd n | columns-per row sequence –+————————- 3 | 2 3 2 5 | 3 4 5 4 3 7 | 4 5 6 7 6 5 4 9 | 5 6 7 8 9 8 7 6 5 […]

使用reflection设置私有字段值

我有两个class: Father和Child public class Father implements Serializable, JSONInterface { private String a_field; //setter and getter here } public class Child extends Father { //empty class } 有了reflection,我想在Child类中设置a_field : Class clazz = Class.forName(“Child”); Object cc = clazz.newInstance(); Field f1 = cc.getClass().getField(“a_field”); f1.set(cc, “reflecting on life”); String str1 = (String) f1.get(cc.getClass()); System.out.println(“field: ” + str1); 但我有一个例外: 线程“main”中的exceptionjava.lang.NoSuchFieldException:a_field […]

在使用Spring和Hibernate时是否需要persistence.xml?

我正在使用Spring JPA和Hibernate的项目。 persistence.xml中的大多数内容都可以在Spring applicationContext.xml文件中指定。 那么persistence.xml是否需要了? 谢谢。

如何在Java中的一个cmd窗口中运行多个命令?

我想要做的是从Java应用程序多次运行batch文件。 因此我设置了一个运行此代码n次的for-loop : for (int i = 0; i < n; i++) { Runtime.getRuntime().exec("cmd /c start somefile.bat"); } 问题是现在每次运行命令时都会弹出一个新的cmd窗口。 但是,我想要的只是一个窗口,它在开头弹出,用于显示以下命令调用中的所有数据。 我怎样才能做到这一点?

如何让SAX解析器从xml声明中确定编码?

我正在尝试解析来自不同来源的xml文件(我无法控制)。 其中大多数都是用UTF-8编码的,并且使用以下代码段不会导致任何问题: SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); FeedHandler handler = new FeedHandler(); InputSource is = new InputSource(getInputStream()); parser.parse(is, handler); 由于SAX默认为UTF-8,这很好。 但是有些文件声明: 即使声明ISO-8859-1 SAX仍然默认为UTF-8。 只有我添加: is.setEncoding(“ISO-8859-1”); SAX会使用正确的编码吗? 如何在没有专门设置的情况下让SAX自动检测xml声明中的正确编码? 我需要这个,因为我事先不知道文件的编码是什么。 艾琳,提前谢谢

java.util.ConcurrentLinkedQueue

我想使用java.util.ConcurrentLinkedQueue作为Servlet的非持久队列。 这是来自类的javadoc的模糊。 基于链接节点的无界线程安全队列。 当许multithreading共享对公共集合的访问权限时,ConcurrentLinkedQueue是一个合适的选择。 此队列不允许null元素。 现在假设我在servlet上有1000个并发请求,每个线程都需要将一个对象嵌入到ConcurrentLinkedQueue中。 从描述中,我应该得出结论,处理负载没有问题吗? 我需要的保证是: 我自动收到线程安全保证,而无需自己进行同步。 如果流量负载超过1000并发请求,我将不会丢失任何请求。 谢谢