首先先在你需要攔截的地方取到一個值。這裏我寫是登錄,登陸成功後,才把name和pwd的值放入session,然後再寫一個編碼格式的攔截器,這樣的話,以後創建的文件都不需要手動添加編碼格式
@WebServlet("/seee") public class Deng extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=utf-8"); String name=req.getParameter("name"); String pwd=req.getParameter("pwd"); jie j=new Kou(); People p= j.deng(name,pwd); System.out.println(p); if(p!=null){ System.out.println("登录成功"); req.getSession().setAttribute("p",p); resp.sendRedirect("show"); }else { resp.sendRedirect("../index.jsp"); } } }
---------------------------------------------------------------------------------------------------------------------------------
//第一個編碼格式 @WebFilter("/*")其中的*是代表全部項目 @WebFilter("/*") public class NewFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=utf-8"); chain.doFilter(req, resp); } public void init(FilterConfig config) throws ServletException { } }
---------------------------------------------------------------------------------------------------------------------------------
這一部分是攔截aimain下面的jsp代碼,簡稱盜鏈接 @WebFilter("/aimain/*") public class SecondFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) servletRequest; HttpServletResponse resp = (HttpServletResponse) servletResponse; People p = (People) req.getSession().getAttribute("p"); System.out.println("asda"); if (p != null) { filterChain.doFilter(servletRequest, servletResponse); } else { resp.sendRedirect("../index.jsp"); } } @Override public void destroy() { } }