HTML用cookie实现自动登录,Servlet通过Cookie保存用户信息,实现自动登录的demo.

开始界面HTML,跳转到判断是否有Cookie的Servlet.

SessionStartPage.html

Insert title here

判断是否有Cookie的Servlet.此处获取Cookie的数据。

package cc.session;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.Cookie;

/**

* Servlet implementation class Index

*/

@WebServlet("/sessionindex.do")

public class Index extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public Index() {

super();

// TODO Auto-generated constructor stub

}

protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException

{

Cookie[] cookies=request.getCookies();//查询浏览器存储的本地Cookie,返回结果是数组。

if(cookies!=null)

{

for(Cookie cookie:cookies)

{//Cookie由name和value两部分组成

String name=cookie.getName();

String value=cookie.getValue();

if("user".equals(name)&&"Daniel".equals(value)) {

request.setAttribute(name,value );

request.getRequestDispatcher("/sessionuser.view").forward(request, response);

return;

}

}

}

response.sendRedirect("SessionLogin.html");

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

//response.getWriter().append("Served at: ").append(request.getContextPath());

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

//doGet(request, response);

processRequest(request,response);

}

}

登录界面的Html

SessionLogin.html

Insert title here

名称

密码

自动登录:

登录的Servlet,此处创建Cookie,并将用户存到Cookie中。

package cc.session;

import java.io.IOException;

import java.net.URLDecoder;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Servlet implementation class SessionLogin

*/

@WebServlet("/sessionlogin.do")

public class SessionLogin extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public SessionLogin() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

response.getWriter().append("Served at: ").append(request.getContextPath());

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

//doGet(request, response);

request.setCharacterEncoding("UTF-8");

String user=URLDecoder.decode(request.getParameter("user"),"UTF-8");

String password=request.getParameter("password");

String autologin=request.getParameter("autologin");

if(user.equals("Daniel")&&password.equals("2018Daniel"))

{

if("auto".equals(autologin))

{//自动登录时,创建Cookie,保存用户名。

Cookie cookieLogin=new Cookie("user", user);

cookieLogin.setMaxAge(3*60);//设置保存时间为3分钟

response.addCookie(cookieLogin);

}

request.setAttribute("user", user);

request.setAttribute("password",password);

request.getRequestDispatcher("sessionuser.view").forward(request, response);

}

else {

response.sendRedirect("SessionLogin.html");

}

}

}

获取Cookie和登录成功后的Servlet

package cc.session;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Servlet implementation class SessionUser

*/

@WebServlet("/sessionuser.view")

public class SessionUser extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public SessionUser() {

super();

// TODO Auto-generated constructor stub

}

private void processRequest(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException {

String user=(String) request.getAttribute("user");//forward过来的request,需要通过getAttribute方法获得,不是getParameter

PrintWriter out= response.getWriter();

if(user==null)

{

response.sendRedirect("SessionLogin.html");

}

else {

out.println("Servlet User"+user+" Welcome!");

}

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

//response.getWriter().append("Served at: ").append(request.getContextPath());

//processRequest(request, response);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

//doGet(request, response);

processRequest(request,response);

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值