-
004查看全部
-
003查看全部
-
002查看全部
-
001查看全部
-
4种过滤器查看全部
-
案例部分,等等学完annotation之后再来学查看全部
-
过滤器的分类查看全部
-
Filter查看全部
-
过滤器的工作原理查看全部
-
@login.jsp <form action="<%=request.getContextPath()%>/servlet/LoginServlet" method="post"> 用户名:<input type="text" name="username" /> 密码:<input type="password" name="password" /> <input type="submit" value="提交" /> </form> @编码设置,LoginFilter.java ...String noLoginPaths = config.getInitParameter("noLoginPaths"); String charset=config.getInitParameter("charset"); if(charset==null){//如果不设置,默认UTF-8 charset="UTF-8"; } request.setCharacterEncoding(charset); if (noLoginPaths != null) {... @LoginServlet.java public void doPost(HttpServletRequest request, HttpServletResponse response) { String username=request.getParameter("username"); String password=request.getParameter("password"); if("admin".equals(username)&&".".equals(password)){ //校验成功 HttpSession session=request.getSession(); session.setAttribute("username", username); response.sendRedirect(request.getContextPath()+"/success.jsp"); }else{ //校验失败 //同上..."/fail.jsp"; } }查看全部
-
@登录校验 @LoginFilter.java public class LoginFilter implements Filter { private FilterConfig config; public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) { HttpServletRequest request = (HttpServletRequest) arg0; //response同理 HttpSession session = request.getSession(); String noLoginPaths = config.getInitParameter("noLoginPaths"); if (noLoginPaths != null) { String[] strArray = noLoginPaths.split(";"); for (int i = 0; i < strArray.length; i++) { if (strArray[i] == null || "".equals(strArray[i])) { continue; } if (request.getRequestURI().indexOf(strArray[i]) != -1) { arg2.doFilter(arg0, arg1); return; } } } if(session.getAttribute("username")!=null){ arg2.doFilter(arg0, arg1); }else{ response.sendRedirect("login.jsp"); } } public void init(FilterConfig arg0){ config = arg0; } }查看全部
-
在web.xml中配置charset 为 UTF8,然后在过滤文件中设置类型为UTF-8 @web.xml <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.imooc.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/servlet/LoginServlet</url-pattern> </servlet-mapping> <filter> <filter-name>LoginFilter</filter-name> <filter-class>com.imooc.filter.LoginFilter</filter-class> <init-param> <param-name>noLoginPaths</param-name> <param-value>fail.jsp;login.jsp;LoginServlet</param-value> </init-param> <init-param> <param-name>charset</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>查看全部
-
过滤器实现对用户统一认证<br><br> 1:创建一个Web项目——创建对应的目录结构,导入对应的依赖<br> 2:创建登录的页面<br> 3:创建一个处理登录的Servlet——处理登录页面的登录请求,比对一下用户输入的用户名和密码是否一致,并作对应的处理<br> 4:部署项目、启动应用、结合浏览器调试、测试,发现通过URL地址就能访问对应的页面,这样是不合适不安全的,所以,就需要过滤器了<br> 5:创建过滤器——统一认证用户是否已经登录,其中经过分析实验,发现不过滤的请求路径还是挺多的,所以,就引出了FilterConfig这个类的使用,统一配置不过滤的请求路径,采用集合的方式也是一样的道理,实际开发中中我就曾经使用过数据的方式来实现<br> 6:继续结合浏览器,进行调试、测试、完善等工作。查看全部
-
过滤器实际使用场景查看全部
-
@AsyncServlet.java public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Servlet执行开始时间:"+new Date()); AsyncContext context = request.getAsyncContext(); new Thread(new Executor(context)).start(); System.out.println("Servlet执行结束时间:"+new Date()); } public class Executor implements Runnable { private AsyncContext context; public Executor(AsyncContext context) { this.context = context; } public void run() { // 执行相关复杂业务 try { Thread.sleep(1000 * 10); // context.getRequest(); // context.getResponse(); System.out.println("业务执行完成时间:" + new Date()); } catch (InterruptedException e) { e.printStackTrace(); } } } @输出结果: Start——AsyncFilter Servlet执行开始时间:Sat Mar 12 15:40:26 CST 2016 Servlet执行结束时间:Sat Mar 12 15:40:26 CST 2016 End——AsyncFilter 业务执行完成时间:Sat Mar 12 15:40:36 CST 2016查看全部
举报
0/150
提交
取消