struts2 :

设计:以webwork为核心,采用拦截器的机制来处理用户请求

使得业务逻辑控制器可以与servlet api完全脱离。

应用流程:

  1.web容器 ( 请求 )——>  过滤器   ,过滤转发器,确定请求的action。

  2 ActionProxy, 读struts.xml文件,创建ActionInvocation对象

  3 拦截器,action,返回结果,拦截器

  4 . ( 响应 )——> web.xml中的过滤器,过滤转发器

拦截器:在某个方法或字段被 访问之前 进行拦截加入某些操作。

 

   public String intercept(ActionInvocation act) throws Exception {
        //在Action之前执行的代码
        ......
        //开始执行Action
        String result=act.invoke();//
        //在Action之后的代码
        ......
        //结束拦截器
        return result;

 

防止 重复登录,重复提交表单,用户是否登录 用session

防止表单重复提交可以 通过重定向(发送到sevlet类后重定向到专门类),session 停牌。

重定向实现 数据的添加

请求转发与重定向的区别:

看地址栏的变化

1.请求转发:客户端浏览器各请求发送到服务器端test.jsp,test.jsp通过计算,将请求转发到red.jsp,red.jsp返回响应。但浏览器地址 但显示test.jsp,因为它不知道服务器里有什么。

2.重定向 :客户端浏览器各请求发送到服务器端test.jsp,test.jsp通过计算,向浏览器发送一个页面重定向的响应,响应包含red.jsp地址。浏览器根据该响应中的地址,再次向服务器发送请求,此时请求的是red.jsp,red.jsp执行并返回响应。

struts2的拦截器类似于servlet的过滤器

Servlet:

交互式地浏览和修改数据,生成动态Web内容

过程:

  客户端(发送请求) ——>服务器端——>(请求到达)  Servlet

           (响应到达)<——            <-- (生成响应返回)

Servlet与JSP的比较

JSP是一种实现普通静态HTML与动态HTML混合编码技术,并无servlet不能实现的功能。

  但在JSP中编写HTML更加方便,不必再用println语句来输出。分离内容与外观,便于页面制作。

 

继承类 需重载的主要方法

Action extends ActionSupport:excute()

Servlet extends HttpServlet: doget(HttpServletRequest req,HttpServletResponse resp)

Interceptor extends AbstractInterceptor :intercept(ActionInvocation invocation)

filter extends Filter :doFilter(ServletRequest,request,ServletResponse response,FilterChain chain)

posted on 2014-10-21 14:01  Dreaming-Dan  阅读(170)  评论(0编辑  收藏  举报