javaBean的基础知识及常见乱码解决方法

发布时间 - 2026-01-10 23:22:39    点击率:

javaBean的基础知识及常见乱码解决方法

乱码问题应该是做javaWeb开发人员都遇到过的问题吧,这个问题当时还影响了我学习Java的想法,甚至有过想放弃的想法,没办法,当时年轻,呵呵。其实产生乱码问题的原因有很多,解决乱码的问题也有很多,现在就一一来看一下:

出现乱码的地方大致可以分为以下三种:

1 jsp页面中
2 jsp页面之间相互传参的参数
3 与数据库中数据的存取

解决方案大致可以分为三种:

  1 出现在jsp页面中,是由于没有设置jsp页面的中文字符编码。
  2 出现在jsp页面之间相互传参,是由于参数没有设置正确的字符编码。
  3 以上2个问题解决了,那么存到数据库中,自然就不存在乱码。除非你对存入到数据库里的数据再次进行编码。

具体的解决方法:

1.在表单页面头部设置字符编码为utf-8

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

加上这句解决jsp页面中的中文乱码显示,tomcat编译完后向客户端输出的html文件不是采用中文编码,所以会导致乱码产生。

 2.设置页面请求和回应的编码:

 <%request.setCharacterEncoding("utf-8");
 response.setCharacterEncoding("utf-8"); %>

加上这句解决jsp页面中的中文参数传递乱码。把浏览器默认使用的编码设置为“UTF-8”发送请求参数。

3.String(request.getParameter("name").getBytes("ISO8859_1"),"utf-8");这句的意思是,把传来的参数全部编码转换成utf-8,这样做的缺点是每次传来一个参数都要这样写,很麻烦。

同样可通过设置server.xml配置文件来实现。

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

但是这样就应用到整个webapp中去了。

4.还可以修改web.xml文件,配置一个过滤器。其原理都一样,只是换种方式而已

1.编写过滤器类:

package org.RN.util; 
 
import java.io.IOException; 
 
import javax.servlet.Filter; 
import javax.servlet.FilterChain; 
import javax.servlet.FilterConfig; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRequest; 
import javax.servlet.ServletResponse; 
 
public class Encoding implements Filter { 
  @SuppressWarnings("unused") 
  private FilterConfig config=null; 
  String encoding=null; 
 public void destroy() { 
 this.encoding=null; 
 this.config=null; 
 
 } 
 
 public void doFilter(ServletRequest request, ServletResponse response, 
  FilterChain chain) throws IOException, ServletException { 
   if(encoding!=null) 
   request.setCharacterEncoding(encoding); 
   chain.doFilter(request, response); 
    
 
 } 
 
 public void init(FilterConfig arg0) throws ServletException { 
 this.config=arg0; 
 this.encoding=arg0.getInitParameter("encoding"); 
 
 } 
 
} 

 2.在web.xml配置

<filter> 
 <description>缓存过滤</description> 
 <filter-name>Encoding </filter-name> 
 <filter-class> 
  filter.Encoding 
 </filter-class> 
 </filter> 
 <filter-mapping> 
 <filter-name>Encoding </filter-name> 
 <url-pattern>*</url-pattern> 
 </filter-mapping> 


</filter> 

5.还有一种常见的乱码问题就是下载时出现文件名乱码

原来处理下载的代码如下:

response.setHeader("Content-Disposition", "attachment; filename=" + java.NET.URLEncoder.encode(fileName, "UTF-8"));
URLEncoder类包含将字符串转换为application/x-www-form-urlencoded MIME 格式的静态方法。

URLDecoder与URLEncoder 类相对应的URLDecoder 类有两种静态方法。它们解码以x-www-form-url-encoded这种形式编码的string。也就是说,它们把所有的加号(+)转换成空格符,把所有的%xx分别转换成与之相对应的字符:   

       JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。

         JavaBean的任务就是: “Write once, run anywhere, reuse everywhere”,即“一次性编写,任何地方执行,任何地方重用”。这个任何实际上就是要解决困扰软件工业的日益增加的复杂性,提供一个简单的、紧凑的和优秀的问题解决方案。 

        JavaBean 的范围 Scope 是一个具有生命时间的变量。JavaBean的范围在<jsp:useBean scope=”….>标志中右边进行表示。将产生一个JavaBean的快捷参考。 说明:jsp服务器引擎将剥离<jsp。。。。标记。并且在最终用户的浏览器上无法显示实际代码。   

存在下面四种范围:页面page、请求request、对话session、应用application

对话范围:

  对话范围的JavaBean 主要应用于跨多个页面和时间段: 例如填充 用户信息。 添加信息并且接受回馈,保存用户最近执行页面的轨迹。对话范围JavaBean保留一些和用户对话 ID 相关的信息。这些信息来自临时的对话cookie,并在当用户关闭浏览器时,这个cookie将从客户端和服务器删除。

页面/请求范围:

  页面和请求范围的JavaBean有时类似表单 的bean , 这是因为 他们大都用于处理表单。表单需要很长的时间来处理用户的输入,通常情况下用于页面接受HTTP/POST或者GET请求。另外页面和请求范围的bean可以用于减少大型站点服务器上的负载,如果使用对话bean,耽搁的处理就可能会消耗掉很多资源。

应用:

  应用范围通常应用于服务器的部件,例如 JDBC 连接池、应用监视、用户计数和其他参与用户行为的类。 在Bean中限制HTML的产生: 理论上,JavaBean 将不会产生任何HTML,因为这是jsp层负责的工作;然而,为动态消息提供一些预先准备的格式是非常有用的。产生的HTML将被标注的 JavaBean方法返回。  

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# javaBean的基础知识及常见乱码解决  # javaBean  # 基础知识  # 常见乱码解决  # java网络编程基础知识介绍  # Java基础知识汇总  # Java基础知识精选 你答对了几道?  # servlet基础知识_动力节点Java学院整理  # java 基础知识之网络通信(TCP通信、UDP通信、多播以及NIO)总结  # java 基础知识之IO总结  # Java 面试题基础知识集锦  # Java基础知识杂文  # 表单  # 转换成  # 这句  # 出现在  # 三种  # 应用于  # 解决方法  # 数据库中  # 相对应  # 可以分为  # 客户端  # 是一个  # 这是  # 器上  # 也有  # 是一种  # 去了  # 还可以  # 都要  # 多个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  Laravel怎么为数据库表字段添加索引以优化查询  如何在企业微信快速生成手机电脑官网?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  Laravel如何使用Blade组件和插槽?(Component代码示例)  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何批量查询域名的建站时间记录?  米侠浏览器网页背景异常怎么办 米侠显示修复  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Android利用动画实现背景逐渐变暗  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  JS去除重复并统计数量的实现方法  Laravel怎么在Controller之外的地方验证数据  如何快速辨别茅台真假?关键步骤解析  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  在Oracle关闭情况下如何修改spfile的参数  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  UC浏览器如何设置启动页 UC浏览器启动页设置方法  如何在IIS7上新建站点并设置安全权限?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  潮流网站制作头像软件下载,适合母子的网名有哪些?  网站制作报价单模板图片,小松挖机官方网站报价?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  Android Socket接口实现即时通讯实例代码  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  个人网站制作流程图片大全,个人网站如何注销?  如何在自有机房高效搭建专业网站?  如何确保FTP站点访问权限与数据传输安全?  如何快速上传建站程序避免常见错误?  Python结构化数据采集_字段抽取解析【教程】  Java垃圾回收器的方法和原理总结  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  网站制作大概多少钱一个,做一个平台网站大概多少钱?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  做企业网站制作流程,企业网站制作基本流程有哪些?  微信小程序 配置文件详细介绍  中国移动官方网站首页入口 中国移动官网网页登录  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  微信小程序 canvas开发实例及注意事项  如何在IIS中新建站点并配置端口与IP地址?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】