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

从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层就可以对请求中的数据进行处理了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值