(以spring mvc为例)
两种请求方式:form表单提交与ajax异步请求(或直接post)
一:form提交
可以在后台跳转页面,没有返回值,后台接口中直接用返回值即可跳转,如请求 test.htm接口:
@RequestMapping("/test.htm")
private String goodsType(HttpServletResponse res, HttpServletRequest req) {
res.setContentType("text/html; charset=UTF-8");
res.setHeader("Cache-Control", "no-cache");
private String goodsType(HttpServletResponse res, HttpServletRequest req) {
res.setContentType("text/html; charset=UTF-8");
res.setHeader("Cache-Control", "no-cache");
return "jsp/add";
}
}
但有时 需要用重定向 ,在return前加上res.sendRedirect(comm.GetRootURL(req) + "/add.htm");//(比如add.htm接口可以跳转到add页面)(
@RequestMapping("/add.htm")
private String goodsType(HttpServletResponse res, HttpServletRequest req) {
res.setContentType("text/html; charset=UTF-8");
res.setHeader("Cache-Control", "no-cache");
private String goodsType(HttpServletResponse res, HttpServletRequest req) {
res.setContentType("text/html; charset=UTF-8");
res.setHeader("Cache-Control", "no-cache");
return "jsp/add";
}
}
)
二:post请求
不能在后台跳转页面,有返回值
如: $.post("${pageContext.request.contextPath}/delete.htm",{
id : recipient,
},
function(data){
});
id : recipient,
},
function(data){
});
后台://删除
@RequestMapping("/delete")
private void Delete(Model model,HttpServletResponse res, HttpServletRequest req) throws IOException {
res.setContentType("text/html; charset=UTF-8");
res.setHeader("Cache-Control", "no-cache");
String id = req.getParameter("id") + "";
PrintWriter out = null;
out = res.getWriter();
String str = "";
if (comm.checkStringNull(id)) {
str = comm.MSG_UNKNOEN_ERROR;
out.print(str);
return;
}
....
@RequestMapping("/delete")
private void Delete(Model model,HttpServletResponse res, HttpServletRequest req) throws IOException {
res.setContentType("text/html; charset=UTF-8");
res.setHeader("Cache-Control", "no-cache");
String id = req.getParameter("id") + "";
PrintWriter out = null;
out = res.getWriter();
String str = "";
if (comm.checkStringNull(id)) {
str = comm.MSG_UNKNOEN_ERROR;
out.print(str);
return;
}
....
...
str = "ok";
out.print(str);
return;
}
用
PrintWriter out = null; out = res.getWriter();out.print(str);返回str数据