struts1、struts2、spring mvc的action和HttpServlet、filter是否单例

7 篇文章 0 订阅
3 篇文章 0 订阅

struts1


package com.struts1.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class IndexAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		System.out.println(this);
		return mapping.findForward("success");
	}

}

每次执行execute,输出都相同:

com.struts1.action.IndexAction@3c35fd
com.struts1.action.IndexAction@3c35fd
com.struts1.action.IndexAction@3c35fd
com.struts1.action.IndexAction@3c35fd
com.struts1.action.IndexAction@3c35fd


struts2



package com.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class IndexAction extends ActionSupport {

	private static final long serialVersionUID = 1L;

	@Override
	public String execute() throws Exception {
		System.out.println(this);
		return SUCCESS;
	}

}


每次执行execute,输出都不同:

com.struts2.action.IndexAction@1f327e
com.struts2.action.IndexAction@4e50ee
com.struts2.action.IndexAction@5f33b8


HttpServlet


package com.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IndexServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println(this);
	}

}

输出都相同:

com.servlet.IndexServlet@4eb585
com.servlet.IndexServlet@4eb585
com.servlet.IndexServlet@4eb585
com.servlet.IndexServlet@4eb585


spring mvc


package com.spring.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.ModelAndView;

@Controller
public class IndexAction {

	@RequestMapping(value = "index")
	public ModelAndView index(HttpServletRequest request, HttpServletResponse response) {
		System.out.println(this);
		ModelMap modelMap = new ModelMap();
		return new ModelAndView("success", modelMap);
	}
}


输出相同:

com.spring.action.IndexAction@125b750
com.spring.action.IndexAction@125b750
com.spring.action.IndexAction@125b750
com.spring.action.IndexAction@125b750


filter


package com.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class HelloFilter implements Filter {

	public void destroy() {
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		chain.doFilter(request, response);
		System.out.println(this);
	}

	public void init(FilterConfig fConfig) throws ServletException {
	}

}

输出相同:

com.filter.HelloFilter@10ac2a3
com.filter.HelloFilter@10ac2a3
com.filter.HelloFilter@10ac2a3



总结


struts1、struts2、spring mvc、HttpServlet、filter中只有struts2的action每次都不同,其他都相同,也就是说,其他都是单例的。


单例:struts1、spring mvc、HttpServlet、filter

非单例:struts2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值