我在Tomcat 6 上运行基于Java的Web应用程序.我的应用程序在localhost和端口9001上运行.
为了使我的应用程序更安全并降低XSS攻击的风险,我添加了标题Content-Security-Policy值default-src*'unsafe-inline''unsafe-eval'; script-src'self'.有了这个,我想允许Web应用程序从同一个域加载JavaScript文件.
对于其他资源,它继续以与没有此标头时相同的方式加载.
但我收到以下错误.
Content Security Policy: The page's settings blocked the loading of a resource at self ("script-src http://localhost:9001").
Run Code Online (Sandbox Code Playgroud) “记住我”功能的定义是
当您在门户登录页面选中“记住我”复选框时,即使您关闭浏览器,您的登录信息也会被记住几天。下次您在该时间段内打开同一浏览器时,您将自动登录。
我不明白它在内部实际是如何工作的。
说我点击了 app1 并使用我的凭据登录。网络服务器创建用户对象并将其存储在会话中。现在,每当我从同一浏览器实例的选项卡(相同或不同)点击 app1 时,cookie 将被来回发送。说得通。
但是一旦我关闭浏览器并打开新窗口,然后点击 app1。将发送一组新的 cookie(而不是前一个),网络服务器将创建新会话并要求提供凭据。
因此,一旦浏览器关闭并打开新窗口,我真的不知道我是如何工作的?
我正在使用eclipse服务器功能进行热代码部署.使用tomcat作为Web服务器.但我不确定它是如何工作的.我有自己的理解它必须如何在内部工作.
我的理解: -当开发人员在代码中进行更改(比如类Employee)时,Eclipse会将修改后的编译类放置/发布到正确的位置(必须是特定的Web/app服务器.让我们称之为热部署目录(HDD))在webserver下.现在,Web服务器特定的类加载器将进入图片.它在HDD下找到新条目.现在,它发现类是否已经由perm gen空间中的类加载器加载,webserver将从permgen空间卸载它并在内部加载新的,而不重新启动服务器,以便反映新的更改(字节代码).作为重新加载的一部分,webserver还将现有的Epmloyee对象与perm gen空间中的新类定义链接起来,以便反映新的更改.
我的理解是否正确?
像这样的一些链接说Eclipse热部署只是重新部署的自动化.我认为这意味着eclipse会自动停止服务器,重新发布并重新启动它,而无需开发人员干预.Buti我认为这不正确,因为与start/publish/restart相比,这个过程非常快.此外,如果它是真的,重启后会话和其他活动对象将如何保持活动状态?可能这个链接在过去是真实的但现在不是因为我发现热部署也适用于jar中的类
在网上阅读有关MongoDB与Cassandra读写性能的几篇文章,
写
一般说来,当数据量很大时,Cassandra的写性能要好于Mongo。请参阅下面的声明。
无论数据集有多大,Cassandra的存储引擎都可以提供恒定时间的写入。在MongoDB中,写入的问题更大,部分原因是基于b树的存储引擎,而更多的是由于每个数据库的写入锁定。
这是我的问题:-这个说法仍然正确吗?据我了解,Mongo支持按文档而不是按数据库锁定。对?那么,目前Cassandra在写性能上是否仍优于Mongo?如果是,为什么?
读
人们普遍认为Mongo的阅读性能优于Cassandra的阅读性能,但我没有找到任何理由使Mongo的阅读性能优于Cassandra的阅读能力?
更新:-
来自Jared Answer的这个论坛
与在Cassandra中相比,MongoDB的存储引擎中的读取效率更高。Cassandra的存储引擎在写入时表现出色,因为它以仅追加格式存储数据。这样可以充分利用寻道时间短的旋转磁盘驱动器,但是可以非常快速地进行串行写入。但是缺点是,当您进行读取时,通常需要扫描对象的多个版本以获取最新版本以返回给调用者。MongoDB更新数据到位。这意味着它在执行写操作时会执行更多的随机IO,但是这样做的好处是可以更快地处理读操作,因为您可以在一个b树查找中找到对象在磁盘上的确切位置。
它帮助我理解了在删除/编辑现有记录时Cassandra的速度更快,因为它只能最后附加它,而不是像Mongo这样必须先搜索然后再编辑的就地编辑。这使得卡桑德拉在写作上比蒙哥更好
但是同一件事使Mongo慢于Cassandra,因为Cassandra必须扫描同一条记录的多个版本以获取最新版本以返回给调用者
这个博客的另一个原因 为什么cassandra的写作更好
MongoDB及其“单一主机”模型只能在主数据库上进行写入。辅助服务器只能用于读取。因此,从本质上讲,如果您设置了三个节点副本集,则只有主节点进行写操作,而其他两个节点仅用于读取操作。这极大地限制了写可扩展性。您可以部署多个分片,但实际上只有1/3的数据节点可以写入。Cassandra及其“多个主服务器”模型可以在任何服务器上进行写入。本质上,您的写可伸缩性受群集中服务器数量的限制。集群中的服务器越多,扩展性越好。
在同一个博客中,为什么Mongo在阅读方面比Cassandra更好
二级索引是MongoDB中的一类构造。这使索引MongoDB中存储的对象的任何属性变得容易,即使该对象是嵌套的也是如此。这使得根据这些二级索引进行查询非常容易。Cassandra仅对二级索引提供粗略的支持。次要索引也仅限于单列和相等性比较。如果您主要是要通过主键进行查询,那么Cassandra将会很适合您。
我有html页面,其中包含名称的全局javascript变量custName="scott".我打开弹出窗口window.open.
现在,如果我访问custName内部弹出窗口window.opener.custName,我得到的值为undefined.如何在子窗口(弹出窗口)中访问父窗口javascript变量?
在我的项目中,我使用的是Javascript代码history.back(); 回到上一页.(如窗口上的后退箭头).这个功能在IE和Firefox上工作正常但在谷歌crome上没有?
<input type="button" value="Go back" onclick="history.go(-1); return false" />
Run Code Online (Sandbox Code Playgroud)
我明白了这个错误
确认重新提交表单
此网页需要您之前输入的数据才能正确显示.您可以再次发送此数据,但通过这样做,您将重复此页面之前执行的任何操作.按"重新加载"重新发送该数据并显示此页面.
谷歌搜索,但每个人都在建议history.go(-1);返回false; 但它也不起作用.还尝试过history.back(),但这也无济于事
public class Employee2 extends Employee1 {}
public class Employee1 extends Employee0 {}
public class Employee0 {}
Run Code Online (Sandbox Code Playgroud)
现在我序列化Employee2类和
get the error java.io.NotSerializableException: Employee2
Run Code Online (Sandbox Code Playgroud)
现在如果将Employee1类更改为def
public class Employee1 extends Employee0 implements java.io.Serializable {}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但请注意Employee0仍然没有实现Serializable
Base类必须实现Serializable来序列化子类吗?如果是,为什么它只强制用于Employee1而不用于Employee0?
根据我的例子,它看起来像是,但根据网上的其他文章,这不应该是强制性的.那我在这里缺少什么?
在java 6中,类曾经在perm gen空间下加载,一旦加载它们就不会从permgen空间中删除(或收集垃圾)它们在GC时仍在使用或不使用.对 ?
但是在java 8中,permgen区域被完全删除,并且类detifinition被加载到堆中.我的问题是,类定义将永远驻留在堆中(直到jvm被杀死),无论它们是否在java 6中使用或者它将像其他任何对象一样被垃圾收集?
我去了http://dev.mysql.com/downloads/installer/,找不到任何Windows 64位操作系统的安装程序.是否只有32位安装程序.请指出我正确的方向.此外,上述链接中提到的两个安装程序都说明了相同的版本但具有不同的大小.
更新: -
正如它在MySQL网站上写的那样
MySQL安装程序是32位,但将安装32位和64位二进制文件.
它会根据我当前的操作系统自动安装适当的版本(32位/ 64位)(因为我没有看到64位和32位的单独的二进制文件).i从上面的链接下载了第一个,如下面的下面的和只有一个安装程序文件mysql-installer-community-5.6.12.0.msi.
这是我的pom
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.0.1.RELEASE</version>
</parent>
<dependencies>
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Spring Boot Maven -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project> …Run Code Online (Sandbox Code Playgroud)