<%@ page import="java.util.Date, java.text.SimpleDateFormat" %>
<%@ page import="com.wgh.*" %>
<%@ page contentType="text/html;charset=gb2312" %>
<% request.setCharacterEncoding("gb2312"); %>
<jsp:useBean id="dbconn" scope="application" class="com.am.OpenDB"/>
<jsp:useBean id="register" class="com.am.register"/>
<jsp:useBean id="str" class="com.wgh.DB.chStr"/>
<% //获取用户名
register.userName=request.getParameter("txtusername");
register.setConnection(dbconn.getConnection());
//判断用户名是否已经存在
if(register.isExist()){
System.out.println("该用户已经存在");
}
else {
//用户不存在,获取用户的其他注册信息
register.userPassword=request.getParameter("txtuserPassword");
register.name=request.getParameter("txtname");
register.company=request.getParameter("txtcompany");
register.depart=request.getParameter("txtdepart");
register.email=request.getParameter("txtemail");
SimpleDateFormat dateFormatter=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
register.createDatetime=dateFormatter.format(new java.util.Date());
register.myfields="0";
String[] myfields=request.getParameterValues("txtmyfields");
if(myfields!=null) {
for(int i=0;i<myfields.length;i++){
if(myfields[i]!="") {
register.myfields=register.myfields+","+myfields[i];
}
}
}
register.myfields=register.myfields+",0";
register.systemRole="1";
register.tag=0;
//保存注册信息
register.addUser();
}
%>
<html>
<head>
<title>刊物文章管理系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
<p>注册成功!</p>
<p>用户名为:
<%=
str.chStr(register.userName)//显示的是问号
%>
</p>
<p>请记住用户名密码,要登录请</p>
<form action="index.jsp" method="post">
<input type="submit" value="返回首页">
</form>
</body>
</html>
register.userPassword=request.getParameter("txtuserPassword");
register.name=request.getParameter("txtname");
register.company=request.getParameter("txtcompany");
register.depart=request.getParameter("txtdepart");
register.email=request.getParameter("txtemail");
这里的request不知道和我理解的request一样不<%@ page contentType="text/html;charset=gb2312" %>
<% request.setCharacterEncoding("gb2312"); %>
这些地方都注明了简体中文,我觉得最好就是用utf-8,国际通用,只是个建议,跟你的问题可能没关系
System.Web.HttpUtility.UrlEncode(System.Text.Encoding.UTF8.GetBytes(string a ))
chStr str = new chStr();
register.name = str.chStr(request.getParameter("txtname"));
package com.jspdev.ch8;import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import javax.servlet.FilterConfig;public class EncodingFilter implements Filter
{
protected FilterConfig filterConfig;
private String targetEncoding = "gb2312";
/**
*初始化过滤器,和一般的Servlet一样,它也可以获得初始参数。
*/
public void init(FilterConfig config) throws ServletException {
this.filterConfig = config;
this.targetEncoding = config.getInitParameter("encoding");
}
/**
*进行过滤处理,这个方法最重要,所有过滤处理的代码都在此实现。
*/
public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)
throws IOException, ServletException {
// System.out.println("使用以下方法对请求进行编码:encoding="+targetEncoding);
HttpServletRequest request = (HttpServletRequest)srequest;
request.setCharacterEncoding(targetEncoding);
// 把处理权发送到下一个
chain.doFilter(srequest,sresponse);
} public void setFilterConfig(final FilterConfig filterConfig)
{
this.filterConfig=filterConfig;
}
//销毁过滤器
public void destroy()
{
this.filterConfig=null;
}
}
str.chStr(register.userName),,,,,
JAVABEAN+JSP,我没用过多少,不是很熟,不过为什么还要这样取得呢?
会不会是数据库里乱码了.如果是MYSQL很有可能.
<% //获取用户名
register.userName=request.getParameter("txtusername");
register.setConnection(dbconn.getConnection());
//判断用户名是否已经存在
if(register.isExist()){
System.out.println("该用户已经存在");
}
这里打印看看是什么东西,有没有乱码.
<filter-name>encoding</filter-name>
<filter-class>com.jspdev.ch8.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
看下数据库里存的字段值是不是"??",mysql对中文的支持很差建议你在建表的时候就设置字符编码DEFAULT CHARSET=GBK;