JSP学习笔记(5)——Servlet、监听器、过滤器、MVC模式介绍 (2)

在Servlet那个类上使用@WebServlet注解就可以,下面这段代码与之前在web.xml文件定义的也是一样的效果,点击之后也会跳转到hello.jsp中去

@WebServlet("/hello") public class FirstServlet{ ... } url-pattern补充 1. 精确匹配: 形式 匹配的url
/hello   :8080/servletdemo/hello  
/hello.html   :8080/servletdemo/hello.html  

之前我们写的链接的href属性,只写了hello,其实访问的url地址就是:8080/servletdemo/hello

2. 路径匹配:

**以“/”字符开头,并以“/*”结尾的字符串用于路径匹配**

形式 匹配的url
/user/*   :8080/user/hello :8080/user/he :8080/user/hello/aa  
/hello.html   :8080/servletdemo/hello.html  
3. 扩展名匹配:

简单来说,就是url以什么结尾的

形式 匹配的url
*.do   :8080/servletdemo/hello.do  
*.hello   :8080/servletdemo/aa.hello  
*.action   :8080/servletdemo/aa.action  
*.jsp   :8080/servletdemo/aa.jsp  
4. 缺省匹配:

就是相当于不写,匹配所有的url

<servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

参考 servlet的url-pattern匹配规则

Filter过滤器实现 1.实现Filter接口,重写方法

新建一个类,让它实现Filter接口

import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * @author StarsOne * @date Create in 2019/9/14 0014 21:35 * @description */ public class FirstFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("过滤器1已过滤..."); //必须要有doFilter方法,之后过滤结束就会跳转到匹配的url的Servlet中进行业务逻辑处理 filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } } 配置web.xml文件

规则和Servlet的配置差不多,这里就不过多解释了

<filter> <filter-name>FirstFilter</filter-name> <filter-class>FirstFilter</filter-class> </filter> <!--如果有多个,过滤器的顺序就是按照web.xml中的过滤器顺序进行过滤 --> <filter-mapping> <filter-name>FirstFilter</filter-name> <!--指定过滤全部的url --> <url-pattern>/*</url-pattern> </filter-mapping> 测试

测试,会发现点击链接后,控制台输出了两次,这也是侧面说明了请求重定向,客户端发出了两次请求

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwsgs.html