本帖最后由 13163997058 于 2018-6-3 09:58 编辑
王刘锁
先来说案例.用户登录成功后五秒跳转和在界面打印第几个登录的,本来想把这两个效果放在一
个界面,想了好久没想出来办法!这个五秒跳转的案例是用写一个html文件用js来完成的,而打印
登录人数是直接响应页面打印,两个不挨边,真是伤脑筋!这个问题用jsp可以完成!!,案例并不难,只要注意一些该修改和设
置的地方就可以了,首先我们先把中文乱码问题给解决了,一开始我就是响应的页面打印中文结
果是????,后来想起老师发过一个处理乱码的文档!这种响应的乱码问题的解决用响应response
来解决方法是response.setContentType("text/html;charset=utf-8");固定格式记住即可,然
后用请求对象request.getParameter("name属性值");来获取用户输入的信息并封装成一个User
类对象,把这个User对象传入UserDao中的login方法来用User对象的用户信息去数据库中查找记
录,返回的是一个新的User对象,然后我们再判断这个返回的User对象是否为null,不为null说明
查到了记录用户真实存在这时就可以做登录成功的操作,登录成功我们要响应一个页面,并在五
秒后跳转,response.sendRedirect("/web_02/Sucess.html");这个是响应的页面,在这个html文
件中我们要完成五秒倒计时跳转的功能,那我们要记住必须在<head>标签内定义一个新的标签
<meta http-equiv="Refresh" content="5,url=/web_02/index.html" />并且着个标签有着两
个属性Refresh响应头:5-该时间秒后跳转,url是要跳转到哪去,然后在<script>标签内定义一个
time=5,定义页面加载时间定时改变time,在改变time的方法里让time自减后写入显示time的
<span>标签.具体代码如下,因为忘的差不多了所以写出来记一下!!
<script type="text/javascript">
var time = 5;
window.onload = function() {
setInterval('changeTime()', 1000);
}
function changeTime() {
time--;
document.getElementById("s1").innerHTML = time
}
</script> 到这里这个案例基本完成了,当然最费脑的还是找bug了!关于统计登录成功人数的
只要记住Servlet的方法getServletContext()获取ServletContext对象后.再记住
setAttribute("count",count);和getAttribute("count");这两个方法基本就可以搞定!!
还有就是ServletContext的生命周期,它是在服务器启动的时候Tomcat为每一个项目单独创建的
一个域对象,所以它在整个项目有效并在服务器关闭或移除的时候销毁!!!
再来一些小知识点:
1,Servlet的生命周期:第一次去访问它的时候服务器会自动创建它的对象并执行其init方法,这
个动作只会做一次除非把服务器关闭或移除了才会销毁这时会执行destroy方法,也就是说无论
访问多少次Servlet都只在第一次访问执行上述动作,另外每一次访问都会执行其service方法在
该方法内根据请求方式调用不同doxxx方法,
2,设置响应头信息Refresh:addHeader和setHeader这里重点记set就可以.
setHeade(Stringname,Stringvalue);setDateHeader(String name,long date);
setIntHeader(String name,int value);这种是一个key对应一个value的头信息!! |