<%--设置编码方式--%>
<%@ page language="Java" contentType="text/html;charset=GB2312" %>
<%request.setCharacterEncoding("GB2312");%><%--实例化Student类--%>
<jsp:useBean id="student" class="student.Student" scope="session"/>
<%--匹配请求参数中的值--%>
<jsp:setProperty name="student" property="*"/>
<%--age属性被赋指定值--%>
<jsp:setProperty name="student" property="age" value="30"/><html>
<head>
<title>使用存取JavaBean的三个action元素</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
</head>
<body><%if(student.getQuery()){%>
<h2>查询结果:</h2><br>
<%--取bean中的属性值--%>
姓名:<jsp:getProperty name="student" property="name"/><br>
学号:<jsp:getProperty name="student" property="stuCode"/><br>
年龄: <jsp:getProperty name="student" property="age"/>
<%}%>
<hr><h2>学生</h2>
<form name="javabean" action="actions-javaBean.jsp" method="get" >
  <%--注意此处的隐藏文本框--%>
  <input type=hidden name="query" value="true">  
  <p>姓名:<input type="text" name="name">
  
  <p>学号:<input type="text" name="stuCode">
  
  <p> 
    <input type="submit" value="提交">
    <input type="reset" value="取消">
  </p>
</form>
<body>
</html>输出结果:
姓名:??
学号:455
年龄: 30 
姓名中文就乱码!下面是用到的javabean
Student.java
package student;
public class Student {

private String name;
private String stuCode;
private int age;
private boolean query;

public Student(){
name="liuyongpo";
stuCode="BY010226";
age=25;
query=false;
}

public void setName(String name){
this.name = name;
}

public void setStuCode(String stuCode){
this.stuCode = stuCode;
}

public void setAge(int age){
this.age=age;
}

public void setQuery(boolean query){
this.query=query;
}

public String getName(){
return name;
}

public String getStuCode(){
return stuCode;
}

public int getAge(){
return age;
}

public boolean getQuery(){
return query;
}
}

解决方案 »

  1.   

    <%@ page language="Java" contentType="text/html;charset=GB2312" %>
    <%request.setCharacterEncoding("GB2312");%>
    可能有问题,
    你不访把gb2312改成gbk试一下。
      

  2.   

    gbk我也试了还是不行
    我的环境是Eclipse+Tomcat5.5,我用NetBeans5.0也还是一样.
      

  3.   

    在你的Student类的setName方法里做一下编码转换即可.
    public void setName(String name){
            try {
                String par_name = new String(name.getBytes("ISO-8859-1"), "GB2312");
                this.name =par_name;
            } catch (UnsupportedEncodingException ex) {
                System.out.println(ex.getMessage());
            }
    }