我编写了自己的自定义后合并钩子,现在我在我的主项目文件夹中添加了一个"hooks"目录(因为git不跟踪.git/hooks中的更改),在某处我读到我可以从钩子中创建一个符号链接到.git/hooks所以每次有人更改时我都不必将文件从一个文件夹复制到另一个文件夹,所以我尝试了:
ln -s -f hooks/post-merge .git/hooks/post-merge
但它似乎没有用,任何想法为什么?"ln hooks/post-merge .git/hooks/post-merge"工作正常,但制作一个硬链接就像copyin一样我猜....
事情就是这样:我需要从下个月开始使用某个Java EE Web应用程序并将其部署到Amazon EC2(我需要先设置)(使用http://aws.amazon.com/free/faqs/ AWS免费层使用 - 希望它支持Tomcat + MySQL/PostgreSQL).
问题:我从未部署过Java EE应用程序(在专用主机上甚至不是普通的应用程序),也没有设置Amazon EC2环境.
是否有任何,最好的白痴证明,教程/操作方法/从一开始就做到这一点(注册到亚马逊)直到最后(当你的应用程序全部启动并运行时)?
我确实找到了一些关于如何设置Amazon EC2实例的教程,如何正常部署Java EE应用程序,但我正在寻找的是一个单独的教程.
好的,所以我和一个朋友正在做一个关于PHP安全性的迷你演示文稿(虽然我不是真正的PHP)并且他让我找到一些易受攻击的PHP代码的例子(一个易于SQL注入和所有其他类型的攻击的代码) ).我想知道是否有任何网站都有好的和坏的代码片段显示你应该和不应该编码?
基本上我会把它们放到我们的网站上,他会尝试破解它,然后我们将展示"适当的"网站,他会再次尝试破解它.
假设我们有一个包含这些类的程序:
public interface AbstractItem {
}
public SharpItem implements AbstractItem {
}
public BluntItem implements AbstractItem {
}
public interface AbstractToolbox {
//well the problem starts here...
public List<AbstractItem> getItems();
}
public ExpensiveToolbox implements AbstractToolbox {
private List<SharpItem> items = new ArrayList()<SharpItems>;
public List<SharpItem> getItems() { return this.items; }
}
public CheapTooblox implements AbstractToolbox {
private List<BluntItem> items = new ArrayList()<BluntItem>;
public List<BluntItem> getItems() { return this.items; }
}
Run Code Online (Sandbox Code Playgroud)
容易,对吗?好吧,我们现在想要制作一个这样的方法(在一些随机类中):
public void doImportantStuff(AbstractToolbox toolbox) {
//important stuff!
//this obviously won't …
Run Code Online (Sandbox Code Playgroud) 我试图通过以下方式在FacesConverted中注入ManagedBean:
@ManagedBean
@RequestScoped
@FacesConverter(forClass = Group.class)
public class GroupConverter implements Converter {
@ManagedProperty("#{groupService}")
private GroupService groupService;
@Override
public Group getAsObject(FacesContext context, UIComponent arg1,
String groupName) {
return groupService.findGroupByName(groupName);
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object group) {
return ((Group) group).getName();
}
public GroupService getGroupService() {
return groupService;
}
public void setGroupService(GroupService groupService) {
this.groupService = groupService;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是没有注入groupService,我得到一个NullPointerEx.它不应该自动自动装配,因为它也是ManagedBean吗?当我将"getAsObject"更改为"return new Group();"时,这一切都有效.明显.
有任何想法吗?
我最近一直在想.假设我们正在使用JSF + Spring + JPA/Hibernate(或任何其他技术)进行webapp,并且假设我们有一个"用户"实体.我们希望用户拥有唯一的登录信息.如果我们想要这样做,那么我们可以在"登录"列上放置一个@UniqueConstraint,但是我们的应用程序仍然需要在用户注册期间检查用户输入是否有效(唯一),没有它,并且只有数据库约束我们只会得到一个错误.这让我想到,DB约束真的有必要/有帮助吗?只有当有人试图破解我们时,我能想到的唯一两次才会想到(但我想我们的应用程序应该是SQL注入证明)或者我们尝试手动更改数据库内容(不应该真的发生了).实际上现在我考虑一下,DB约束在一般必要/良好实践中是什么?就像弦乐的长度等.
前段时间(大约4-5个月前),我参加了一个关于Java EE的讲座,并且在某些时候,讲师开始讨论Web服务以及创建一个好的Web服务是多么困难,因为所有的IDE都以不同的方式构建它们(或者类似的东西)并且一般来说最好使用Netbeans来创建它们,因为Eclipse有一些问题,问题是他并没有真正说出为什么Eclipse是坏的.现在我想知道他说的是真实的,为什么,将Netbeans用于网络服务真的更好吗?为什么?
我总是确定(不知道为什么)最好在变量中添加注释,但在浏览Hibernate文档时http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity -hibspec-collection我注意到他们倾向于注释方法.所以我应该在方法之前添加注释,如下所示:
@Entity
public class Flight implements Serializable {
private long id;
@Id @GeneratedValue
public long getId() { return id; }
public void setId(long id) { this.id = id; }
}
Run Code Online (Sandbox Code Playgroud)
或者这样做更好:
@Entity
public class Flight implements Serializable {
@Id @GeneratedValue
private long id;
public long getId() { return id; }
public void setId(long id) { this.id = id; }
}
Run Code Online (Sandbox Code Playgroud)
或者也许没有区别?
我对IE8(并且只有IE)有一定的问题,当我关注一个包含文本的输入字段时,光标移动到该字段的开头.我正在尝试将光标设置在最后.我用Google搜索并找到了以下解决方案:
function setSelectionRange(input, selectionStart, selectionEnd) {
input = document.getElementsByTagName("input")[0];
if (input.createTextRange) {
var range = input.createTextRange();
range.collapse(true);
range.moveEnd('character', selectionEnd);
range.moveStart('character', selectionStart);
range.select();
}
}
Run Code Online (Sandbox Code Playgroud)
这里的"输入"只是一个类(var inputElement = this.input;
)中的输入字段.问题是"setSelectionRange"和"createTextRange".难道我做错了什么?是否仅为TextArea定义了createTextRange?
@Edit:在将输入更改为document.getElementsByTagName("input")[0]之后,似乎我正在使用类似"两个对象"的js输入和jquery输入.我可以转到"createTextRange"分支,但它仍然不会改变光标的位置.
@ Edit2:我稍微更改了代码,现在我从文档中获取输入并进入if分支.但随后浏览器显示我:
Unexpected call to method or property access.
Run Code Online (Sandbox Code Playgroud)
在这条线上 var range = input.createTextRange();
@ Edit3:回答詹姆斯的问题.我有一个类,在那个类中,整个事物与一个有输入的jsp相关联.在这个类中,我为字段设置了一个焦点处理程序,它与jsp的输入相关联,inputElement.focus(onInputFocus)
然后我有这样的事情:
function onInputFocus() {
isFocused = true;
valueDivElement.hide();
labelElement.html(labelFocus);
if (currentData.selectedEntityCode) {
inputElement.val(currentData.selectedEntityCode);
inputElement.attr('title', currentData.selectedEntityCode);
} else {
}
var input = document.getElementsByTagName("input")[0];
input.value = input.value;
}
Run Code Online (Sandbox Code Playgroud)
整个班级显然要大得多,这不是我的代码,但我猜这是最后一件正在执行的事情.
这是一个关于最佳实践/设计模式的问题,而不是正则表达式.
简而言之,我有3个值:from,to和我想要改变的值.从必须匹配几种模式之一:
XX.X
>XX.X
>=XX.X
<XX.X
<=XX.X
XX.X-XX.X
Run Code Online (Sandbox Code Playgroud)
而To必须是十进制数.根据From中给出的值,我必须检查我想要更改的值是否满足From条件.例如,用户输入"From:> 100.00 To:150.00"表示应更改大于100.00的每个值.
正则表达式本身不是问题.问题是,如果我匹配整个From与一个正则表达式并且它通过我仍然需要检查输入了哪个选项 - 这将在我的代码中生成至少5个IF,并且每次我想要添加另一个选项时我将需要添加另一个如果 - 不酷.如果我要创建5个模式,同样的事情.
现在我有一个HashMap,它将一个模式作为键,一个ValueMatcher作为值.当用户输入From值然后我在循环中将其与该映射中的每个键匹配,如果匹配,那么我使用相应的ValueMatcher来实际检查我想要更改的值是否满足"From"值.
另一方面,这种方法要求我拥有一个具有所有可能性的HashMap,一个ValueMatcher接口和5个实现,每个实现只有一个简短的"匹配"方法.我认为它肯定比IF好,但看起来仍然是一个夸张的解决方案.
还有其他办法吗?或者这是我应该如何做到的?我真的很遗憾我们不能在HashMap中保存方法/将它们作为参数传递,因为那时我只有一个包含所有匹配方法的类并将它们存储在HashMap中.
java ×5
java-ee ×2
amazon-ec2 ×1
cloud ×1
collections ×1
constraints ×1
converter ×1
database ×1
eclipse ×1
generics ×1
git ×1
githooks ×1
hibernate ×1
javascript ×1
jpa ×1
jquery ×1
jsf ×1
jsf-2 ×1
linux ×1
managed-bean ×1
netbeans ×1
php ×1
security ×1
web-services ×1