:单点登录
1
、使用
Cookie
解决单点登录
技术点:
1
、设置
Cookie
的路径为
setPath("/") .
即
Tomcat
的目录下都有效
2
、设置
Cookie
的域
setDomain(".itcast.com")
即
bbs.itcast.com,
或是
mail.itcast.com
有效。即跨域。
3
、设置
Cookie
的时间。即使用户不选择在几天内自动登录,也应该保存
Cookie
以保存在当前浏览器没有关闭的情况下有效。
4
、使用
Filter
自动登录。
实现步骤:
1
、首先要准备出几个虚拟主机并配置
hosts
文件,即本机
DNS
。
配置虚拟主机,主要通过修改
tomcat_home/conf/server.xml
文件完成:
增加几个
Host
节点,通过
Cookie
实现自动登录,必须配置的虚拟主页满足
xxx.itcast.cn
,即主域名必须保持一致。
2
、先在
bbs
(或是
)虚拟目录下,开发一个可以自动登录的程序,使用
Filter
:
1
、登录的主页如下
:
<%@
page
language
=
"java"
import
=
"java.util.*"
pageEncoding
=
"UTF-8"
%>
<%@
taglib
uri
=
"http://java.sun.com/jsp/jstl/core"
prefix
=
"c"
%>
<
html
>
<
head
>
</
head
>
<
body
>
<
p
>
在同一台服务器上,多个站点自动登录
....>>:
<%=
session.getId()
%>
</
p
>
<
c:if
test
="${
empty
sessionScope.user}"
>
<
form
name
=
"f"
method
=
"post"
action
=
"
<
c:url
value
=
'/login'
/>
"
>
Name
:
<
input
type
=
"text"
name
=
"name"
/><
br
/>
Pwd
:
<
input
type
=
"text"
name
=
"pwd"
/><
br
/>
<
input
type
=
"checkbox"
name
=
"chk"
value
=
"7"
>
一周内自动登录
<
br
/>
<
input
type
=
"submit"
value
=
"
登录
"
/>
</
form
>
<
/
c:if
>
<
c:if
test
="${
not empty
sessionScope.user}"
>
欢迎你
:${user}
。
<
a
href
=
"
<
c:url
value
=
'/loginout'
/>
"
>
安全退出
</
a
>
<
/
c:if
>
<
br
/>
相
关站点:(只要在一边登录成功,即可以自动登录到另一个程序)
<
br
/>
<
a
href
=
"http://mail.itcast.com:7777"
>
mail.itcast.com
</
a
><
br
/>
<
a
href
=
"http://bbs.itcast.com:7777"
>
bbs.itcast.com
</
a
><
br
/>
</
body
>
</
html
>
2
、登录的
Servlet
程序如下:
/**
*
用户登录
*/
public
class
LoginServlet
extends
HttpServlet{
public
void
doGet(HttpServletRequest req, HttpServletResponse resp)
throws
ServletException, IOException {
doPost(req, resp)
}
public
void
doPost(HttpServletRequest req, HttpServletResponse resp)
throws
ServletException, IOException {
String nm = req.getParameter(
"name"
)
String pwd = req.getParameter(
"pwd"
)
String chk = req.getParameter(
"chk"
)
//
是否选中了
7
天自动登录
String forward =
"/index.jsp"
if
(nm!=
null
&&!nm.trim().equals(
""
) &&nm.startsWith(
"it"
)
//
用户名是
it
开始,且密码是
pwd
开始的可以登录
&&pwd !=
null
&&!pwd.trim().equals(
""
) &&
pwd.startsWith(
"pwd"
)){
System.
err
.println(
"
登录成功。。。。。
"
)
forward =
"/jsps/welcome.jsp"
//
无论如何,都要设置
cookie,
如果没有选择自动登录,则只在当前页面的跳转时有效,否则设置有效期间为
7
天。
Cookie cookie =
new
Cookie(
"autologin"
,nm+
"@"
+pwd)
cookie.setPath(
"/"
)
//
如果路径为
/
则为整个
tomcat
目录有用
cookie.setDomain(
".itcast.com"
)
//
设置对所有
*.itcast.com
为后缀的域名效
if
(chk!=
null
){
int
time = 1*60*60*24*7
//1
秒
*60=1
分
*60
分
=1
小时
*24=1
天
*7=7
天
cookie.setMaxAge(time)
}
resp.addCookie(cookie)
req.getSession().setAttribute(
"user"
, nm)
}
else
{
System.
err
.println(
"
登录不成功。。。。。。
"
)
}
req.getRequestDispatcher(forward).forward(req, resp)
}
}
1、首先打开win8.1开始菜单,在列表中选择“运行”选项,然后在运行窗口中输入“services.msc ”命令,并按确定或回车键(如下图所示)
2、打开系统服务设置窗口后,在右侧服务列表中找到“SIMATIC IEPG Help service ”和“S7TraceserviceX ”这两个服务选项(如下图所示)
3、首先打开SIMATIC IEPG Help service 服务属性设置窗口,将该服务启动类型改为“手动”或“禁止”状态,并点击确定保存当前设置(如下图所示)
4、然后再次打开“S7TraceserviceX ”服务属性设置窗口,将该服务启动类型改为“手动”或“禁止”状态,并点击确定保存当前设置,最后重启电脑生效,不会再d出Assertion错误提示窗口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)