1,通过@PathVariable接收数据的乱码问题
设置服务器的编码可以解决,对于Tomcat,只需要修改conf/server.xml文件,添加URIEncoding="UTF-8"即可
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443"/>
2,关于@RequestMapping的实现方式的小结
2.1
<a href="logout.do?method=clearS"><span>注销当前登录</span></a>
java代码中的实现
@Controller("logoutController")
public class LogoutControllerImpl {
@RequestMapping(value="/logout.do", params="method=clearS", method=RequestMethod.GET)
public ModelAndView clearS(HttpServletRequest request){
// 清除缓存里面会员的登录信息。
request.getSession().removeAttribute("userName");
request.getSession().removeAttribute("passowrd");
System.out.println("----------登录信息的缓存清除成功----------");
return new ModelAndView("pages/logout/logout.jsp");
}
@RequestMapping(value="/logout.do", params="method=handle")
public void handle(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("----------handle()----------");
}
}
2.2
<a href="pages/logout/clearS.do"><span>注销当前登录</span></a>
java代码中的实现
@Controller("logoutController")
public class LogoutControllerImpl {
@RequestMapping(value="pages/logout/clearS.do", method=RequestMethod.GET)
public ModelAndView clearS(HttpServletRequest request){
// 清除缓存里面会员的登录信息。
request.getSession().removeAttribute("userName");
request.getSession().removeAttribute("passowrd");
System.out.println("----------登录信息的缓存清除成功----------");
return new ModelAndView("logout.jsp");
}
@RequestMapping(value="/logout.do", params="method=handle")
public void handle(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("----------handle()----------");
}
}
或者
@Controller("logoutController")
@RequestMapping(value="pages/logout", method=RequestMethod.GET)
public class LogoutControllerImpl {
@RequestMapping(value="clearS", method=RequestMethod.GET)
public ModelAndView clearS(HttpServletRequest request){
// 清除缓存里面会员的登录信息。
request.getSession().removeAttribute("userName");
request.getSession().removeAttribute("passowrd");
System.out.println("----------登录信息的缓存清除成功----------");
return new ModelAndView("logout.jsp");
}
@RequestMapping(value="/logout.do", params="method=handle")
public void handle(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("----------handle()----------");
}
}
代码结构图
3,@RequestMapping
function toLogout() {
$("#form").attr("action", "clearS.do");
$("#form").submit();
}
<form method="post" id="form">
...
<a href="javascript:void(0);" οnclick="toLogout();"><span>注销当前登录</span></a>
...
</form>
java代码:
@RequestMapping(value="/clearS.do", method=RequestMethod.POST)
public ModelAndView clearS(HttpServletRequest request){
}
form表单里面的method要和@RequestMapping里面的method保持一致