java.lang.IllegalStateException:在servlet中提交响应后无法转发

在我的项目中,我禁止用户每个页面只有他已经登录。 这就是我写下面代码的原因。 当我输入浏览器时,例如, http:// localhost:8080 / JSP1 / Students ,我来到login.jsp页面。 但在输入loginid和密码后,只显示空白页http:// localhost:8080 / JSP1 / Logged ,GlassFish表示存在exception if (userPath.equals(“/Students”)){ RequestDispatcher requestDispatcher = request.getRequestDispatcher(“/Students.jsp”); requestDispatcher.forward(request, response); } java.lang.IllegalStateException: PWC1227: Cannot forward after response has been committed doGet和doPost的完整代码: @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession ses = request.getSession(); String login = (String)ses.getAttribute(“login”); […]

是否有一种可移植的方式来“选择第一个10 *从T”语义?

我想从数据库中读取10k记录块中的数据。 我在维基百科上发现了结果限制 ,很明显这不能用sql以便携方式完成。 另一种方法可能是JdbcTemplate ,它提供了许多查询方法,但我怎么能确定已经读取了足够的行。 通过RowMapper和ResultSetExtractor等回调,无法指示已读取足够的数据。 编辑:我正在寻找JdbcTemplate的解决方案这篇文章建议使用我忽略的setMaxRows 。

服务器时区值“AEST”无法识别或代表多个时区

我正在尝试设置一个简单的hibernate应用程序,当我运行它时,我得到一个充满错误的堆栈跟踪。 我的pom.xml文件中有以下maven依赖项: org.hibernate hibernate-core 5.2.0.Final mysql mysql-connector-java 6.0.2 我在本地运行的mysql版本是: 5.7.9, for osx10.11 (x86_64) 我正在运行,似乎是一种非常简单的方法,但仍然会出现错误: // create session factory SessionFactory factory = new Configuration() .configure(“hibernate.cfg.xml”) .addAnnotatedClass(Model.class) .buildSessionFactory(); // create session Session session = factory.getCurrentSession(); Model newModel = new Model(“….”, “…”, “…”); // start a transaction session.beginTransaction(); // save the student object System.out.println(“Saving the model…”); session.save(newModel); 执行上面的操作后,我得到一个很长的堆栈跟踪…… […]

当请求的凭据模式为“include”时,响应中的标头不能是通配符“*”

我正在使用Auth0进行用户身份validation,只允许登录用户访问Spring(Boot) RestController 。 此时我正在创建一个实时消息function,用户可以使用stompjs和sockjs将消息从Angular 2客户端( localhost:4200 )发送到Spring服务器(localhost:8081)。 尝试创建Stomp客户端并启动连接时,我收到以下控制台错误: The value of the ‘Access-Control-Allow-Origin’ header in the response must not be the wildcard ‘*’ when the request’s credentials mode is ‘include’. Origin ‘http://localhost:4200’ is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute. 在研究了这个问题之后,看起来无法同时设置选项origins = *和credentials […]

如何使用JSP列出服务器目录的内容?

编写JSP文件时,如何在运行时获取此文件的当前目录 (能够迭代目录并列出其内容)? 由于某些安全问题,是否会限制某些文件I / O操作? 我更喜欢没有访问某些特定于实现的服务器变量/属性的解决方案。 编辑: 我不会问它是否像new File(“.”)一样简单,因为这只会给出服务器可执行文件的目录。

测试Java方法是否同步的好方法是什么?

我有几个实现一些接口的类。 接口有一个契约,有些方法应该同步,有些不应该,我想通过unit testing来validation所有实现的合同。 这些方法应该使用synchronized关键字或者锁定this – 非常类似于synchronizedCollection()包装器。 这意味着我应该能够在外部观察它。 要继续Collections.synchronizedCollection()的示例,如果我有一个线程调用iterator(),我仍然可以使用另一个线程进入add()等方法,因为iterator()不应该执行任何锁定。 另一方面,我应该能够在外部同步集合,并看到另一个线程阻塞add()。 有没有一种方法可以测试方法是否在JUnit测试中同步? 我想避免长时间的睡眠陈述。

NoSuchMethodError:Jersey客户端中的MultivaluedMap.addAll

我正在尝试使用Jersey Client来模拟对我的Web服务的HTTP请求。 我试图从文档中实现这个简单的例子 。 这是我的简短代码: public void restoreTest(String sessionId) throws Exception { Client client = ClientBuilder.newClient(); WebTarget target = client.target(idsUrl).path(“restore”); Form form = new Form(); form.param(“sessionId”, sessionId); target.request(MediaType.APPLICATION_FORM_URLENCODED_TYPE); } 我甚至没有实现整个示例,因为目前我在最后一行得到了一个exception: java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:254) at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:232) at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:60) at org.icatproject.idsclient.TestingClient.restoreTest(TestingClient.java:112) at org.icatproject.ids.ids2.ArchiveTest.restoreThenArchiveDataset(ArchiveTest.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) […]

在hibernate中实现结果分页(获取总行数)

如何在Hibernate中实现分页? Query对象有一些名为setMaxResults和setFirstResult方法,这些方法当然很有帮助。 但是我在哪里可以获得结果总数,以便我可以显示结果最后一页的链接,并打印结果200到250的xxx ?

从字符串中删除所有出现的\

我试图从服务器获取一个对象数组,使用JSON。 服务器向我发送以下字符串。 “[{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:1,\”CompanyId\”:1,\”StartDate\”:\”2012-12-13T00:00:00\”,\”EndDate\”:\”2012-12-16T00:00:00\”,\”CouponCode\”:\”Test Coupon 1\”,\”Description\”:\”Test Deal Description 1\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 1\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:2,\”CompanyId\”:1,\”StartDate\”:\”2012-12-16T00:00:00\”,\”EndDate\”:\”2012-12-17T00:00:00\”,\”CouponCode\”:\”Test Coupon 2\”,\”Description\”:\”Test Description 2\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 2\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:3,\”CompanyId\”:1,\”StartDate\”:\”2012-12-14T00:00:00\”,\”EndDate\”:\”2012-12-15T00:00:00\”,\”CouponCode\”:\”Test Code 3\”,\”Description\”:\”Test Description 3\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 3\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:4,\”CompanyId\”:1,\”StartDate\”:\”2012-12-12T00:00:00\”,\”EndDate\”:\”2012-12-13T00:00:00\”,\”CouponCode\”:\”Test Coupon 4\”,\”Description\”:\”Test Description 4\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Test Deal 4\”},{\”DealComment\”:null,\”DealVotes\”:[],\”DealId\”:5,\”CompanyId\”:2,\”StartDate\”:\”2012-12-12T00:00:00\”,\”EndDate\”:\”2012-12-14T00:00:00\”,\”CouponCode\”:\”AwD\”,\”Description\”:\”Very awesome deal!\”,\”VoteUp\”:null,\”VoteDown\”:null,\”ViewCount\”:null,\”Title\”:\”Awesome Deal 1\”}]” 现在,如果你仔细查看字符串,你会发现它包含一个\”而不是每一个” 。 现在无法将字符串格式化为JSONArray。 因此,我需要更换每次出现的\” with ” ,这将是一项非常简单的任务,而不是一个转义序列 。 我尝试使用以下代码。 String jsonFormattedString = jsonStr.replaceAll(“\\”, “”); 但它给了我以下例外。 12-19 00:35:59.575: W/System.err(444): java.util.regex.PatternSyntaxException: Syntax error U_REGEX_BAD_ESCAPE_SEQUENCE near […]

秘密可以隐藏在提供访问凭证的“安全”java类中吗?

这是一个头脑风暴的问题,关于Java(或不是)的可能性。 我想知道是否可以隐藏类中的秘密,并防止再使用Java代码或其任何function (安全性,reflection,序列化,类加载器,你的名字……)来访问它。 以下是我到目前为止的想法: public final class Safe { private String secret; private HashMap validCertificates = new HashMap(); public Safe(String aSecret) { this.secret = aSecret; } public final class Credentials { private String user; private Credentials(String user) { this.user = user; } } public final Credentials getCredential(String user) { // Following test is just for […]