发表于: 2018-03-22 19:34:38
2 575
今日完成
1.学习AOP
前面只是简单了解了什么是AOP,但是一直没有深入学习.今天重新学习了一遍.
package com.DAO;
public interface HelloWorld {
void printHelloWorld();
void doPrint();
}
public class HelloWorldImpl1 implements HelloWorld {
public void printHelloWorld() {
System.out.println("Enter HelloWorldImpl1.printHelloWorld()");
}
public void doPrint() {
System.out.println("Enter HelloWorldImpl1.doPrint()");
return ;
}
}
public class HelloWorldImpl2 implements HelloWorld {
public void printHelloWorld()
{
System.out.println("Enter HelloWorldImpl2.printHelloWorld()");
}
public void doPrint()
{
System.out.println("Enter HelloWorldImpl2.doPrint()");
return ;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
<bean id="helloWorldImpl1" class="com.POJO.HelloWorldImpl1" />
<bean id="helloWorldImpl2" class="com.POJO.HelloWorldImpl2" />
<bean id="timeHandler" class="com.POJO.TimeHandler" />
<aop:config>
<aop:aspect id="time" ref="timeHandler">
<aop:pointcut id="addAllMethod" expression="execution(* com.DAO.HelloWorld.*(..))" />
<aop:before method="printTime" pointcut-ref="addAllMethod" />
<aop:after method="printTime" pointcut-ref="addAllMethod" />
</aop:aspect>
</aop:config>
</beans>
public class AopTest {
public static void main(String[] args)
{
ApplicationContext ctx =
new ClassPathXmlApplicationContext("aop.xml");
HelloWorld hw1 = (HelloWorld)ctx.getBean("helloWorldImpl1");
HelloWorld hw2 = (HelloWorld)ctx.getBean("helloWorldImpl2");
hw1.printHelloWorld();
System.out.println();
hw1.doPrint();
System.out.println();
hw2.printHelloWorld();
System.out.println();
hw2.doPrint();
}
}
2.解决昨天上传文件的问题;
问题已解决:
问题原因:上图中方框内,属性值与controller内设置不一致;修改后完成.
3.学习servlet;
Servlet 生命周期:
Servlet 加载—>实例化—>服务—>销毁。
1)某个创建servlet对象的时候,调用初始化方法: void init(ServletConfig config);
2)客户端发送请求的时候,service方法被执行:void service(ServletRequest req, ServletResponse res);
3)某个servlet对象被摧毁的时候,调用destroy方法: void destroy();
在这里我们会接触到HttpServlet这个接口,在springMVC项目中我们使用的HttpServletRequest和HttpServletResponse这两个类就是继承自这个接口. HttpServlet指能够处理HTTP请求的servlet,它再原有的Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大,因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
Servlet程序是由web服务器调用,web服务器接收到客户端的Servlet访问请求后:
1)web服务器首先检查是否已经装载并创建了该Servlet的实例对象,如果是,则直接执行第4步,否则执行第2步。
2)装载并创建该Servlet的一个实例对象。
3)调用Servlet实例对象的init()方法。
4)创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP相应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
如下图中,HttpServletRequest对象封装了请求信息.
5)web应用程序被停止或重新启动前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。
明天计划
1.servlet学习;
遇到问题
---------
收获
学习了servlet,和AOP
评论