JavaWeb学习记录(六)——用户登录功能之Cookie
2015-06-30 16:07
986 查看
private Cookie nameCookie=null;
private Cookie passCookie=null;
private Cookie cookieUser;
private UserDao userDao=new UserDaoImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
createCookies(request);
String value=request.getParameter("oper");
//点击预登录按钮
if("pre".equals(value)){
String name=nameCookie.getValue();
String pass=passCookie.getValue();
//判断是否是初始化的值,如果不是存储到request域中
if(!"1".equals(name)){
request.setAttribute("name", name);
}
if(!"1".equals(pass)){
request.setAttribute("pass", pass);
}
//跳转到登录界面
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else if("login".equals(value)){//请求点击登陆按钮 ./login.do?oper=pre操作,获取cookie中的信息
String name=request.getParameter("name");
String pass=request.getParameter("pass");
User user=new User();
user=userDao.checkLogin(name, pass);
//验证用户名和密码
if(user!=null){
nameCookie.setValue(name);
passCookie.setValue(pass);
cookieUser=getCookie(request, "user");
if(cookieUser==null){
cookieUser=new Cookie("user","");
}
cookieUser.setValue(user.getId()+"");
response.addCookie(nameCookie);
response.addCookie(passCookie);
response.addCookie(cookieUser);
request.getRequestDispatcher("./goods_pay.jsp").forward(request, response);
}else{
nameCookie.setValue(name);
passCookie.setValue("1");
response.addCookie(nameCookie);
response.addCookie(passCookie);
request.getRequestDispatcher("/login.do?oper=pre").forward(request, response);
}
}else if("delete".equals(value)){
cookieUser=getCookie(request, "user");
if(cookieUser!=null){
cookieUser=new Cookie("user", null);
cookieUser.setMaxAge(0);
response.addCookie(cookieUser);
}
request.getRequestDispatcher("/init.do").forward(request, response);
}
}
//判断是否已经有了存储 用户名和密码的cookie对象
private void createCookies(HttpServletRequest request) {
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(Cookie ck:cookies){
//获取Cookie名称
String name=ck.getName();
if("name".equals(name)){
nameCookie=ck;
}else if("pass".equals(name)){
passCookie=ck;
}
}
}
//如果request中没有cookie对象,创建要存储用户名的cookie对象
if(nameCookie==null){
nameCookie=new Cookie("name", "1");
}
if(passCookie==null){
passCookie=new Cookie("pass", "1");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
private Cookie getCookie(HttpServletRequest request,String cookieName) {
Cookie cookie = null;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie ck : cookies) {
String name = ck.getName();
if (cookieName.equals(name)) {
cookie = ck;
}
}
}
return cookie;
}
private Cookie passCookie=null;
private Cookie cookieUser;
private UserDao userDao=new UserDaoImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
createCookies(request);
String value=request.getParameter("oper");
//点击预登录按钮
if("pre".equals(value)){
String name=nameCookie.getValue();
String pass=passCookie.getValue();
//判断是否是初始化的值,如果不是存储到request域中
if(!"1".equals(name)){
request.setAttribute("name", name);
}
if(!"1".equals(pass)){
request.setAttribute("pass", pass);
}
//跳转到登录界面
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else if("login".equals(value)){//请求点击登陆按钮 ./login.do?oper=pre操作,获取cookie中的信息
String name=request.getParameter("name");
String pass=request.getParameter("pass");
User user=new User();
user=userDao.checkLogin(name, pass);
//验证用户名和密码
if(user!=null){
nameCookie.setValue(name);
passCookie.setValue(pass);
cookieUser=getCookie(request, "user");
if(cookieUser==null){
cookieUser=new Cookie("user","");
}
cookieUser.setValue(user.getId()+"");
response.addCookie(nameCookie);
response.addCookie(passCookie);
response.addCookie(cookieUser);
request.getRequestDispatcher("./goods_pay.jsp").forward(request, response);
}else{
nameCookie.setValue(name);
passCookie.setValue("1");
response.addCookie(nameCookie);
response.addCookie(passCookie);
request.getRequestDispatcher("/login.do?oper=pre").forward(request, response);
}
}else if("delete".equals(value)){
cookieUser=getCookie(request, "user");
if(cookieUser!=null){
cookieUser=new Cookie("user", null);
cookieUser.setMaxAge(0);
response.addCookie(cookieUser);
}
request.getRequestDispatcher("/init.do").forward(request, response);
}
}
//判断是否已经有了存储 用户名和密码的cookie对象
private void createCookies(HttpServletRequest request) {
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(Cookie ck:cookies){
//获取Cookie名称
String name=ck.getName();
if("name".equals(name)){
nameCookie=ck;
}else if("pass".equals(name)){
passCookie=ck;
}
}
}
//如果request中没有cookie对象,创建要存储用户名的cookie对象
if(nameCookie==null){
nameCookie=new Cookie("name", "1");
}
if(passCookie==null){
passCookie=new Cookie("pass", "1");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
private Cookie getCookie(HttpServletRequest request,String cookieName) {
Cookie cookie = null;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie ck : cookies) {
String name = ck.getName();
if (cookieName.equals(name)) {
cookie = ck;
}
}
}
return cookie;
}
相关文章推荐
- JavaWeb学习记录(十五)——浏览器Cookie禁用后的处理
- JavaWeb学习记录(十六)——防止表单重复提交
- JavaWeb学习记录(十七)——JSP九大隐式对象
- 【java0009】多线程同步代码块和同步函数
- Java导出数据到Excel
- webService之(二)java原生态客户端
- Java中的ReentrantLock和synchronized两种锁定机制的对比
- java面向对象的三大特性
- Java基础练习题
- 【Java基础】Swing设计_1:常用窗体
- struts2的工作机制
- JavaWeb学习记录(十九)——jsp标签库
- JavaWeb学习记录(十九)——jstl自定义标签库之传统标签
- SpringMVC+RestFul详细示例实战教程
- JavaWeb学习记录(十九)——jstl自定义标签之简单标签
- JavaWeb学习记录(二十)——Model1模式(javaBean+jsp)实现简单计算器案例
- jdk安装
- JavaWeb学习记录(十九)——开发JSTL自定义标签
- Java中的异常 Exception finally
- JavaWeb学习记录(二十二)——模式字符串与占位符