1>cookie,实现登录的时候,记住我
package JDBC.action;
import JDBC.bean.Users;
import JDBC.dao.EmpDao;
import JDBC.dao.UsersDao;
import JDBC.dao.impl.EmpDaoImpl;
import JDBC.dao.impl.UsersDaoImpl;
import com.mysql.cj.util.DnsSrv;
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;
import java.io.IOException;
@WebServlet(urlPatterns = "/login.do")
public class LoginServlet extends HttpServlet {
private UsersDao usersDao = new UsersDaoImpl();
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
Users users = usersDao.findByNameAndPwd(username,password);
if (users != null) {
req.getSession().setAttribute("users",users);
String rember = req.getParameter("rember");
if (rember != null) {
Cookie cookie1 = new Cookie("name",users.getUname());
Cookie cookie2 = new Cookie("pwd",users.getUpwd());
cookie1.setMaxAge(3600);
cookie2.setMaxAge(3600);
resp.addCookie(cookie1);
resp.addCookie(cookie2);
}
String url = resp.encodeURL(req.getContextPath()+"/welcome.jsp");
resp.sendRedirect(url);
} else {
req.setAttribute("error","用户名密码错误!!!");
String url = resp.encodeURL("/first.jsp");
req.getRequestDispatcher("/"+url).forward(req,resp);
}
}
}
2>filter:实现编码过滤器。
package JDBC.utils;
import javax.servlet.*;
import java.io.IOException;
public class MyFitler implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("Filter中的init方法");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("MyFilter中的doFilter方法");
filterChain.doFilter(servletRequest,servletResponse);//请求继续走,到达目的地
System.out.println("返回MyFilter中");
}
@Override
public void destroy() {
System.out.println("Filter中的destroy方法");
}
public MyFitler(){
System.out.println("Filter的构造方法");
}
}
package JDBC.utils;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
public class EncodeFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
System.out.println("EncodeFilter中的doFilter方法");
request.setCharacterEncoding(encode);
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("返回Encode中的doFilter");
}
String encode;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
encode = filterConfig.getInitParameter("encode");
System.out.println("配置文件中的encode的值:"+encode);
}
}