您的位置:首页 > 其它

登录超时跳转页面失败和ajax传递到后台数据乱码

2016-05-19 21:22 615 查看

登录超时跳转页面失败和ajax传递到后台数据乱码



登录超时后,拦截任何点击的链接,跳转到登录页面发生上面错误。拦截代码如下

public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
HttpSession session = request.getSession();
if ((session == null) || (session.getAttribute("username") == null)) {
String PATH=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";
response.sendRedirect(PATH+"login.htm");

//System.out.println(PATH);
return;
}
chain.doFilter(request, response);
return ;
}解决办法是,不让它直接跳转到登录页面,而是跳转到一个errors.jsp页面上,在这个页面用js写个跳转页面的方法。errors,jsp的js方法
<script type="text/javascript">
//登录超时

window.location.href="${base}/login.htm";

</script>

这个问题困扰了我很多时间,其中查阅了很多response.sendRedirect的使用方法和碰到的问题,但都解决不了,知道同学帮忙提出js跳转这个思路去解决。
第二个是ajax传递给后台数据乱码问题,这也是很常见的问题。解决办法如下:

function createTab(code, title, url ) {
$.ajax({
type : "post",
contentType:"application/string",
url : url+"?title="+escape(encodeURIComponent(title)),
success:function(data){
$("#mainContent").html(data);//要刷新的div
},
error: function() {
alert("失败,请稍后再试!");
}
});
}

我需要往后台传递“title”,除了前台使用escape(encodeURIComponent(title))封装title,后台还需要处理其格式,代码如下:
java.net.URLDecoder.decode(request.getParameter("title"),"UTF-8")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: