`
junli0411
  • 浏览: 140998 次
  • 来自: ...
社区版块
存档分类
最新评论

项目总结(Ajax+Struts+Spring+Hiberante+SQLServer2000) 第二部分

阅读更多
首先强烈抗议CSDN Blog的速度实在是太差,发表个帖子,错误不断,还害我辛辛苦苦写的东西全部丢失 :(
本次项目总结的第一部分主要是记录框架搭建的关键配置文件和一些容易出错的地方,第二部分我将记录乱码问题和处理方案。本次项目开发过程中碰见了许许多多乱码的问题,希望这个记录对以后开发会有帮助。具体的乱码错误和相应的解决方案如下:
 
1.     由于Java默认使用UTF-8编码,而且网上很多人都建议Struts开发的时候应尽量选用UTF-8做为默认编码,而非GBKIDE使用Eclipse,在第一次使用Eclipse的时候应将default text editor改为UTF-8编码,免得日后后悔再改就惨了,我本次开发的时候就忽视了这一点,刚开始没注意,结果到快交工时乱码问题无法解决,导致将所有的文件全部修改一遍,呜……
2.       使用SetCharacterEncodingFilter这个很基础的一套过滤器,将所有来自页面的POST请求全部过滤为UTF-8编码。
3.       JSP页面全部改为charset=UTF-8,这样可以保证与后台交互的时候都是UTF-8编码,一般应用做了以上工作就基本可以应付了。
4.       国际化问题,在使用资源文件的时候,由于中文在properties文件中无法被程序所识别,需要将其进行转码,我在资源文件下面制作了一个很简单的bat文件,每次修改资源文件的时候都是在一个临时文件中修改,然后执行这个bat文件,将其转化并保存为所需要的资源文件,这个动作挺烦的,也有项目组成员使用一些插件,但是那些东西都是直接写UTF-8码的,有时候反倒不方便,不过以后任务量巨大的时候可能会考虑使用。Bat文件内容:   set path=%path%;%JAVA_HOME%/bin/,native2ascii -encoding UTF-8 ApplicationResources_bk.txt > ApplicationResources_zh.properties
5.       在本项目中大量采用了get方式提交请求并附加参数,结果导致编码乱码,原因是Tomcat默认请求编码是ISO8859,需要在Tomcat的配置文件server.xml添加一个参数,URIEncoding=”UTF-8”,这样请求中附件的参数就会以UTF-8来进行编码。
6.       本项目中还少量使用到AjaxJS也是默认使用ISO8859编码,所以在进行请求时遇到中文参数需要进行编码,如:var url = "GetSelectListAction.do?queryData=subTrade" + "&queryId=" + encodeURI(obj.value) + "&r=" + Math.random();   这里有两个地方需要注意:第一个地方是encodeURI(),方法,可以将参数进行转码,默认是转化为UTF-8,如果需要转为其他码制,需要在方法中添加第二个参数。第二个地方是Math.random(),由于Ajax有缓存机制,在接受请求的时候第一时间先判断该请求的地址是否被访问过,如果被访问过则直接使用缓存中的内容返回,这个东西很讨厌,客户在访问过一次出错后以后每次出现的都是这个错误,所以在请求中给其增加一个时间戳,只要可以随机生成一个不同的字串就可以,保证Ajax每次都去访问服务器。
7.       在项目即将交工的时候突然又出现乱码问题,发现对于超长的汉字做为参数传递仍然会出现乱码问题,解决方法是采用java.net.URLEncoderEncode方法强制转码,缺点是会使JSP页面代码相当的长,但是目前还没有其他好的解决办法,我想最好的办法就是不用中文做为参数传递 P,写法如:<a href="CreditInfoHonorPreAction.do?action=query&honorId=<bean:write name="honorInfoId" property="id" />&comName=<%= java.net.URLEncoder.encode(((com.shpcims.web.creditinfo.form.CreditInfoDetailInfoForm)pageContext.getRequest().getAttribute("creditInfoDetailInfoForm")).getCompanyName(),"UTF-8")%>&regNo=<%= java.net.URLEncoder.encode(((com.shpcims.web.creditinfo.form.CreditInfoDetailInfoForm)pageContext.getRequest().getAttribute("creditInfoDetailInfoForm")).getRegisterNo(),"UTF-8")%>">
至此,项目中疯狂的乱码问题才得以有效的控制,如果再出现问题真的要考虑是否出现了人品问题咯 :( 。这个乱码问题在整个项目开发过程中始终伴随着,简直就是梦靥。 


分享到:
评论

相关推荐

    spring4+hiberante4+struts2+maven

    在"spring4+hibernate4+struts2+maven"的项目中,Spring 4是较新的版本,它引入了对Java 8的支持,优化了对WebSocket和HTTP/2的处理,并提升了与其他Spring项目如Spring Boot和Spring Data的集成。Hibernate 4则增强...

    Struts2 Spring2.5 Hiberante3.3.2 +ExtJS(Struts2-json)做的CRUD

    开发者可以通过这个DEMO学习到如何在实际项目中运用Struts2的Action和Result,Spring的依赖注入和事务管理,Hibernate的ORM机制,以及ExtJS的组件和数据绑定。同时,它也揭示了现代Web开发中前后端分离的趋势,通过...

    Struts2+Hiberante+ajax+Mysql 三级联动

    总的来说,"Struts2+Hiberante+ajax+Mysql 三级联动"项目展示了如何利用这些技术进行高效的Web开发,特别是在处理多级交互和动态数据展示方面。通过学习和实践这样的项目,开发者可以提升对Java Web开发的理解,尤其...

    struts2.0+spring2.0+hiberante3+dwr+freemarker整合所需jar包

    Struts2.0、Spring2.0、Hibernate3和DWR以及Freemarker是Java Web开发中的关键组件,它们各自负责不同的职责,并且通过合理的整合,可以构建出强大的企业级应用系统。 Struts2.0是Apache软件基金会下的一个开源MVC...

    Struts2+hiberante+Spring+Extjs+OA办公系统,完整包

    总结来说,这个项目展示了如何将Java后端框架(Struts2、Hibernate、Spring)与前端JavaScript库(ExtJS)结合,以构建一个高效、功能完善的OA办公系统。对于Java开发者来说,深入理解和掌握这些技术有助于提升其在...

    Struts2.0+Spring2.0+Hiberante3.0

    本项目基于Struts2.0、Spring2.0和Hibernate3.0,提供了SSH2的实践案例,便于开发者学习和理解。 **Struts2.0** Struts2是一个开源的MVC(Model-View-Controller)框架,它是Struts1的升级版,引入了更多现代Web...

    疯狂Ajax讲义3+Spring+hiberante

    2. Spring的Ajax库:Spring提供Spring Ajax(JQuery和 Prototype)库,简化Ajax调用和结果处理。 3. Spring的RESTful服务:利用Spring MVC创建RESTful API,使Ajax请求能够更方便地与后端进行通信。 Hibernate是一...

    经典struts+hiberante+spring课件

    总的来说,"经典struts+hiberante+spring课件"涉及的知识点主要包括Java Web开发中的Struts、Hibernate和Spring三大框架的原理和使用,以及相关的Servlet和JavaBeans概念。学习这些内容,开发者可以构建出高效、可...

    疯狂Ajax讲义4+Spring+hiberante

    【疯狂Ajax讲义4+Spring+hiberante】 在IT领域,这组资料涵盖了三个关键的技术:Ajax、Spring和Hibernate,这些都是Web开发中的重要组成部分。让我们深入探讨一下这些技术及其在实际应用中的重要性。 首先,Ajax...

    疯狂Ajax讲义5+Spring+hiberante

    "疯狂Ajax讲义5+Spring+hiberante" 这个标题和描述暗示了我们即将探讨的主题是关于Web开发中的三个关键技术和框架:Ajax、Spring和Hibernate。Ajax(Asynchronous JavaScript and XML)是一种用于创建动态网页的技术...

    疯狂Ajax讲义+Spring+hiberante

    通过AJAX,开发者可以在不刷新整个页面的情况下,与服务器交换数据并更新部分网页内容,提供更加流畅和响应式的用户体验。 本书涵盖了以下核心知识点: 1. **基础概念**:解释了AJAX的基本原理和工作流程,包括...

    Struts+Hibernate+Spring整合小项目

    这个"Struts2.2.3+hiberante3.2+spring2.5整合小项目"就是基于这种集成构建的一个应用实例,主要用于实现对数据库的增删改查功能,并且具备导出数据到Excel的功能。 首先,Struts2是经典的MVC(Model-View-...

    Hibernate3.3.1+Spring2.5.5+Struts2 2.0.1.2例子

    这个例子展示了如何将Hibernate3.3.1、Spring2.5.5和Struts2 2.0.1.2集成到一个项目中,以实现高效、灵活的MVC(Model-View-Controller)架构。 首先,让我们深入了解一下每个框架的核心功能: 1. **Struts2**:这...

    Struts2+hiberante+Spring+extjs开发实例

    详细讲述通过Struts2+hiberante+Spring+ExtJs实现的实例说明,包括S2SH环境搭建和开发的过程,有详细的开发步骤说明,包括通用基类,事务等关键地方的讲解,图文并茂,适合初中级学习者

    权限管理 struts2 hiberante3.5 spring3.0 annotation

    总结起来,"Struts2+Hibernate3.5+Spring3.0(Annotation)"的组合为Java Web开发提供了一个强大的基础架构,尤其在权限管理方面。通过合理的配置和使用注解,可以实现高效、灵活且易于维护的权限控制系统。这不仅...

    spring+mvc+hiberante

    Spring MVC 是 Spring 框架的一部分,专门用于构建 Web 应用,它提供了模型-视图-控制器(MVC)架构模式,使得开发者能够更高效地处理 Web 请求。Hibernate 是一个强大的对象关系映射(ORM)框架,它简化了数据库...

    s2.1.8+spring2.5.6+hiberante3.3.2+dwr2.0.6

    Struts2.1.8+Spring3.0+Hibernate3.3.2+DWR2.0.6 是一个经典的Java Web开发框架组合,通常被称为SSH2或S2SH+DWR。这个组合在过去的几年里被广泛使用,因为它们各自在应用程序的不同层面上提供了强大的功能。 **...

    struts+hibernate+Spring的整合

    Struts2、Hibernate和Spring是Java开发中常用的三个开源框架,它们各自负责应用程序的不同层面:Struts2专注于MVC(模型-视图-控制器)架构的实现,提供强大的请求处理和展示逻辑;Hibernate则是一个对象关系映射...

    Struts2 Spring Hiberante IBatis jar (1)

    这个压缩包"Struts2 Spring Hiberante IBatis jar (1)"包含了这些框架的部分jar文件,可能是为了简化开发环境的配置或提供一个基础的开发库。 1. **Struts2**: 是一个基于MVC(Model-View-Controller)设计模式的...

Global site tag (gtag.js) - Google Analytics