散分:WEB项目(struts1.X),天天看乱码帖,总结下。请大家指正和补充,我会整理全面。谢谢叻。。。囧~~~

crazylaa crazylaa 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
1。数据库

在创建的时候,指定其编码为UTF-8.

(1)oracle:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
---------------------------------------------
SIMPLIFIED CHINESE_CHINA.UTF8

SQL>
jdbc url无须指定编码。
(2)postgres:

CREATE DATABASE "EnterInfoPortal"
WITH OWNER = postgres
ENCODING = 'UTF8'
TABLESPACE = pg_default;
GRANT ALL ON DATABASE "EnterInfoPortal" TO postgres;
jdbc url参考:jdbc:postgresql://127.0.0.1/FINANCIAL?charSet=UTF8
(3)DB2:

db2 "CREATE DATABASE dbname USING CODESET UTF-8 TERRITORY CN"
jdbc url无须指定编码。
(4)SqlServer:

很久没用过,待补充

(5)MySQL(没用过,应网友要求,抄来的,具体能通过否待验证):

安装mysql的时候选utf-8;管理工具安装后,首先设置管理工具 client编码为中文的gb2312 gbk,这与mysql无关
建库的时候选utf-8
建表的时候选utf-8 utf_unicode_ci 两项
建字段的时候选utf-8 utf_unicode_ci 两项
jdbc url参考:jdbc:mysql://localhost:3306/test?user=root&password=& useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false

2。新建web项目

别的先不干,先选中项目:

右键->properties->Info->Text file encoding:Other:UTF-8。

但我用的JBuilder 2007似乎在JS文件上需要重新弄一下:

新建*.js文件,右键该文件->properties->Info->Text file encoding:Other:UTF-8。再把原来带中文的^C^V过来,save。

如果是把js所在的目录设为UTF-8,然后新建js文件,貌似不能继承,得一个个这么^C^V,烦。

3。tomcat的配置

为了保证某些中文文件名的文件能够被正确访问,需要修改tomcat/conf/server.xml,增加:

<Connector port="8088" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />

注意:

开发时,修改了tomcat安装目录,怎么还是乱码?

CAUSE:

开发时,JBuilder2007(eclipse maybe)并没有发布到tomcat安装目录下,而是在

workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\conf

有个相应的server.xml文件,需要改这个,在JB下才有效。具体tmp0/tmp1/tmpN由发布的次数/项目个数来定。

4。jsp页面

保证任何jsp的第一行都是:

<%@page contentType="text/html; charset=UTF-8"%>

并且在jsp页面不要再出现charset的字样!

有的同志第一行按上面所述指定了,下面又来一个:

<META http-equiv='Content-Type' content='text/html;charset=gb2312'>

更有甚者,居然在包含的JS里面来这么一句:

document.charset='gb2312';

你说在JSP里面

<script language="JavaScript" type="text/JavaScript">
document.charset='gb2312';
</script>

写也就罢了,我还好找些,你把它另外存个文件,然后引入,不是磨人吗?

须知编码不统一,才是乱码之根源啊,娘希匹!

5。struts1.X的action编码处理

struts2.X没用过,应该可以用相应的办法来做,比如弄个Filter

(1)建一个Servlet(想了半天,这里应该就是Filter类似的作用),code:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import org.apache.struts.action.*;

public class ComicActionServlet extends ActionServlet {
public static final long serialVersionUID = -1L;

protected void process(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");

super.process(request, response);
}
}


(2)web.xml配置所有的Action都从这里经过,web.xml:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>ReportEngineServlet</servlet-name>
<servlet-class>servlets.ReportEngineServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>BackgroundServlet</servlet-name>
<servlet-class>
com.socix.comic.common.BackgroundServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
com.socix.comic.common.ComicActionServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/config/struts-config.xml,
/WEB-INF/config/struts-config-admin.xml,
/WEB-INF/config/struts-config-series.xml,
/WEB-INF/config/struts-config-chapter.xml,
/WEB-INF/config/struts-config-hotnew.xml,
/WEB-INF/config/struts-config-stat.xml
</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ReportEngineServlet</servlet-name>
<url-pattern>/servlets/ReportEngineServlet</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri>
<taglib-location>
/WEB-INF/tld/struts-nested.tld
</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-template.tld</taglib-uri>
<taglib-location>
/WEB-INF/tld/struts-template.tld
</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
</taglib>
</web-app>



(3)注意上面的web.xml里面:<?xml version="1.0" encoding="UTF-8" ?>

(4)还没完,在web.xml里面用到的struts的配置文件,其头部都和web.xml一样,应为:

<?xml version="1.0" encoding="UTF-8" ?>


有乱码的同志,请依次检查以上各项。如果还不能改变乱码,只能说,我弱,我解决不了你的问题。
...全文

相关推荐

Struts1.x入门与提高系列教程.pdf

Struts1.x入门与提高系列教程.pdf 很好用的,拿来与大家分享

Mr_pop

Spring Boot汽车租赁管理系统:从项目结构到论文答辩的完整实战指南

在Java Web开发中,Spring Boot早已成为企业级应用与毕业设计项目的首选框架。它以极简配置、内嵌服务器和丰富生态,大幅降低了系统搭建门槛,让开发者能更专注于业务逻辑实现。围绕汽车租赁这类典型的信息管理系统,核心场景始终是增删改查、角色权限、订单状态流转与数据统计。理解其背后的三层架构与数据库设计,是快速上手同类项目的关键。本文从单体架构选型、数据表规划,到登录鉴权、订单计费、并发控制等常见难点,系统拆解一个基于Spring Boot的汽车租赁管理系统如何从零落地。同时覆盖静态资源映射、事务处理

weixin_30892889

SpringBoot+MySQL新闻系统:从源码到部署的完整实战拆解

在Java后端开发中,SpringBoot与MySQL组合是构建数据驱动型Web应用最经典的方案之一。SpringBoot通过自动配置与约定优于配置大幅简化项目启动流程,MySQL则提供稳定可靠的关系型数据存储。二者结合,形成从Controller控制层到Service业务层再到Mapper数据访问层的标准分层架构,为开发者提供了清晰的职责边界与高效的开发体验。无论是用户登录鉴权、新闻增删改查,还是分页排名、文件上传,这类高频业务场景都依赖这套基础技术栈。理解其核心原理和工程实践,有助于快速上手各类内容管理

weixin_33971977

基于Java的学生考勤系统设计与实现:Spring Boot+MyBatis全解析

Java后端开发中,权限管理与数据库设计是构建企业级应用的核心基础。Spring Boot作为当前主流的Java开发框架,通过自动配置与starter机制大幅简化了项目搭建;MyBatis则凭借灵活的SQL控制能力,在复杂业务报表查询中优势明显。以学生考勤系统为例,这类多角色业务系统天然适合实践RBAC权限模型,同时涵盖课表生成、签到逻辑、请假审批、统计报表等典型场景。本文从概念到原理,系统拆解考勤系统的数据表设计、核心业务实现与常见踩坑点,帮助你掌握从零构建一个可扩展、可维护的Java Web项目的完整思

cuikeng1956

struts1初级教程

struts的初级教程,对没有接触过struts的同学,有很大的帮助

fancylang998
评论 44
收藏 已收藏
分享
返回顶部
crazylaa
Web 开发 81,108 成员 341,721 内容