jsp中的Servlet处理请求后一般都会做请求重定向或转发的处理,很多初学者会碰到很多问题,通过本人的总结,给出以下解决办法:
1.重定向:
一般我们要根据我们的Web应用名称来写,如重定向到WebRoot根目录下的login.jsp,我们可以这么写,response.sendRedirect("/Web应用名称/login.jsp");但是,这样写有一个bug,就是当你改变Web应用名称的时候,跳转就失败了,所以Web应用名称不能写死,我们知道,request.getContextPath()能够获取到Web应用的名称,所以可以这样写response.sendRedirect(""+request.getContextPath()+"/login.jsp");
2.请求转发:
请求重转发就比较简单,用
request.getRequestDispatcher("/index.jsp").forward(request, response);就行
3.还有一种情况,当一个Servlet处理请求后,我们可能还要让这个Servlet再连接到另外一个servlet,这时我们可以用javascript技术,例如:
response.setContentType("text/html;charset=utf-8");//这里是防止出现乱码,很重要的
response.getWriter().print( " <script> location.href= '"+request.getContextPath()+"/servlet/xxxxxxServlet'; </script> ");
4.还有一种情况,当一个jsp页面是由一个servlet请求转发过来的,那么在这个jsp页面中如果想去访问另外一个servlet,此时,只需要这样写:<script> location.href= 'xxxxxxServlet'; </script> "这样就ok了。
这里还有很重要的一点,由于WEB-INF目录下的所有文件是受保护的,所以在WEB-INF目录下的文件要互访的话只能同过ssh中的技术实现,否则只能通过servlet来实现互访。
转自:http://blog.sina.com.cn/s/blog_77e940bd0100yj1l.html
总结:遇到的问题:
(1)使用EL表达式的时候出现中文乱码:
在使用EL表达式之前加 :<%response.setcharacterEncording("UTF-8");%>
(2)在servlet中将请求转发到另一个页面的时候也出现中文乱码:
注释掉下面相关代码后,没有出现中文乱码
//PrintWriter out = response.getWriter();
//out.flush();
//out.close();
于是,尝试在out对象之前加response.setCharacterEncoding("UTF-8");也没有再出现中文乱码
(3)对于post请求在获得请求参数之前,设置一下字符编码,可解决中文乱码
即:<%request.setcharacterEncording("UTF-8");%>
要使此方式也适用于get请求,需在tomcat的server.xml文件中,在<connector>标签中加userBodyEncodingForURI="true"
注意:web项目中的server.xml也要改,具体参考tomcat官网上的帮助文档
相关推荐
中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析中文乱码问题分析
java中最头疼的可能就是中文乱码的问题,这个可以彻底解决中文乱码的问题
本资源参考网上原版为存取英文字符的ini操作,未考虑中文乱码问题。而网上另外也有资料如何处理中文编码,例如转码为utf-8,存能解决乱码,取又出现问题。本资源我重新整理,用unicode完美解决中文乱码问题。用法: ...
解决Lua文件反编译后汉字乱码问题。开发环境vs2013,语言c#
解决jspdf导出pdf中文乱码,详细说明地址:https://blog.csdn.net/jinggaoniao/article/details/108751020
c#控制台下的汉字输出乱码,可以通过这段程序解决
Java关于中文乱码问题的多种解决方法,中文乱码过滤器
本Demo主要针对jquery的$.getJSON操作,返回json, 针对传参出现的中文乱码, json里出现中文乱码。
jsoncpp解决中文乱码,测试ok,欢迎下载使用,ubuntu下测试ok的 ,里面有makefile,直接编译就可以,也可以自己修改交叉编译
sqlite3 for delphi 自己修改的版本 解决中文乱码问题
sqlite数据库存取中文乱码的全部解决方案(包括其它数据库oracle+sqlserver+mysql) 数据库的连接方式、数据库里存放数据的字体编码、所选编程语言的缺省字体编码。如果在编程中遇到不能正确显示中文时、、、、
SQL-SERVER-64位配置ORACLE连接-中文乱码问题
解决Navicat for MySql 导入EXCEL中文乱码问题解决的有效方法
小程序蓝牙打印,中文乱码已解决(安卓正常打印)小程序蓝牙打印,中文乱码已解决(安卓正常打印)小程序蓝牙打印,中文乱码已解决(安卓正常打印)小程序蓝牙打印,中文乱码已解决(安卓正常打印)
WebSevice 中文乱码
VC++编译后出现中文乱码解决方案借鉴.pdf
ZXing 2.1版GBK中文乱码解决办法: zxing中扫瞄二维码图片,如果包含Gbk中文,乱码解决办法是修改DecodedBitStreamParser.h文件,在里面加入GBK的判断。 在2.1版本中,解码的定义不在这个类中了,挪到了...
敝人近期整理的客户端与服务端通信实例,数据编码约定采用UTF-8编码,解决中文乱码问题.ServerSocket组件可以同时接受一个或多个ClientSocket组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的...
SAP DS数据抽取时中文乱码的解决方案
解决ultraeditor打开中文文件出现乱码的情况