使用servlet与html来建立登录系统;
(登录界面,在里面有form表单,表单元素有用户名、密码和验证码;提交时,由html文件转向Servlet处理程序)、(servlet程序:处理form表单提交过来的数据,实现用户登录验证)、(主文件:登陆成功之后进入的系统功能界面,在此界面对系统进行操作)、((servlet程序:将验证码图片输出到Form表单中)四个文件。
在完成以上步骤后,再对登录程序进行小BUG修改;如:
,直接访问http://--------------也可以打开登录界面;
,;
这两点都是不允许的。
因此,在系统登录后,必须严格的退出系统,仅仅是关闭页面或浏览器而并没有退出系统。在session有效期内,仍然可以访问相关页面。
如何修改这些问题呢?
第一步:对Servlet程序(、 )设置页面不缓存,通过设置页面不缓存那么每次提交数据或刷新页面时就不能能够直接从缓存中读出页面而是再次从服务端进行数据操作。在servlet程序添加以下代码就可以完成页面不缓存功能;
//设置页面不缓存
("Pragma", "No-cache");
("Cache-Control", "no-cache");
("Expires", 0);
第二步:严格地退出系统。退出系统就是对session对象进行注销:
HttpSession: 会话对象,由于session对象是基于cookies的,在一个会话期间有效,可以跨多个请求域传值,如果不对session对象进行注销,就会一直存在;
建立session对象:
HttpSession session = (true);
getSession()方法默认值为true,当前请求域中存在session,拿过来复用,如果不存在,创建新的会话对象session。
如果为参数false,当前请求域中存在session,拿过来复用;如果不存在,不创建新的会话对象session,即返回null。
session注销有两种方式:
·()方法,将session注销,这是人为使用注销的方法在servlet程序或jsp文件中使用。
·,由web容器来注销session。
注意:关闭浏览器并不能销毁session,它依然存活在服务器端。
下面是登录系统的所有文件
<?xml version="" encoding="UTF-8"?>
<web-app version="" xmlns=""
xmlns:xsi="-instance"
xsi:schemaLocation="
-">
<filter>
<filter-name>Encode</filter-name>
<filter-class></filter-class>
<init-param>
<param-name>encode</param-name><!--这里定义初始化参数encode,并与程序中init方法读入-->
<param-value>UTF-8</param-value><!--这里是参数值,可以修改编码参数值,而不改变源代码 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>Encode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class></s
登录系统 来自淘豆网www.taodocs.com转载请标明出处.