Tag: servlets

什么是在Java EE Web应用程序中使用的WEB-INF?

我正在使用以下源代码结构处理Java EE Web应用程序: src/main/java <– multiple packages containing java classes src/test/java <– multiple packages containing JUnit tests src/main/resources <– includes properties files for textual messages src/main/webapp/resources <– includes CSS, images and all Javascript files src/main/webapp/WEB-INF src/main/webapp/WEB-INF/tags src/main/webapp/WEB-INF/views 我感兴趣的是WEB-INF ,它包含web.xml ,用于设置servlet的XML文件,Spring bean接线上下文以及JSP标签和视图。 问题的标题是基本的,但是我想了解的是约束/定义这个结构。 例如,JSP文件总是必须在WEB-INF或者它们可能在其他地方? 还有什么可以在WEB-INF ? 维基百科的WAR文件入口提及Java类的类和JAR文件的lib – 不确定当除了其他源文件位置之外还需要这些文件时,我已经完全掌握了。

将表单提交给Servlet后,如何在JSP中保留HTML表单字段值?

在从HTML提交数据之后,servlet将这些数据添加到我的数据库,并将结果消息转发到JSP页面。 我想在转发之后保留最初提交的值。 在servlet中创build一个对象并添加所有我收到的参数并发送请求到JSP是否明智? 还有更好的方法吗?

如何区分浏览器标签中的会话?

在使用JSP和Servlets在java中实现的Web应用程序中; 如果我将信息存储在用户会话中,则将从同一浏览器的所有选项卡共享此信息。 如何区分浏览器选项卡中的会话? 在这个例子中: <%@page language="java"%> <% String user = request.getParameter("user"); user = (user == null ? (String)session.getAttribute("SESSIONS_USER") : user); session.setAttribute("SESSIONS_USER",user); %> <html><head></head><body> <%=user %> <form method="post"> User:<input name="user" value=""> <input type="submit" value="send"> </form> </body></html> 将这个代码复制到一个jsp页面( testpage.jsp )中,将这个文件部署在服务器上的一个Web应用程序的现有上下文中(我使用Apache Tomcat),然后使用正确的URL打开浏览器(FF,IE7或Opera) localhost/context1/testpage.jsp ),在input中input你的名字并提交表单。 然后在同一个浏览器中打开一个新的标签页,然后你可以在新标签页上看到你的名字(从会话中获得)。 浏览器caching要小心,有时似乎不会发生,但它在caching中,刷新第二个选项卡。 谢谢。

用于提供静态内容的Servlet

我在两个不同的容器(Tomcat和Jetty)上部署Web应用程序,但是它们的默认servlet用于处理我想要使用的URL结构( 详细信息 )。 因此,我正在寻找在webapp中包含一个小的servlet来提供自己的静态内容(图像,CSS等)。 该servlet应该具有以下属性: 没有外部依赖性 简单可靠 支持If-Modified-Since标题(即自定义getLastModified方法) (可选)支持gzip编码,etags,… 这样的servlet可用吗? 我能find的最接近的是Servlet书中的例子4-10 。 更新:我想使用的URL结构 – 如果您想知道的话 – 很简单: <servlet-mapping> <servlet-name>main</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/static/*</url-pattern> </servlet-mapping> 所以所有的请求都应该传递给主Servlet,除非它们是staticpath。 问题是,Tomcat的默认servlet没有考虑到ServletPath(所以它查找主文件夹中的静态文件),而Jetty的(所以它看起来在static文件夹)。

上传的图像仅在刷新页面后才可用

上传图片时,文件成功保存,path设置成功。 但是在提交表单之后,上传的图像不会立即显示。 只有当我重新加载页面时,才会显示上传的图像。 我正在保存上传的文件如下: InputStream is; try { File file = new File("C:\\****\\*****\\Documents\\NetBeansProjects\\EventsCalendary\\web\\resources\\images\\uploadPhoto.png"); is = event.getFile().getInputstream(); OutputStream os = new FileOutputStream(file); setUserPhoto("\\EventsCalendary\\resources\\images\\"+file.getName()); byte buf[] = new byte[1024]; int len; while ((len = is.read(buf)) > 0) { os.write(buf, 0, len); } os.close(); is.close(); } catch (IOException ex) { System.out.println(ex.getStackTrace()); } 为什么上传的图片只在重新加载页面后才显示,我该如何解决?

如何在全局前端控制器servlet上映射/ *时访问静态资源

我将Spring MVC调度器映射为/*上的全局前端控制器servlet。 <servlet> <servlet-name>home</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>home</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> 但是,这个映射会停止访问静态文件,如CSS,JS,图像等,这些都在/res/文件夹中。 我怎样才能访问它们呢?

RequestDispatcher.forward()vs HttpServletResponse.sendRedirect()

forward()和sendRedirect()之间的概念区别是什么?

在multithreading系统中使用静态java.sql.Connection实例是否安全?

我正在Tomcat上运行一个Web应用程序。 我有一个类处理所有的数据库查询。 这个类包含Connection对象和返回查询结果的方法。 这是连接对象: private static Connection conn = null; 它只有一个实例(单例)。 另外,我有执行查询的方法,比如在db中search用户: public static ResultSet searchUser(String user, String pass) throws SQLException 此方法使用静态Connection对象。 我的问题是,我使用静态Connection对象线程安全吗? 或者当很多用户会调用searchUser方法时会引起问题?

提交HTML表单时如何将数据从JSP传输到servlet

我有一个HTML页面的JSP页面: <form action="SERVLET"> <input type="text" name="name"/><br> <input type="text" name="group"/> <input type="text" name="pass"/> <input type="submit" value="submit"> </form> 如何在servlet中获取这些数据并将它们添加到数据库?

JSP / Servlet的隐藏function

我对编写JSP / Servlet时使用的技巧感兴趣。 我将开始: 我最近发现了如何在一个标签的属性中包含一个JSP标签的输出: <c:forEach items="${items}"> <jsp:attribute name="var"> <mytag:doesSomething/> </jsp:attribute> <jsp:body> <%– when using jsp:attribute the body must be in this tag –%> </jsp:body> </c:forEach>