我需要使用户会话无效(或踢).应用程序仅限制用户每个容器只登录一个用户.
我尝试从会话注册表调用removeSessionInformation,它完成了解锁用户.所以其他用户可以使用踢脚会话用户名登录.
但是被踢的那个用户的SessionContextHolder仍然是.所以他们仍然拥有访问受保护页面的相同权限.
如何从指定的会话注册表信息中失效或删除SessionContextHolder的Principal?
ps:在我的旧应用程序中,我在UserDomain(UserDetails)中提供了一个包含HttpSession的变量.当他们需要踢用户时,我只是从指定的UserDomain中使HttpSession无效.但我不知道如何在春天这样做(它更像是删除了SessionContextHolder的Principal而不是HttpSession).SessionRegistryImpl在Spring中的实现几乎与实现相同.
我有一个包含一个带有sevral视图的布局的应用程序,当我为一个视图设置动画时,所有视图都被重绘了!这是正常的行为还是我做错了什么?我想取消此行为,只是重绘我手动使thanx无效的视图
<SecondsArc
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/secondsArc"
android:background="#00000000"
android_layout_gravity="center"></SecondsArc >
<MinutesArc
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/minutesArc"
android:background="#00000000"
android_layout_gravity="center"></MinutesArc >
Run Code Online (Sandbox Code Playgroud)
我说两个自定义视图和secondsArc视图每秒都被动画,因此每秒重绘10次,问题是MinutesArc也被重绘了!问题是,我有大约10个视图,所有的都被重新绘制每秒10次.这个方法在SecondsArc中被调用来旋转它
public void rotateByDegree(float degree){
RotateAnimation rotateAnim = new RotateAnimation(currentDegree, currentDegree + degree, getWidth()/2,270);
rotateAnim.setDuration(600);
rotateAnim.setFillAfter(true);
rotateAnim.setFillEnabled(true);
this.startAnimation(rotateAnim);}
Run Code Online (Sandbox Code Playgroud) 我用OnPaint方法覆盖了在屏幕上绘制椭圆.
protected override void OnPaint(PaintEventArgs e)
{
MessageBox.Show("Paint");
if (debugStarted)
{
int y = rtbLogicCode.PlaceToPoint(new Place(0, debugLine)).Y;
if (rtbLogicCode.GetVisibleState(debugLine).ToString() == "Visible")
{
e.Graphics.FillEllipse(new LinearGradientBrush(new Rectangle(0, y, 15, 15), Color.LightPink, Color.Red, 45), 0, y, 15, 15);
}
base.OnPaint(e);
}
}
private void rtbLogicCode_Scroll(object sender, ScrollEventArgs e)
{
this.Invalidate();
}
Run Code Online (Sandbox Code Playgroud)
滚动事件(在Richtextbox上)被正确处理,但即使我使表单无效,它也没有调用OnPaint函数(消息框未显示).
可能的原因是什么?
编辑:我忘了提到我的子窗体的初始化函数(使用MDI属性添加为主窗体的控件),我设置以下样式:
private void LogicCodeInit()
{
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.UserPaint, true);
}
Run Code Online (Sandbox Code Playgroud)
Edit2:我也忘了提到子窗体是作为TabControl的控件添加的.然后将TabControl添加为主窗体的控件.
我需要强制重绘的的的RatingBar控制.
在评级栏和样式出现许多问题后,我设法让几乎所有工作都能正常工作.
我在listview项目中使用它.由于它是如何工作的,人们必须与它的外观和行为"战斗"一点.我最终使用了我在SO上找到的解决方案,其中一个设置它作为指示器,但是在自己手动计算评分栏上的点击对应的分数时.在浏览代码时代码总是产生正确的结果,但第一次控制绘画本身是错误的.这是我在getView "第一部分"中的代码:
final RatingBar rating = (RatingBar)view.findViewById(R.id.listitem_catalog_rating);
rating.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
float touchPositionX = event.getX();
float width = rating.getWidth();
float starsf = (touchPositionX / width);
starsf = starsf * param_final__data.score_max; // 5
int starsint = (int) starsf + param_final__data.score_min;
byte starsbyte = (byte) starsint;
param_final__data.score_cur = starsbyte;
starsf = starsint;
rating.setRating(starsf);
rating.setVisibility(View.INVISIBLE);
// force repaint and set …
Run Code Online (Sandbox Code Playgroud) 有没有办法让 Amazon CloudFront 失效(通过管理控制台),使所有匹配模式的文件失效?例如图像/*.png
语境 -
谢谢,-阿米特
嗨,我试图让我的应用程序从我制作的自定义视图更新画布此视图创建一个正方形,中心带有线条和圆形。我想按下一个按钮并在画布上随机绘制 x 和 y 坐标。
这是我的主要活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// EditText numDart = (EditText) findViewById(R.id.numDarts);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public int convertToDpi(int px){
DisplayMetrics metrics = getResources().getDisplayMetrics();
int unit = metrics.widthPixels/20;
return px * unit;
}
public void drawCanvas(View v){
View view = (View) findViewById(R.id.canView);
Paint black = new Paint();
black.setColor(Color.BLACK);
black.setStyle(Style.FILL); …
Run Code Online (Sandbox Code Playgroud) 如果我对另一个成员使用const引用,该引用是否可能失效?
class Class {
public:
const int &x{y};
private:
int y;
};
Run Code Online (Sandbox Code Playgroud)
例如,当我在一个向量中使用此类的实例时,它会在a之后增加其容量push_back
.根据标准,如果向量必须增加其容量,则所有迭代器和引用都将失效.之后参考仍然有效吗?
我在此链接上看到了影响Impala 1.1版的内容:
从Impala 1.1开始,REFRESH语句仅适用于现有表。对于新表,您需要发出“ INVALIDATE METADATA”语句。
这对于Impala的更高版本仍然适用吗?
据我了解,_mm_clflush()
/_mm_clflushopt()
如果缓存行已更改,则在将其保存到内存时使缓存行无效。有没有一种方法可以简单地放弃缓存行,而不将对其进行的任何更改保存到内存中?
一个用例是在释放内存之前:我不再需要缓存行或它们的值。
我找不到标准中指针/引用失效的任何定义.我问,因为我发现C++ 11禁止字符串的写时复制(COW).据我所知,如果应用了COW,那么在以下命令之后p
仍然是一个有效的指针和r
一个有效的引用:
std::string s("abc");
std::string s2(s);
char * p = &(s2[0]);
char & r = s2[0];
s2[1] = "B";
Run Code Online (Sandbox Code Playgroud)
只是他们不再指向/引用第一个字符s2
,而只是指向第一个字符s
.
在C++ 11标准中,据说非常量std::basic_string::operator[]
可能不会使字符串元素的指针/引用(以及迭代器)无效.
哪些规则说上面显示的例子实际上会失效p
,r
如果实施了COW?