自定义MVC框架注意事项

1.xml的获取
 1)Dom4j
  a)创建解析器对象
   SAXReader sr = new SAXReader();
  b)解析器读取文件
   Document doc = sr.read(String fileName)
  c)获取根元素
   doc.getRootElement()
  d)根据元素名称获取指定子元素(如果有多个就获取到第一个)
   element(String name)
  e)获取元素的元素名
   getName()
  f)获取指定子元素的文本值,参数是子元素的名称
   elementText(String name)
  g)获取当前元素下某个属性的值
   attributeValue(String name)
  h)获取当前元素的文本值
   getText()
 2)hutool工具类
  略
2.注解(annotation)的使用
 1)常用的注解
  a)@Override: 子类重写方法时,编译时起作用
  b)@SuppressWarning: 压制,忽略警告
  c)@Deprecated:标记过时
 2)自定义注解
  a)格式

点击查看代码
public @interface 接口名{
        属性1;
        属性2;
      }

 3)元注解
  a)@Target:表示该注解作用在什么上面,默认注解可以在任何位置.

点击查看代码
     //该注解可作用在方法上
     //METHOD  TYPE  FIELD  CONSTRUCTOR  LOCAL_VARABLE
     @Target(ElementType=METHOD)
     public @interface 接口名{
        属性1;
        属性2;
      }

  b)@Retention:定义该注解保留到那个代码阶段

点击查看代码
     //该注解保留到那个代码阶段
     //SOURCE  CLASS  RUNTIME
     @Target(ElementType=METHOD)
     @Retention(RetentionPolicy = RUNTIME)
     public @interface 接口名{
        属性1;
        属性2;
      }

 4)注解其它方法
  a)Class,Method,Field,Constructor均实现了java.lang.reflet.AnnotationElement接口

  此接口有以下方法

     1.T getAnnotation(Class annotationType);  得到指定类型的注解引用,没有返回null                
       注解引用.value()  注解的属性值
     2.boolean isAnnotationPresent(Class<?extends Annotation> annotationType);
       判断指定的注解

3.反射的使用
 1).class文件的获取
  a)方式1:通过类名.class直接获取
  b)方式2:通过对象名.getClass()方法获得
  c)方式3:Class.forName("类全名")
 2).class对象的获取
  a).class文件.newInstance();
 3)反射操作成员变量(Field类)
  a)Filed[] getFields(); 获得所有的成员变量对应的Field对象,只能获得public
  b)Field getField(String name); 根据成员变量名获得对应Field对象,只能获得public
 4)反射操作成员方法(Method类)
  a)Method[] getMethods(); 获得类中所有成员方法对象,返回数组,只能获得public
  b)Method getMethod(String name,Class... args); 根据方法名和参数类型获得对应的成员方法对象,
                            只能获得public
4.日志打印工具的使用
 1)log4j

点击查看代码
log4j.rootLogger = [级别],appenderName1,appenderName2,appenderName3......
3)### 输出源的对应log4j的类 ###
 org.apache.log4j.ConsoleAppender   控制台
org.apache.log4j.FileAppender           文件
org.apache.log4j.DailyRollingFileAppender   文件(每天滚动型)
org.apache.log4j.WriterAppender       以流的方式写到任何地方
4)### 输出源单独的控制级别 ###
log4j.appender.YunheDebug.Threhold = DEBUG
5)### 配置模板格式 ###
 log4j.appender.E.layout.ConversionPattern = 指定输出的样式的模板
                                                                   ([%p] %d{yyyy-MM-dd HH:mm:ss,SSS}) [ %1] %m%n)
%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如: %d{yyy MMM dd 		HH:mm:ss,SSS}
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%c: 输出日志信息所属的类目,通过就是所在类的全名
%t: 输出产生该日志事件的线程名
%1: 输出日志事件的发生位置,相当于%C,%M(%F:%L)的组合,包括类目名、发生的线程, 以及在代码中的行数.
     	举例: Testlog4j.main(TestLog4j)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中.

5.web.xml的配置

点击查看代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--配置过滤器-->
    <servlet>
        <servlet-name>mvcCoreServlet</servlet-name>
        <servlet-class>com.brant.my_mvc.MvcCoreServlet</servlet-class>
        <!--配置启动时加载-->
        <load-on-startup>1</load-on-startup>
    </servlet>
       <!--拦截路径-->
    <servlet-mapping>
        <servlet-name>mvcCoreServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

</web-app>
posted @ 2022-01-24 15:31  布兰特来  阅读(34)  评论(0)    收藏  举报