Tag: servlets

如何读取Node JS中的servlet响应输出stream?

用例是从服务器获取文件内容,并使用节点JS将其发送到浏览器。 细节: 在Java中读取一个文件(PDF,图像文件)(终点是使用spring框架公开的) @RequestMapping(value = "/getFileContent", method = RequestMethod.GET) public void getFileContent(HttpServletResponse response) throws IOException { try { File file = new File("src/main/resources/SampleDoc.pdf"); InputStream targetStream = new FileInputStream(file); response.setContentType("application/octet-stream"); response.setHeader("Content-Disposition", "inline; filename="+"sample.pdf"); IOUtils.copy(targetStream, response.getOutputStream()); } catch (Exception e) { LOG.error("Document Download Error", e.getMessage()); } } 获取stream并将其转换为pdf文件并在浏览器中显示相同的内容: router.get('/openfile', function(req, res, next) { console.log("get call"); request('http://localhost:8080/getFileContent', function […]

与Servlet一起使用Socket.IO

我正在考虑通过WebSocket(我目前使用)在我的项目中使用Socket.IO。 我还没有使用Node.js。 当我试图通过Socket.IO,我得到了Node.js是必须实现这一点的想法。 我有几个问题要问。 是否类似于WebSocket 我可以使用没有Node.js的Socket.IO 我在哪里可以学习使用Servlet的Socket.IO 我是否需要添加单独的库文件来处理Servlet中的Socket.IO(我正在使用Java 8)。 如果是的话,哪一个是正确的。 我正在使用Glass-fish Server。 在我的项目中只使用了hibernate,没有其他的框架被使用,我不熟悉任何其他框架。 我经历了以前在这里问过的这个问题,但我不明白如何使用这个 。 请帮忙

servlet 3.0和node.js的彗星notifcations

我正在开发一个web应用程序,实时通知用户彗星风格。 我目前的解决scheme使用Servlet 3.0。 总的想法是 将请求的AsyncContext放入应用程序范围Map中, 一个后台线程等待队列上的通知 如果有通知,则将其推送到Map中相应的AsyncContext。 我正在使用NIO连接器的Tomcat 7.0。 一般来说,我使用的方法与此非常相似: http : //www.javaworld.com/javaworld/jw-02-2009/jw-02-servlet3.html?page=3 我还没有机会去探索node.js。 我的大部分用例(很有可能)都不会从node.js中受益,但也许这个彗星通知会。 据我所知,这两个解决scheme都不会有一个线程要求,因此这两个系统应该扩展。 我的问题是,使用Servlet 3.0asynchronous模式或Node.js来扩展彗星的一般优点和缺点是什么?

是否有可能(以及如何)改变G-WAN处理请求的方式?

今天,G-WAN像这样继续请求( 使用loan.java servlet的示例 ): localhost/?loan.java&name=Eva&amount=100000&term=5&rate=4.2 可以使用特定的处理程序( 甚至更好的G-WAN交换机 )来处理这样的请求: localhost/loan.java?name=Eva&amount=100000&term=5&rate=4.2 哪里: a)在servlet名称的名字前面没有“ ? ”字符, 但在第一个参数之前 , b) “ & ”字符不放在第一个参数之前,但放在第二个,然后是第三个,第四个( 依此类推 )参数之前。 这样的处理器( 甚至更好的G-WAN交换机 )将使G-WAN与用于创build今天的web应用和网站的无数代码(Go,Java,Mono,NodeJS,PHP,Ruby等)兼容开发人员有义务将其重写为简单地与G-WAN一起使用,并有利于其高性能,可扩展性和安全性。 注意:以前的答案永远不会回答另一个contibutor的问题:“如何删除” ? “字符”和init.c代码不提供删除QUERY_CHAR的方法,但是: a)只能从字符集中select: – _。 ! 〜*'()和, b)不要放置“?” 以及上面需要的“&”字符。 所以,我希望我的问题更清楚。 如果需要资金,G-WAN开发者可以用标准的G-WAN版本获得这样一个处理程序( 甚至更好的G-WAN交换机 ),以像所有其他Web服务器一样处理请求那么,即使使用正则expression式代码会使G-WAN变慢一点( 如果有的话 )呢? 预先感谢您为这个exception的Web应用程序服务器实现这样一个必要的增强的方法。

比较和比较Node.js和Servlets 3.1非阻塞IO

Node.js使用Javascript的非阻塞性质。 另一方面,Servlets 3.1在Java EE 7中引入了非阻塞IO。 请解释这两者之间的技术上的相似点和差异,就非阻塞和可扩展性而言。

PassportJS req.user发送所有用户数据

我使用PassportJS本地策略进行用户authentication,其工作完全正常。 但是,当我尝试在任何经过​​身份validation的页面上的console.log(req.user)时,我将获取当前login用户的所有数据库条目详细信息。 这是正常的吗? 包括散列密码 { name: 'Test', email: 'vxxxxx@gmail.com', password: '$2a$10$aw2aMtXtrmKHi.kd97c0NeMOu6Y0hlcM4xk2VuqfneLYdEkc676eq', phone: 9xxxxx6, _enabled: true, _id: 5253f326003e55f028000001, __v: 0 } 我的本地策略是这样定义的。 passport.use(new strategy(function(username, password, done) { User.findOne({ "email": username }, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Unknown user ' + username }); } if(user._enabled==false) […]