pr:war项目是打成web项目,并放到Tomcat下运行。jar是单纯java项目。pom是供其他人依赖的项目。
pr:springboot打成jar包也可以独立运行,而且还不用运行在Tomcat上。因为spring已经内置了Tomcat。如果在springboot项目想要打成war包,还需要修改spring的依赖配置等。
pr:redirect是重定向,地址栏不会变,数据会变,因为是两次请求。forward是转发,地址栏和数据都会变,变成了一个桥接。
pr:response.redirect(url)方法要传入的内容是一个url地址,相对路径。不能直接转到theymeleaf模板页面。
pr:重定向是在当前地址栏下的,把最后一个访问路径变成重定向后的路径。如果是拼接了地址栏,然后重定向,那结果就变成只把最后的id换成重定向的地址。
例如把deleteUser重定向成findAllTable:
@RequestMapping("/deleteUser/{userName}/{userId}")
public String deleteUser(@PathVariable("userName") String userName,@PathVariable("userId") String userId){
iUserService.deleteUser(userName,userId);
return "redirect:findAllTable";
}
## 会变成
window.location.href="deleteUser/" + name +"/" + id;
http://localhost:8080/springboot/deleteUser/王鹤/findAllTable;
##而不是
http://localhost:8080/springboot/findAllTable;
所以传参数时不应该直接用“/”去拼地址,而要用“?”去带参数。后台可以直接在对应方法上接参数,?后面的变量名对应进到参数名。
##“?”后带参数
window.location.href="deleteUser?userName=" + name +"&userId=" + id;
##java去接
@RequestMapping("/deleteUser")
public String deleteUser(String userName,String userId){
iUserService.deleteUser(userName,userId);
return "redirect:findAllTable";
}