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