Servlet与数据库连接不能显示中文

luobiao 2003-12-15 04:33:36
小弟用Servlet写了一个注册页面,大体是这样:我配置了一个J2ee WEB服务器,与客户交互的是一个Html页面,当用户输入与“姓名”,“地址”等信息后,按提交按钮,服务器调用Servlet,并与MSSQL Server 2000数据库连接。这样就出了一个问题,用户输入中文姓名和地址后,在数据库里所看到的数据全变成了“???”,请问各位高手有什么方法可以解决此问题。小弟不胜感激!!!
...全文
62 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
luobiao 2003-12-15
  • 打赏
  • 举报
回复
谢谢!!
aku0708 2003-12-15
  • 打赏
  • 举报
回复
看看
package com.hantang.userinfo;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import com.hantang.userinfo.*;
import com.hantang.app.database.*;
import javax.servlet.jsp.*;

public class UserInfoServlet
extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}

//Process the HTTP Get request
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");
response.setContentType(CONTENT_TYPE);

String action = request.getParameter("login");
if (action != null) {
doLogin(request, response);
}
action = request.getParameter("add");
if (action != null) {
this.toAdd(request, response);
}
action = request.getParameter("edit");
if (action != null) {
this.toEdit(request, response);
}
String event = request.getParameter("event");
if (event != null) {
if (event.equals("doedit")) {
doEdit(request, response);
}
else if (event.equals("doadd")) {
doAdd(request, response);
}
}

}
private void doAdd(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
HttpSession session = request.getSession(true);
String member_id = request.getParameter("member_id");
String sex = request.getParameter("sex");
String password = request.getParameter("password");
String name = request.getParameter("name");
String addr = request.getParameter("addr");
String area_cd = request.getParameter("area_cd");
String tel_no = request.getParameter("tel_no");
String email = request.getParameter("email");
String birth_yy = request.getParameter("birth_yy");
String birth_mm = request.getParameter("birth_mm");
String birth_dd = request.getParameter("birth_dd");
String birthday = birth_yy + "-" + birth_mm + "-" + birth_dd;
UserInfo user = new UserInfo();
user.setMember_id(member_id);
user.setSex(sex);
user.setPassword(password);
}}
aku0708 2003-12-15
  • 打赏
  • 举报
回复
中文转换一下:

在SERVLET中定义:
private static final String CONTENT_TYPE = "text/html; charset=GBK";
然后在doPost(),doGet()方法中加入这两句:
 request.setCharacterEncoding("GB2312");
response.setContentType(CONTENT_TYPE);
就可以了
lzsbj 2003-12-15
  • 打赏
  • 举报
回复
以前的贴子搜一下就有~~~

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧