Tag: servlets

通过HTML5video元素的Java多媒体流

我试图让我的Java后端将video文件(MP4等)“流”到浏览器。 我担心我必须编写非常复杂的,低级实用的NIO类型代码,例如: public class VideoController extends HttpServlet { @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) { File f = new File(“/opt/videos/video19394.mp4”); PrintStream ps = resp.getWriter(); while(still reading f) { writeTheVideoBytesToStream(f, ps); } } } 但似乎这一切都是用HTML5 元素处理的( 是的?? )。 这样,从客户端,我可以指定: 然后,在服务器端,即使是像web.xml这样简单的东西,我也可以指定URL请求之间的映射,如http://myapp.example.com/videos/19394和位于服务器上的MP4文件在/opt/videos/video19394.mp4 。 而元素只是自动处理事情。 我在这里是否正确,或者即使我使用 ,我还需要在服务器上实现低级别的字节/套接字流式传输吗?

使用Java Servlet从AWS SimpleDB创建域

我是一名研究项目的大学生,涉及将Web应用程序迁移到亚马逊云。 我花了最后一个学期与servlet一起工作,并且能够使用在Tomcat中运行的java servlet来获得应用程序的大部分function。 我现在正在尝试集成Amazon Web Services,例如SimpleDB和电子邮件服务。 我使用Eclipse Java EE for Web Developers Indigo IDE进行开发。 我安装了AWS插件,并且能够运行Amazon提供的示例代码,以便成功调用SDB和SES。 但是,当我尝试直接或通过单独的类从servlet调用simpleDB等服务时,我收到以下错误: HTTP状态500 – 类型exception报告 信息 description服务器遇到内部错误(),导致无法完成此请求。 例外 javax.servlet.ServletException:实例化servlet类时出错org.comtor.cloud.api.APIservlet org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve .java:98)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)org.apache.coyote.http11.AbstractHttp11Processor .process(AbstractHttp11Processor.java:987)org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:539)org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:298)java .util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)java.lang.Thread.run(Thread.java:680)root原因 java.lang.NoClassDefFoundError:com / amazonaws / auth / AWSCredentials java.lang.Class.getDeclaredConstructors0(Native Method)java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)java.lang.Class.getConstructor0(Class.java: 2699)java.lang.Class.newInstance0(Class.java:326)java.lang.Class.newInstance(Class.java:308)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)org。 apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:928)org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 407)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:539)org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:298)java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)java.util。 concurrent.ThreadPoolExecutor $ […]

out.println说出来无法解决

当我写出out.println() ,eclipse抱怨说无法解决。 我导入了java.io.*和其他servlet包。

如何避免GoogleAppEngine DataStore延迟?

我是App Engine的新手并编写了一个示例App。 如果我创建或更新实体: Entity record = new Entity(…); … set properties DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); datastore.put(record); 然后重定向到显示新的或更新的实体的页面 resp.sendRedirect(“MainPage.jsp”); 执行以下代码的位置 DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); Query query = new Query(…).addSort(…, Query.SortDirection.DESCENDING); List entities = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(20)); 新记录不在列表中。 页面已更新(如显示的时间戳所示),但新记录或现有记录的修改仅在刷新页面后延迟几秒钟后显示。 如何避免这种情况? DataStore可能不适合这样的事情吗? 我正在使用GAE的Eclipse本地测试环境和Windows XP 64。

Java EE App的理想错误页面

我很难在我的应用程序中整合错误。 目前,我的error.jsp看起来如下(部分): 除了!之外的所有场景都可以正常工作:有时在我的应用程序中,我使用以下代码捕获MyException类中的内置exception: catch(MyException ex){ log.error(ex.getMessage(), uivex); String originalURL = “/errorpages/error.jsp?errorcode=” + (ex.getMajor() + ex.getMinor()) + “&errormessage=” + ex.getMessage(); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(address); dispatcher.forward(request,response); } 现在的问题是,当我转发到error.jsp页面时…而不是看到来自MyException类的实际错误..我看到NullPointerException因为javax.servlet.error.status_code没有任何内容,并且页面被声明as isErrorPage=”true” 在这种情况下我该怎么办? 一种解决方案是创建一个完全不同的error.jsp(将其命名为error1.jsp)页面,并将MyException类中的exception转发到该页面。 虽然,我想把所有东西放在一个地方。

filter映射中的无效

我有一个@POSTrest方法,我想为它做过滤,所以只有登录在应用程序中的人才能访问它。 这是我的@POST方法: @POST @Path(“/buy”) public Response buyTicket(@QueryParam(“projectionId”) String projectionId, @QueryParam(“place”) String place){ Projection projection = projectionDAO.findById(Long.parseLong(projectionId)); if(projection != null){ System.out.println(projection.getMovieTitle()); System.out.println(place); projectionDAO.buyTicket(projection, userContext.getCurrentUser(), place); } return Response.noContent().build(); } 这是我为这种方法编写的filter: @WebFilter(“rest/projection/buy”) public class ProtectedBuyFunction implements Filter { @Inject UserContext userContext; public void init(FilterConfig fConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) […]

Servlet中的SimpleDateFormat

我在Servlet中使用了很多SimpleDateFormat对象。 不幸的是,SimpleDateFormat不是线程安全的。 因此,我考虑用ThreadLocal包装它以促进SimpleDateFormat对象的重用。 我写了一个util-class来启用它: public class DateUtil { private final static ThreadLocal dateFormat = new ThreadLocal() { return new SimpleDateFormat(); } public static SimpleDateFormat get () { return dateFormat.get(); } } 实际上,这似乎导致内存泄漏。 关闭我的webapp时,Tomcat会记录以下错误消息: 严重:Web应用程序[]使用[null]类型的键创建了一个ThreadLocal(值[com.example.util.DateUtil$2@50242f7d]),类型为[java.text.SimpleDateFormat](value [java.text] .SimpleDateFormat @ d91b489b])但在Web应用程序停止时无法将其删除。 这很可能造成内存泄漏。 我理解内存泄漏的原因,但是在Servlet中处理SimpleDateFormat-objects(或任何其他非线程安全对象)的最佳方法是什么?

从jsp重定向jsp – 错误“请求的资源不可用。”

我正在社交网站上工作,我有以下问题。 在profile.jsp我有一个用户可以上传照片的表单。 这个表单对FileUploadHandler servlet有一个动作,它上传照片然后发送重定向到uploadfileController.jsp如下所示: RequestDispatcher requestDispatcher; requestDispatcher = request.getRequestDispatcher(“/uploadfileController.jsp”); requestDispatcher.forward(request, response); 在uploadfileController.jsp我将此post插入到我的MySQL数据库中,然后将重定向发送到profile.jsp 。 response.sendRedirect(“/profile.jsp”); 但后来我收到此错误消息: HTTP状态404 – /profile.jsp 类型状态报告 消息/profile.jsp description请求的资源不可用。 但是,当我再次访问profile.jsp ,post就会被创建! 有任何想法吗?

将FileItem转换为File

我正在尝试使用简单的上传html表单上传XML文件(text.xml),定期在servlet中将其作为FileItem读取,然后获取ACTUAL文件(text.xml),以便我可以打印,保存等。是否有任何受过良好教育的方式来做到这一点? 有人告诉我使用FileItem的属性getInputStream ..有什么例子吗? 是不是有一个更短的方式? 谢谢

JSP中的JSTL循环用于嵌套的未编译列表

MVC – servlet将请求转发给JSP。 在servlet中我创建了类别的列表(java.util.List),将此列表附加到servlet上下文,并将请求转发到JSP页面: public class Category{ private Integer id; private String name; private Category parentCategory; … //getters and setters } 此类表示类别/子类别(如果parentCategory字段为null,则它是顶级类别)。 具有相同父级的类别是其子类别,并且它们将映射到JSP中的嵌套无序列表。 示例:结果应与下一个HTML代码类似: Category 1 Category 1.1 Category 1.2 Category 1.3 Category 1.3.1 Category 1.3.2 Category 1.3.3 Category 1.3.4 Category 1.4 Category 2 Category 3 Category 3.1 Category 3.2 Category 3.2.1 Category 3.2.2 Category […]