注解配置

注解配置

一.注解配置使用
  配置 servlvet 的映射路径, 全都在 web.xml 文件中, 非常不方便维护.
  注解就是在每个 servlet 之上进行路径的配置

总结:
  使用注解配置 servlet的映射路径: @WebServlet
  使用注解配置过滤器: @WebFilter
  使用注解配置监听器: @WebListener

注解配置映射路径
Demo: 注解配置 servlet

 1 @WebServlet(urlPatterns= {"/emp/*","/dept/*"})
 2 public class EmpServlet extends HttpServlet{
 3     @Override
 4     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 5         System.out.println("使用注解配置的 servlet");
 6     }
 7     @Override
 8     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 9         this.doGet(req, resp);
10     }
11 }

Demo: 注解配置过滤器

 1 @WebFilter(urlPatterns= {"/*"})
 2 public class MyFilter implements Filter {
 3     @Override
 4     public void init(FilterConfig filterConfig) throws ServletException {
 5         System.out.println("过滤器初始化");
 6     }
 7     @Override
 8     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
 9             throws IOException, ServletException {
10         System.out.println("对拦截的请求进行处理,之后放行");
11         //向下转型
12         HttpServletRequest req = (HttpServletRequest)request;
13         HttpServletResponse resp = (HttpServletResponse)response;
14         //处理字符编码
15         req.setCharacterEncoding("utf-8");
16         resp.setContentType("text/html;charset=utf-8");
17         chain.doFilter(req, resp);
18     }
19     @Override
20     public void destroy() {
21         System.out.println("过滤器销毁");
22     }
23 }

Demo: 注解配置过滤器 (登录验证)

@WebFilter(urlPatterns= {"/emp/delete","/emp/updat","/emp/list","/emp_list.jsp","/dept/list"})
public class LoginFilter implements Filter{
}

如果有几百个资源(比如 jsp)需要登录验证, 可以将要进行登录验证的资源统一保存到一个文件夹 (如:pages)
然后过滤器只要对该文件夹进行验证即可.
Demo: 统一要验证的资源
@WebFilter(urlPatterns= {"/emp/delete","/emp/updat","/pages/*"})

Demo: 注解配置监听器

 1 @WebListener
 2 public class RequestAttributeListener implements ServletRequestAttributeListener{
 3     @Override
 4     public void attributeAdded(ServletRequestAttributeEvent event) {
 5         System.out.println("增加属性时候触发: " + event.getName() + ":" + event.getValue());
 6     }
 7     @Override
 8     public void attributeRemoved(ServletRequestAttributeEvent event) {
 9         System.out.println("删除属性时候触发: " + event.getName() + ":" + event.getValue());
10     }
11     @Override
12     public void attributeReplaced(ServletRequestAttributeEvent event) {
13         System.out.println("替换属性时候触发: " + event.getName() + ":" + event.getValue());
14     }
15 }

原文地址:https://www.cnblogs.com/yslf/p/10755423.html

时间: 2024-11-10 13:29:34

注解配置的相关文章

AOP注解配置

1.--------AOP注解配置---------- (1)在spring配置文件中启用AOP注解 <aop:aspectj-autoproxy/> (2)编写切面组件,使用以下注解定义切入点,通知等 @Aspect : 将当前类指定为切面组件 @Pointcut : 定义切入点 @Around("切入点引用") @Before("切入点引用") @After("切入点引用") @AfterReturning(pointcut=&q

注解配置的Spring MVC

基于注解配置的Spring MVC 简单的HelloWorld实例应用 2.1 问题 使用注解的方式重构helloworld应用案例. 2.2 方案 1. @RequestMapping注解应用 @RequestMapping可以用在类定义和方法定义上,它标明这个类或方法与哪一个客户请求对应.实例代码如下: @RequestMapping("/day01") public class HelloController { @RequestMapping("/hello.form

struts2学习笔记之十四:使用注解配置Action(不是和spring集成使用)

Struts2支持使用注解配置Action,减少配置文件的配置 Struts2如果要支持注解配置Action,需要插件的支持,导入插件struts2-convention-plugin-2.1.8.1.jar 项目目录树: 1.导入struts2需要的基本包 2.修改web.xml,让struts2拦截Action <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="htt

Servlet使用注解配置URl提示404错误

刚接触servlet 3.0,使用注释描述servlet @WebServlet(name="FirstServlet", urlPatterns="/FirstServlet" ) 但是无论部署好了无论如何访问都报404,纠结了很久,是因为web.xml 里面的一个属性设置有问题 将 metadata-complete="true" 改为 metadata-complete="false" 为什么将metadate-comp

spring mvc jfreechar注解配置及数据库访问

1.action类,使用注解配置的: package com.t5.manage.action;import java.awt.Font;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import java.util.Map; import javax.annotation.Resource;import javax.servl

14Spring通过注解配置Bean(2)

下面将对13Spring通过注解配置Bean(1)的中Repository.Service.Controller通过注解方式来建立关联. <context:component-scan>元素还会自动注册AutowiredAnnotationBeanPostProcessor后置处理器实例,该实例可以自动装配具有@Autowired属性. @Autowired注解会自动装配具有兼容类型的单个Bean属性 ——构造器,普通字段(即使是非public),一切具有参数的方法都可以应用@Autowire

注解配置springMvc及向作用域中赋值

1.在applicationContext.xml中配置包扫描器 <!-- 使用注解配置扫描器 --> <context:component-scan base-package="cn.cnsdhzzl.controller" /> 2.配置controller /*处理器*/ @Controller /* 命名空间 */ @RequestMapping("/annotation") public class AnnotationContro

spring注解配置启动过程

最近看起spring源码,突然想知道没有web.xml的配置,spring是怎么通过一个继承于AbstractAnnotationConfigDispatcherServletInitializer的类来启动自己的.鉴于能力有限以及第一次看源码和发博客,不到之处请望谅~ 我用的IDE是IntelliJ IDEA,这个比myEclipse看源码方便一点,而且黑色背景挺喜欢.然后项目是在maven下的tomcat7插件运行.spring版本是4.3.2.RELEASE. 如果写过纯注解配置的spri

spring注解配置quartz

常规配置quartz可以参考我的另外一篇博文:http://www.cnblogs.com/yangzhilong/p/3349116.html spring配置文件里增加: 命令空间: http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd 配置: <task:annotation-driven/> 当然这还需要扫描注解等常规配置. ja

小峰mybatis(5)mybatis使用注解配置sql映射器--动态sql

一.使用注解配置映射器 动态sql: 用的并不是很多,了解下: Student.java 实体bean: package com.cy.model; public class Student{ private Integer id; private String name; private Integer age; public Student(){ } public Student(String name, Integer age){ this.name = name; this.age =