发表于: 2018-03-09 23:53:14

0 613


完成

1.今天没有继续做任务6,而是回顾了之前的知识点

2.实现了一个拦截器和监听器

拦截器

public class FirstFilter implements Filter {

@Override
   public void destroy() {
}

@Override
   public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
       HttpServletResponse response = (HttpServletResponse) res;

       String ip = request.getRemoteAddr();
       String url = request.getRequestURL().toString();
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       Date d = new Date();
       String date = sdf.format(d);

       System.out.printf("%s %s 访问了 %s%n", date, ip, url);
       chain.doFilter(request, response);
   }

@Override

   public void init(FilterConfig arg0) throws ServletException {

//与Servlet需要配置自启动才会随着tomcat的启动而执行init()方法不一样。
//Filter一定会随着tomcat的启动自启动。Filter是web应用非常重要的一个环节,如果Filter启动失败,或者本身有编译错误,

不仅这个Filter不能使用整个web应用会启动失败,导致用户无法访问页面。

System.out.println("First Filter init()");
       // System.out.println("故意造成一个异常");
       // Object o = null;
       // o.toString();
   }
}

web.xml

<filter>
   <filter-name>FirstFilter</filter-name>
   <filter-class>com.wlj.Filter.FirstFilter</filter-class>
</filter>

<filter-mapping>
   <filter-name>FirstFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

监听器ContextListener

public class ContextListener implements ServletContextListener{
@Override
   public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("web 应用销毁  ");
   }

@Override
   public void contextInitialized(ServletContextEvent arg0) {
System.out.println("web 应用初始化 ");

   }
}

监听器ContextAttributeListener

public class ContextAttributeListener implements ServletContextAttributeListener {

@Override
   public void attributeAdded(ServletContextAttributeEvent e) {
System.out.println("增加属性 ");
       System.out.println("属性是" + e.getName());
       System.out.println("值是" + e.getValue());

   }

@Override
   public void attributeRemoved(ServletContextAttributeEvent e) {
// TODO Auto-generated method stub
       System.out.println("移除属性 ");
   }

@Override
   public void attributeReplaced(ServletContextAttributeEvent e) {
// TODO Auto-generated method stub
       System.out.println("替换属性");
   }

}

web.xml

<listener>
   <listener-class>com.wlj.Listener.ContextListener</listener-class>
</listener>

<listener>
   <listener-class>com.wlj.Listener.ContextAttributeListener</listener-class>
</listener>

testContext.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
   application.setAttribute("test", 1);
   application.setAttribute("test", 2);
   application.removeAttribute("test");
%>

访问testContext.jsp,控制台输出:

过滤器相关:

2018-03-09 23:42:20 0:0:0:0:0:0:0:1 访问了 http://localhost:8080/HelloWeb/h

监视器相关:

web 应用初始化

增加属性 

属性是test

值是1

替换属性

移除属性 


问题:

过滤器和监视器这块研究不深,还有

上午回顾了一下java语法发现好多都不懂,以后补回来


收获

总结性看了看Java EE,对各个知识点映像加深

现在打算


计划

明天接着看java EE

接着任务6



返回列表 返回列表
评论

    分享到