或许很多人会出现??这种令人头痛的mysql的中文乱码问题:解决如下:

1.先对于新建的数据库要设置默认的字符集为UTF-8

create database mydb default character set utf8 collate utf8_general_ci;

2.然后对于想对应的表进行设置默认字符集

CREATE TABLE IF NOT EXISTS `mydb` (
`username` varchar(64) NOT NULL,
`userid` int(11) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.最重要的一步在jdbc中的uri的地址中添加如下语句?characterEncoding=UTF-8设置字符集为UTF-8

jdbc:mysql://localhost:3306/db_name?characterEncoding=UTF-8

如下是一个例子:
regServlet.java

package cn.lonecloud.demo;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class RegServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
PrintWriter out = response.getWriter();
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection conn=null;
PreparedStatement prst=null;
ResultSet rs=null;
String db_driver="com.mysql.jdbc.Driver";
String db_url="jdbc:mysql://localhost:3306/db_friend?characterEncoding=UTF-8";
String db_user="root";
String db_password="";
String sql1="select * from userinfo where username=?";
String sql2="insert into userinfo values(?,?)";
try {
String username=request.getParameter("userName");
String userpass=request.getParameter("password");
Class.forName(db_driver);
conn=DriverManager.getConnection(db_url,db_user,db_password);
prst=conn.prepareStatement(sql1);
prst.setString(1, username);
rs=prst.executeQuery();
if (!rs.next()) {
prst=conn.prepareStatement(sql2);
prst.setString(1, username);
prst.setString(2, userpass);
int count=prst.executeUpdate();
if (count!=0) {
HttpSession session=request.getSession();
session.setAttribute("username", username);
request.setAttribute("msg", "注册成功!");
request.getRequestDispatcher("index.jsp").forward(request, response); }else{
request.setAttribute("msg", "登录失败,密码错误!");
request.getRequestDispatcher("error.jsp").forward(request, response); }
}else {
request.setAttribute("msg", "用户不存在!");
request.getRequestDispatcher("error.jsp").forward(request, response); }
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
if (rs!=null) {
try {
rs.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
if (prst!=null) {
try {
prst.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
if (conn!=null) {
try {
conn.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
out.close();
}
} }

reg.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>新用户注册</h1>
<form action="RegServlet" method="post">
<input type="text" name="userName"></br>
<input type="password" name="password"></br>
<input type="submit" id="btn_load">
</form>
</body>
</html>

LoginFilter.java

package cn.lonecloud.demo;

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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class LoginFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub } @Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//在过滤器中必须加入下面这两句话,不然会不能这样调用下面的方法
HttpServletRequest req=(HttpServletRequest) request;
HttpServletResponse resp=(HttpServletResponse)response;
request.setCharacterEncoding("UTF-8");
String path=req.getServletPath();
HttpSession session=req.getSession();
String username=(String)session.getAttribute("username");
System.out.println(path);
boolean b1=path.endsWith("login.jsp");
boolean b2=path.endsWith("error.jsp");
boolean b3=path.endsWith("LoginServlet");
boolean b4=path.endsWith("RegServlet");
boolean b5=path.endsWith("reg.jsp");
boolean b6=(username!=null);
if (b1||b2||b3||b4||b5||b6) {
chain.doFilter(request, response);
}else {
resp.sendRedirect("error.jsp");
} } @Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub } }

myeclispe中向mysql中插入中文数据出现??问题解决办法的更多相关文章

  1. 解决Python向MySQL数据库插入中文数据时出现乱码

    解决Python向MySQL数据库插入中文数据时出现乱码 先在MySQL命令行中输入如下语句查看结果: 只要character_set_client character_set_database ch ...

  2. 解决mysql无法插入中文数据及插入后显示乱码的问题

    (1)废话不多说就是使用mysql数据库的时候无法输入中文,可以输入中文后显示的又是乱码!! (2开始解决问题: 第一步:找到安装mysql的目录找到 my.ini 文件: 第二步:使用记事本打开my ...

  3. python 向MySQL里插入中文数据

    用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","12 ...

  4. mysql不能插入中文数据

    上次遇到的是向mysql插入中文数据,中文数据乱码了.这次直接就不能插入中文数据了!!!! 参考博文:http://blog.csdn.net/generalyy0/article/details/7 ...

  5. pycharm连接mysql数据库插入中文数据时出现1366编码错误

    创建数据库的时候应该这样创建: create database xxxxxxx DEFAULT CHARSET utf8 COLLATE utf8_general_ci:

  6. mysql使其支持插入中文数据的办法

    1.找到安装的文件夹C:\Program Files (x86)\MySQL\MySQL Server 5.0 2.修改文件夹下的my.ini文件: 找到画黄线的这一字段 将后面改为utf8 这个过程 ...

  7. mysql插入中文数据变成问号怎么处理

    插入中文数据变成问号,一般都是因为字符集没有设置成utf8的原因 1.修改字符集: ALTER TABLE 表名 MODIFY 列名 类型(50) CHARACTER SET "utf8&q ...

  8. MySQL插入中文数据出现?号

    原文转载自:https://blog.csdn.net/LynneZoe/article/details/79174119 运行环境:win10 mysql版本:Mysql5.6 做一个项目的时候,向 ...

  9. EF 连接MySQL 数据库  保存中文数据后乱码问题

    EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的 ...

随机推荐

  1. JS事件捕获和事件冒泡

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 14.0px "Helvetica Neue" ...

  2. (1-1)SpringCloud-Eureka:服务的注册与发现

    SpringCloud Eureka是SpringCloud Netflix服务套件中的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能.下面来做一个示例 ...

  3. Linux指令--tar,gzip

    通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...

  4. java1.8--1.8入门介绍

    在我之前的工作中,一直使用的是java6.所以即使现在java已经到了1.8,对于1.7增加的新特性我也基本没使用的.在整理一系列1.8的新特性的过程中,我也会添加上1.7增加的特性. 下面的整理可能 ...

  5. 4.Handler之CoreHandler编写

    4.Handler之CoreHandler编写 如图右上角所示,Ray中有两类Handler(SubHandler和PartSubHandler),在使用中,SubHandler派生Actor的Cor ...

  6. 一行代码搭建 Python 静态服务器

    如果电脑上安装有Python, 那么进入到目标文件夹,在终端中运行如下命令, 即可搭建映射当前目录的静态文件服务器: python -m SimpleHTTPServer 9000 默认端口号是800 ...

  7. django的rest_framework框架源码剖析

    在看源码之前先了解一下什么是rest,restful api. 什么是rest 可以总结为一句话:REST是所有Web应用都应该遵守的架构设计指导原则. REST是Representational S ...

  8. Java中的try catch finaly先后调用顺序

    自我总结,有什么不足或好的方案,希望大家给予纠正,感激不尽! 目的:try catch finaly的顺序执行,和大家复习一遍. 方法:debug来确认执行顺序.(需要引入junit包) 废话不多说, ...

  9. vc++调用web服务传输文件

    bool webService::UploadFile(LPWSTR appKey, LPWSTR fileName, const int len, unsigned char * buff) { t ...

  10. SQL性能优化的几点建议

    1. 索引:索引可以提高查询的速度,但不是使用带有索引的字段查询时,索引都会起作用,如下几种特殊情况下,有可能使用带有索引的字段查询时,索引没有起作用:1)使用LIKE关键字的查询语句 如果匹配字符串 ...