httpServletResponse.setCharacterEncoding("GBK");
servlet中的这样一句话,照成一天没有正常工作。
说明:
本机环境:
开发环境: jdk 1.5.0_15
服务器: tomcat 5.5
开发工具: myeclipse6.0 (jdk编译级别设为1.4)
服务器运行环境:
操作系统: solaris 9
运行环境: jre 1.4.2
服务器: sun one 7
其他功能都正常,但是就是这个功能一直报 servlet exception
但是没说明具体错误。
很是不理解,最后只能求救我们老大。
老大看了,说应该是编译器的问题。
果然 ,去掉了这行果然能正常运行了。
老大说是 jdk5 及以上版本编译为1.4.2的时候会有这个问题。
他说他遇到了 setCharacterEncoding 这个方法和 bigdecimal这个类会有这个问题。
唉!要不然,我还在这痛苦的不知道为什么呢。
看样子权威也有出错的时候啊 ,java这么通用的程序也有这样的bug。
但是具体到时 不同操作系统的生成的class 不兼容,还是就像老大说的不同版本之间的不兼容造成的,没有深究。
希望对这方面有研究的多多提醒。
补充:
一次要导出execl使用到了poi类库,当时特意下了版本适合1.4.2的poi3.2版本,本地上试的好好的,但是上传到服务器中老是有问题,而且没有什么特殊的异常。还以为又是自己写的java的那部分代码有问题,又特意把自己的jdk换成了java1.4.2版本,能与服务器中相对吻合。最后还是无用,之后经过代码的多次上传终于发现定位到了 poi3.2在测试库中不能正常使用的问题。最后换成了更老的poi1.2.5,修改了一些代码,才最后成功能用。
看来兼容问题,还是老多的。
分享到:
相关推荐
request.setCharacterEncoding("gb2312"); response.setCharacterEncoding("gb2312"); out=response.getWriter(); OpenConn(dsn,user,password); //建立连接 show(sql,0); closeConn(); }
安装过滤器(Filter)可以捕获HTTP请求和响应,使用`HttpServletRequest.setCharacterEncoding()`和`HttpServletResponse.setContentType()`方法设定合适的编码格式,例如UTF-8。 接着,"html,jsp编码详解_request....
1. **调用时机**:应当在读取请求数据(如通过`request.getParameter()`方法获取参数值)之前调用`request.setCharacterEncoding()`方法,否则该设置将不会生效。 ```java protected void doPost...
response.setCharacterEncoding("GB18030"); request.setCharacterEncoding("GB18030"); //调用业务逻辑 UserDAO userDAO = new UserDAO(); // 返回的list值 ArrayList list=userDAO.queryAll(); //...
request.setCharacterEncoding("utf-8"); response.setContentType("text/html"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); AdvertDao adverDao=new ...
通过`setCharacterEncoding(String charset)`方法,我们可以指定响应体的数据编码,以确保客户端正确解码: ```java response.setCharacterEncoding("UTF-8"); ``` 五、重定向与转发 1. 重定向:使用`sendRedirect...
9. setCharacterEncoding(String charset):设置响应数据的字符编码,如UTF-8、GBK等。 通过这些方法,Servlet可以根据需要设置响应信息,并将其发送给客户端。例如,在Servlet中,可以使用setStatus()方法设置响应...
arg0.setCharacterEncoding("GBK"); arg1.setCharacterEncoding("GBK"); // 继续执行链中的下一个过滤器或目标资源 arg2.doFilter(arg0, arg1); } public void init(FilterConfig arg0) throws ...
- **设置响应字符编码**:使用`setCharacterEncoding`方法,告诉服务器应该以何种编码方式处理输出流。例如: ```java response.setCharacterEncoding("UTF-8"); ``` - **设置响应头的`Content-Type`**:指定...
② 获取中文属性不出现乱码的方法是,对于post请求,在获取请求参数之前先调用setCharacterEncoding("UTF-8")方法设置字符编码读取。同时,也需要设置Response的字符编码为UTF-8,以确保中文字符正确地显示。 ...
resp.setCharacterEncoding("utf-8"); PrintWriter out =null; try{ out = resp.getWriter(); out.println(String.valueOf(flag)); }catch (Exception e){ e.printStackTrace(); } out.flush(); out.close...
request.setCharacterEncoding("GBK"); response.setCharacterEncoding("GBK"); ``` 然而,这种方法存在局限性,因为它只针对特定的请求处理。为了更全面地解决乱码问题,推荐采用过滤器(Filter)的方式。过滤器...
resp.setCharacterEncoding(encoding); chain.doFilter(req, resp); // 继续下一个过滤器链 System.out.println(EncodingFilter.class.getSimpleName() + " FilterChain doFilter() 之后的代码.."); } ``` 3. ...
request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); return true; } catch (UnsupportedEncodingException e) { e.printStackTrace(); return false; } } } ``` 3. **配置...
- 使用`request.setCharacterEncoding("gb2312")`将请求的字符编码设置为GB2312。这一步至关重要,因为它确保了请求参数被正确解析为GB2312编码,从而避免了乱码的出现。 - `try-catch`块用于捕获并处理可能抛出的`...
其中错误之处是:response.setCharacterEncoding("u"; 应该是 response.setCharacterEncoding("utf-8");。正确的代码是: ```java public void doPost(HttpServletRequest request, HttpServletResponse response) ...
Java Servlet、JSP(JavaServer Pages)和JDK(Java Development Kit)是Java Web开发中的核心技术,对于构建动态Web应用程序至关重要。以下是对这些技术的详细解释以及如何利用它们进行学习和开发。 ### Java ...
request.setCharacterEncoding("gbk"); response.setCharacterEncoding("gbk"); String username = request.getParameter("userName"); String password = request.getParameter("password"); String sex = ...
req.setCharacterEncoding("GBK"); resp.setContentType("text/html;charset=GBK"); PrintWriter out=resp.getWriter(); if(randomCode.equals(reqRandom)) { out.println("验证码匹配!"); } else { ...