我是一名java Web应用程序开发人员,现在我在.net框架上工作.
当我在java web中工作时,我们使用tomcat/jboss来部署我们的应用程序.我以为tomcat/jboss是web服务器.
当我在asp.net中工作时,我使用IIS来部署应用程序,然后我认为IIS是另一种Web服务器.
这些天,我正在学习rails,然后我听到了nginx.从谷歌,它也是一种网络服务器.
但是我发现有些人说我们可以一起使用nginx和IIS,或者其他组合.
现在,我很困惑,在我看来,Web服务器应该处理来自客户端的请求并返回结果.
每个Web服务器都应该有自己的适应性,例如,tomcat for java,iis for asp.net.
但为什么apache/nginx?
顺便说一句,我不是说apache/nginx没用,我只是不熟悉这个.
我想知道是否有人能为我解释一下?
假设我在页面中有一个ul
(li
)列表:
<ul>
<li>xxx<li>
<li>xxx<li>
</ul>
Run Code Online (Sandbox Code Playgroud)
该元素li
是可点击和可双击的,它们与这些事件相关联,并且我都return false
在这两个事件中.
$('ul li').on('click',function(){
//do what I want
return false;
}).on('dblclick',function(){
//do what I want
return false;
});
Run Code Online (Sandbox Code Playgroud)
但是当用户双击该元素时,li
将选择该文本内的文本.如何防止这种情况?
更新:
现在解决了,我使用以下代码与NiftyDude的css选择器:
$('ul li').on('click',function(){
//do what I want
return false;
}).....on('dragstart',function(){return false;}).on('selectstart',function(){return false;});
Run Code Online (Sandbox Code Playgroud) 我正在学习Apache Shiro,我找到了这篇文章:
作者说:
.......如果需要,您可以直接将行为(权限)分配给角色.从这个意义上讲,您仍然可以使用基于角色的访问控制安全策略 - 只是您将拥有显式RBAC策略而不是传统的隐式策略.
但这引出了一个问题 - 为什么要停止角色?您可以将行为直接分配给用户,组,或安全策略可能允许的任何其他内容.
似乎作者更喜欢直接存储用户和权限的关系而不是通过角色.
虽然看起来简单明了,但我有一些问题:
两个人之间是否有任何本质区别?
数据库架构.
在基于角色的访问控制中,通常我们使用三个表来描述关系:
user
role
user_role
Run Code Online (Sandbox Code Playgroud)
不,如果我使用基于资源的访问控制,构建表的常规做法是什么?
我正在使用spring boot,并且/static
作为js和css等静态资源提供服务,到目前为止一直都很好,而我想设置这些文件的缓存头,所以我尝试了这个:
@Configuration
public class BaseMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/").setCachePeriod(24 * 3600 * 365);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,之后,应用程序无法从该/static
文件夹中提供任何内容.
有什么问题?
我们的项目由几个子应用程序组成,我们正在寻找一种解决方案来实现 SSO 以避免对每个子应用程序进行身份验证。
假设这是我们项目的结构:
authentication server(call it AS or IdP or something else)
order-system
product-system
data-analysis-system
.......
Run Code Online (Sandbox Code Playgroud)
而且我们发现,有很多的文章“SSO实现了基于OAuth2用户”喜欢这样。
在那篇文章中,我们更喜欢该SAML
策略,因为它简单明了,但是对于原生应用程序有一些限制,然后我们重点介绍了 OAuth2。
这是工作流程:
1 OAuth2 中的规则
资源服务器 (SP) – 这是您尝试访问信息的网络服务器。
客户端——这是用户与资源服务器交互的方式。这可以是基于浏览器的 Web 应用程序、本机移动应用程序、桌面应用程序、服务器端应用程序。
授权服务器 (Idp) – 这是拥有用户身份和凭据的服务器。它是用户实际进行身份验证和授权的人。
以OctoDroid
为例,规则是非常明确的:
Client: OctoDroid
Idp: GitHub
SP: Github
User: one who use OctoDroid application.
Run Code Online (Sandbox Code Playgroud)
工作流程是OctoDroid( Client
) 要求您( User
) 登录并通过Github( Idp
)授予权限以从Github( ) 获取资源(repos,issues SP
)。
但是在我们的应用中,每个子系统究竟可以处理什么?一个SP
或一个Client
?
如果将其视为SP
,是网络浏览器Client
吗?我一直认为 aClient
应该是一个应用程序。另外子系统每次请求都会通过Idp验证access_token,然后返回相关资源,这样会不会增加Idp的压力? …
我有两台电脑:我公司的台式机和家里的便携式电脑.
现在我想使用hg使用"USB可移动磁盘"在它们之间同步项目.
所以我想知道如何实现它?
我桌面上的专业版是:D:\ work\mypro.
我使用以下命令来初始化它:
hg init
Run Code Online (Sandbox Code Playgroud)
然后我连接到卷标为"H"的USB磁盘,并使用以下命令获取克隆:
cd H:
hg init
hg clone D:\work\mypro mypro-usb
Run Code Online (Sandbox Code Playgroud)
在我使用的便携式计算机中:
cd D:
hg clone H:\mypro-usb mypro-home
Run Code Online (Sandbox Code Playgroud)
但是我不知道如果我在mypro-home中修改一些文件(删除或添加和修改)怎么办,如何使mypro-usb同步更改,我也想同步在桌面上的mypro.
怎么做?
---------------在我从richj得到答案后添加以下内容----------------
到richj:
感谢您的回复.
以下是我的做法:Pro-Com是我桌面上的项目(初始化为存储库),Pro-USB是我USB中的存储库,Pro-Home是我家用计算机中的存储库.
当我在Pro-Com中进行一些更改时,我使用以下命令:
hg add
hg push Pro-USB
Run Code Online (Sandbox Code Playgroud)
然后我将目录更改为Pro-USB,使用:
hg update
hg push Pro-Home
Run Code Online (Sandbox Code Playgroud)
在我的家用电脑中,我运行:
hg update
(make some edition)
hg commit
hg push Pro-USB
Run Code Online (Sandbox Code Playgroud)
然后USB中的存储库与我的家用电脑的存储库相同,我可以将其推送到我的桌面.
在我看来,存储库之间的操作可以通过"hg push"和"hg pull"完成,其他命令如"hg update""hg import"只能在工作副本和它的存储库之间工作.
我的理解是对的吗?
嗨:我对hibernate缓存缓存的内容感到困惑.
从文档中,我知道hibernate中存在缓存类型.
第一级:交易级别.似乎会话持久化的实体在此缓存.
二级缓存:我真的不知道这个缓存,从api,它说这个缓存工作在sessionfactory级别......我无法理解.
查询缓存:这对我来说很容易理解(也许我错了).它将查询参数与相关实体一起缓存.
这就是我所知道的hibernate中的缓存.
有人可以给我更多细节吗?
顺便说一句,我不擅长sql/jdbc工作,所以我也想知道我应该怎么知道sql/jdbc来了解更多关于hibernate(任何文档?)的内容?我不想只是一个hibernate用户,因为它只是一个工具,我想要的是从这个精彩的框架中学到一些东西.:)
你好:在我们的应用程序中,我们从数据库中检索了一些数据,例如,表有列:id,name,age,address,email。
然后我们会根据客户的要求得到其中一些属性。
如果客户需要 id、姓名,我们将获取 id 姓名,如果客户需要 id、姓名、年龄,我们将获取 id、姓名、年龄。
现在我们要创建一个类来包装这些属性。但是我们并不确切知道需要哪个字段。
String[] requestPro={"name","id"}; //this field is specified by client
Map<String, Object> map=new HashMap<String, Object>();
Entity en=Entity.newInstance();
for(String p:requestPro){
map.put(p, BeanUtils.getProperty(en, p));
}
Run Code Online (Sandbox Code Playgroud)
这里可以用Class来代替map吗?
我想制作类似于exporlor的win7文件效果:标题栏的不透明度小于1,而内容没有不透明度.
然后我尝试将两个元素组合在一起来制作它:
<div id="outer" style="background-color:black;opacity:0.6;padding:30px;position:absolute;width:400px;height:400px;">
<div id="inner" style="background-color:gray;opacity:1;height:100%;"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想让div#outer
不透明度为0.8,然后使其div#inner
不具有不透明度(opacity = 1).
但似乎这不起作用.由于不透明度div#outer
会影响到div#inner
.
有任何想法吗?
我通过快速框架使用NodeJS,现在我想使用内存缓存来保存对象(差不多3000).
我曾想过创建一个像
cache.js:
var cache={};
module.exports=cache;
Run Code Online (Sandbox Code Playgroud)
然后在任何模块中我需要缓存我可以要求它:
require('cache')
cache.xx=xxx
Run Code Online (Sandbox Code Playgroud)
但是,似乎我无法确保该cache
对象将被创建,并且在应用程序运行期间将只有一个副本.由于require
可能会使用模块缓存.(从此链接:https://stackoverflow.com/a/9210901/306719)
有什么建议吗?
caching ×2
java ×2
apache ×1
click ×1
css ×1
dom-events ×1
hibernate ×1
html ×1
iis ×1
javascript ×1
jdbc ×1
mercurial ×1
nginx ×1
node.js ×1
oauth-2.0 ×1
rbac ×1
reflection ×1
spring ×1
spring-boot ×1
webserver ×1