网站计数器的设计Cookie+Session+ServletContext

package zxl;
//用户验证
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class LoginCl extends HttpServlet{
//重写init函数
public void init(){
try {
//添加网页计数功能 
FileReader fr=new FileReader("E:/javaMyeclipse/韩顺平模型/计数器.txt");
BufferedReader br=new BufferedReader(fr);
//读出一行数据
String numVal=br.readLine();
//关闭文件
br.close();
//将times值放入到ServletContext中
this.getServletContext().setAttribute("visitime", numVal);
//只会被调用一次
System.out.println("init被调用");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
//重写destroy函数
public void destroy(){
try {
//将新的访问次数写入计数器
FileWriter fw=new FileWriter("E:/javaMyeclipse/韩顺平模型/计数器.txt");
BufferedWriter bw=new BufferedWriter(fw);
//在文件中写入数据
bw.write(this.getServletContext().getAttribute("visitime").toString());
//关闭文件
bw.close();
System.out.println("destroy被调用");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
//处理get请求
//req:用于获得客户端(浏览器)的信息
//res:用于向客户端(浏览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res){
//处理业务逻辑
Connection ct=null;
Statement sm=null;
ResultSet rs=null;
try{
//接受用户名和密码
String u=req.getParameter("u");
String p=req.getParameter("p");
//调用UserBeanCl,1.创建一个对象
UserBeanCl ubc=new UserBeanCl();
if(ubc.checkUser(u, p)){
//真的合法
String keep=req.getParameter("keep");
if(keep!=null){
//将用户名和密码保存到客户端(Cookie)
//创建
Cookie name=new Cookie("myname",u);
Cookie pass=new Cookie("mypassword",p);
//设置时间2周
name.setMaxAge(14*24*3600);
pass.setMaxAge(142*24*3600);
//回写到客户端
res.addCookie(name);
res.addCookie(pass);
}
//将验证成功的信息,写入Session
HttpSession hs=req.getSession(true);
//修改Session的生存时间
hs.setMaxInactiveInterval(20);
hs.setAttribute("name", u);
hs.setAttribute("password", p);
//将ServletContext中的visitime所对应的值++
String times=this.getServletContext().getAttribute("visitime").toString();
//对times的值++再重新放回
this.getServletContext().setAttribute("visitime", (Integer.parseInt(times)+1)+"");
//跳转到Welcome
res.sendRedirect("main");
}else{
//说明不合法
//用户不存在
//跳转
res.sendRedirect("login");//写你要到的Servlet 的那个url
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs!=null){
rs.close();
}
if(sm!=null){
sm.close();
}
if(ct!=null){
ct.close();
}
} catch(Exception e){
}
}
}
//处理post请求
//req:用于获得客户端(浏览器)的信息
//res:用于向客户端(浏览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req, res);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值