package lanxu.blog;
import java.sql.*;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;import javax.naming.Context;
import javax.naming.InitialContext;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;public class BlogServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doPost(request,response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb2312"); 

String  title=request.getParameter("title");
String  content=request.getParameter("content");
String categoryid=request.getParameter("category");
 byte[]   B=title.getBytes("ISO-8859-1");  
 title=new   String(B);  
//System.out.println(title);
//System.out.println(content);
//System.out.println(categoryid);
DataSource ds=null;

try {
Context context = new InitialContext();
ds=(DataSource)context.lookup("java:/comp/env/jdbc/mysqlds");
} catch (Exception e) {
System.out.println("获取数据源时出错");
}
int result=0;

  try {
  // request.setCharacterEncoding("gb2312"); 
  //title=new String(title.getBytes(),"GBK");
  Connection conn=ds.getConnection();
 
      String sql="insert into blog(category_id,title,content,creat_time) values (?,?,?,now())";
    
PreparedStatement pstm=conn.prepareStatement(sql);

pstm.setInt(1,Integer.parseInt(categoryid));
pstm.setString(2,title);
pstm.setString(3,content);

 result=pstm.executeUpdate();
System.out.println(result);
conn.close();
  } 
  catch (SQLException e) {

  e.printStackTrace();
  }    String message="";

   if(result==1)
   {
   message="添加成功!";
   }
   else
   {
   message="添加失败!";
   }
   request.setAttribute("message",message);
   request.getRequestDispatcher("/adddBlogResult.jsp").forward(request, response);
 
   }
}

解决方案 »

  1.   

     对啊,lz要说那个地方出现了乱码
    你可以设置MYSQL的编码集。要不就是得到一个值就手动的将他转型
      

  2.   

    看你的请求时post还是get!
    request.setCharacterEncoding("gb2312"); 只针对post请求!
      

  3.   


    用的是post方式
    在数据库中显示的是乱码~~
    filter怎么用啊?
    应该有不用filter就可以解决乱码的方法吧?
      
      

  4.   

    LZ,这个问题是非常常见的。
    你需要先跟踪到乱码发生在哪里?
    1.你可以先看看Servlet收到的数据是不是乱码。就是把收到的数据打印出来。
    2.如果第1步没问题,那问题基本就是数据库字符集的问题了,改成utf-8吧。我觉得问题出在第2步的可能性更大,因为我遇到过。
      

  5.   

    乱码 的问题相信很多人都碰到过,尤其是mysql,其实只需要两步就可以解决(不用servlet):
    第一,在安装mysql时,最后选择默认数据库语言的时候选择“GBK”或者“GB2312”;
    第二,在jsp页面中,修改encoding编码为"GBK"或者“GB2312”。
      

  6.   

    response也需要设置编码方式
    数据库 建库和建表都需要设置编码方式