平台tomcat6.0,mysql5.1
这样子插入中文显示正常
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/tidos?useUnicode=true&characterEncoding=GBK","root","");
PreparedStatement st=con.prepareStatement("insert into message values(?,?,?,?,?)");
st.setString(1,"中文");
st.execute();
st.close();
con.close();
}catch(Exception e)
{
System.err.println(e);
}
----------------------------------------------------------
我的javabean:
public class GetCon {
private SetBean sb;
private Connection con;
public GetCon(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
//"jdbc:mysql://localhost:3306/tidos","root",""
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/tidos?useUnicode=true&characterEncoding=GBK","root","");
}catch(Exception e)
{
System.err.println(e);
}
}
public void setSB(SetBean s)
{
sb=s;
}
public SetBean getSB()
{
return sb;
}
public void addMessage()throws Exception
{
Statement ss=con.createStatement();
PreparedStatement st=con.prepareStatement("insert into message values(?,?,?,?,?)");
st.setString(1,sb.getTitle());
st.setString(2,sb.getName());
st.setString(3,sb.getEmail());
st.setString(4,sb.getContent());
st.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
st.execute();
//st.close();
con.close();
}
}
用到bean的jsp:
<%@page language="java" import="java.util.*,java.sql.*,dd.SetBean" %>
<jsp:useBean id="set" class="dd.SetBean" scope="page">
<jsp:setProperty name="setbean" property="*"/>
</jsp:useBean>
<jsp:useBean id="con" class="dd.GetCon"/>
<body>
<%
try{
con.setSB(set);
con.addMessage();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</body>
但是这样插入就出现乱码,哪位知道请帮帮我.非常感谢.
这样子插入中文显示正常
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/tidos?useUnicode=true&characterEncoding=GBK","root","");
PreparedStatement st=con.prepareStatement("insert into message values(?,?,?,?,?)");
st.setString(1,"中文");
st.execute();
st.close();
con.close();
}catch(Exception e)
{
System.err.println(e);
}
----------------------------------------------------------
我的javabean:
public class GetCon {
private SetBean sb;
private Connection con;
public GetCon(){
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
//"jdbc:mysql://localhost:3306/tidos","root",""
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/tidos?useUnicode=true&characterEncoding=GBK","root","");
}catch(Exception e)
{
System.err.println(e);
}
}
public void setSB(SetBean s)
{
sb=s;
}
public SetBean getSB()
{
return sb;
}
public void addMessage()throws Exception
{
Statement ss=con.createStatement();
PreparedStatement st=con.prepareStatement("insert into message values(?,?,?,?,?)");
st.setString(1,sb.getTitle());
st.setString(2,sb.getName());
st.setString(3,sb.getEmail());
st.setString(4,sb.getContent());
st.setDate(5,new java.sql.Date(new java.util.Date().getTime()));
st.execute();
//st.close();
con.close();
}
}
用到bean的jsp:
<%@page language="java" import="java.util.*,java.sql.*,dd.SetBean" %>
<jsp:useBean id="set" class="dd.SetBean" scope="page">
<jsp:setProperty name="setbean" property="*"/>
</jsp:useBean>
<jsp:useBean id="con" class="dd.GetCon"/>
<body>
<%
try{
con.setSB(set);
con.addMessage();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
</body>
但是这样插入就出现乱码,哪位知道请帮帮我.非常感谢.
解决方案 »
- 请教:jsp备份恢复mysql数据库出错
- [JSF, ADF Faces] managed bean 的属性显示不出来,内详
- 关于struts action的一个问题
- 把一个图片设置成Frame的背景,该重写哪个方法?
- myeclipse6.0链接oracle9i怎么链接
- 请问这是什么错误
- 文章分段显示问题,高分请教。
- 有谁用过wsad,吐血问题,请教!!!你要几分给几分!
- 如何能让流量访问的第12位人数变成000012。到999999后就不在出现前面的0了。
- Spring的@PropertyResource中,获取.properties文件的username属性时,得到Administrator
- java 初学者遇到的怪问题 ,请高手解答一下
- Eclipse FlexBuilder等都无法使用。。。
JSP向JAVA传数据时一般需要进行 中文处理 因为编码格式不一致
可能是你MYSQL的版本的问题,我的版本是:mysql-essential-5.0.22-win32
可能是你在安装MYSQL的时候没有选对字符编码格式;再不行你可以转换字符
new String(temp.getBytes("ISO8859-1")) 从数据库读数据到网页
new String(title1.getBytes("GB2312"),"ISO8859-1")从网页向数据库写数据
throws IOException,ServletException{
System.out.println("过滤器执行前");
request.setCharacterEncoding("GB2312") ; //在request.getParameter("name")之前转码,根据你的机器设置编码GB2312 reponse.setCharacterEncoding("GB2312");
String name=request.getParameter("name");
if(name!=null){
System.out.println(name);
}
chain.doFilter(request,response);
System.out.println("过滤器执行后");
}
}
提交的两种方式,GET和POST
1.记住超链接是GET方式提交
2.POST方式提交可以统一转码(这样获得的参数可以统一转码) ,也就是说你可以用过滤器来统一转码
例:request.setCharacterEncoding("UTF-8"); //如果你用的编码方式是GBK就写GBK,要写在获得参数的前面
String name=request.getParameter("name");
System.out.println(name); //可以转过来,必须是POST提交
3.GET方式不能用统一转码
但可以这样做:
String name=request.getParameter("name");
name=new String(name.getBytes("ISO-8859-1"),"UTF-8"); //这种也叫重新赋值的方式
System.out.println(name);
但这样做也带来很多不便,假如你有很多request.getParameter("something"); 你必须一一转码.
4.GET方式还有一种配置可以在Tomcat下配置URIEncoding=UTF-8