实现一个登录页面跳转到下载页面的案例
index14_login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
login
index14_download.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
DownloadTest
欢迎来到资源下载页面
Servlet13_login.java
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.HttpSession;
import java.io.IOException;
@WebServlet("/servlet13_login")
public class Servlet13_login extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String adminname = req.getParameter("adminname");
String password = req.getParameter("password");
if (adminname.equals("admin") && password.equals("123456")) {
HttpSession session = req.getSession();
session.setAttribute("adminname", adminname);
resp.sendRedirect("index14_download.jsp");
}
}
}
Servlet13_DownloadFilter.java
@WebFilter("/index14_download.jsp")
public class Servlet13_DownloadFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//强转子类,多态,向下转型
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession httpSession = request.getSession();
String name = (String) httpSession.getAttribute("adminname");
if (name == null) {
//name==null不是登录状态,直接来到登录页面
response.sendRedirect("/index14_login.jsp");
} else {
//如果name不为空了,证明用户已经登录上了,过滤链继续往下走。
filterChain.doFilter(servletRequest, servletResponse);
}
}
}



