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);
}
}