Spring中,将request和response由servlet传入service

来源:互联网 发布:知乎的盈利模式 编辑:程序博客网 时间:2024/05/07 23:24

从servlet将对应的request和response传到service层。

在开发中,为了让程序更加美观复用,我们也许会只使用一个Servlet类。

然后再这一个Servlet中进行 任务的分发 ,即通过switch case,来分情

况调用不同的Service层。这时候,我们需要将请求传递到service层。

在spring之前,我们会构造Service(request,response)这样的构造

方法来进行传值。在整合Spring之后,我们不需要再去实例化这些类。这

也导致我们没有办法通过构造方法来传递request 和response.

但可以这样来做。单独写一个方法进行request和response的传递

例如这样:

public class UserServiceImpl implements UserService {    @Autowired    private HttpServletRequest request;    private HttpServletResponse response;    private UserDao udi;    public UserDao getUdi() {        return udi;    }    public void setUdi(UserDao udi) {        this.udi = udi;    }    public UserServiceImpl() {        super();    }    public void getData(HttpServletRequest request,HttpServletResponse response){        this.request = request;        this.response = response;    }}

getData(request,response) 方法就担任从servlet中传值到service层的任务。

在Servlet中是这么调用的:

public class Servlet extends HttpServlet{    ApplicationContext atx =new ClassPathXmlApplicationContext("applicationContext.xml");    UserService usi = (UserService) atx.getBean("userServiceImpl");    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {          req.setCharacterEncoding("utf-8");        resp.setCharacterEncoding("utf-8");        String method = req.getParameter("method");        switch (method) {        case "login":            usi.getData(req, resp);            usi.login();            break;        default:            break;        }    }}

首先读取了配置文件,通过getBean得到service ,然后调用getData将request和response传到了service层,然后service层就可以对请求中的数据进行处理了。

1 0
原创粉丝点击