首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

汉语言验证不过关啊

2012-12-17 
中文验证不过关啊!?%@page contentTypetext/html pageEncodingGBK%%@page importjava.sql.*%

中文验证不过关啊!?
<%@page contentType="text/html" pageEncoding="GBK"%>
<%@page import="java.sql.*"%>
<%!
public static final String DRIVER="com.mysql.jdbc.Driver";
public static final String URL="jdbc:mysql://localhost:3306/sms?useUnicode=true&characterEncoding=GBK";
public static final String USER="root";
public static final String PWD="bush";
%>
<%
Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null;
boolean flag=false;
String name=request.getParameter("username");
String pwd=request.getParameter("userpass");
String sql="select uid from user where uname=? and upwd=?";
try{
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,USER,PWD);
pst=conn.prepareStatement(sql);
pst.setString(1,name);
pst.setString(2,pwd);
rs=pst.executeQuery();
while(rs.next()){
int i=rs.getInt("uid");
out.println("<h1>"+i+"</h1>");
}
if(rs.next()){
flag=true;
session.setAttribute("uname",name);
}
}catch(Exception e){

}finally{
try{
rs.close();
pst.close();
conn.close();
}catch(Exception e){
}
}
if(flag){
%>
<jsp:forward page="main.jsp"/>
<%
}else{
%>
<jsp:forward page="fail.html"/>
<%
}
%>

我也刚开始练习jsp,写了个登陆操作,用户名如果是英文的话可以,但是换成中文就总是验证失败啊!
mysql数据库的编码是GBK,所有的页面编码也都是GBK。
那位大神给支个招?小弟菜鸟一名,求教了!
[最优解释]
我是凭记忆是这个方法的,你看下有没有类似的方法,设置下就好了
不过好像就是这个方法名字啊....
[其他解释]
把你数据库取出来的值打印到页面上看是否是乱码
[其他解释]

引用:
把你数据库取出来的值打印到页面上看是否是乱码

我打印了,没个用户有个id,英文名称的话有结果,就是用户id,如果是中文名字的话就没结果,连id都打印不出来。。。
[其他解释]
1.String name=request.getParameter("username");
打印name
2.String sql="select uname,upwd from user";
打印uname,和upwd
[其他解释]
加入多个System.out.println语句,验证是否有乱码。
[其他解释]
引用:
1.String name=request.getParameter("username");
打印name
2.String sql="select uname,upwd from user";
打印uname,和upwd

啊!那个那么打印出来时乱码,可是我的表单页的编码和jsp页,以及浏览器的都一样啊!这个是什么问题呢?

[其他解释]
试试这个jdbc:mysql://localhost/DBVF?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
[其他解释]
name打印出来是乱码!
[其他解释]
引用:
试试这个jdbc:mysql://localhost/DBVF?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8


我的这个jdbc:mysql://localhost:3306/sms?useUnicode=true&characterEncoding=GBK
[其他解释]
引用:
试试这个jdbc:mysql://localhost/DBVF?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8



jdbc:mysql://localhost:3306/sms?useUnicode=true&characterEncoding=GBK
[其他解释]
引用:
name打印出来是乱码!

打开你的网页,右键,编码,看看是不是gbk编码
[其他解释]
还有在String name=request.getParameter("username");
之前加入 request.setEncoding("GBK");
[其他解释]
引用:
还有在String name=request.getParameter("username");
之前加入 request.setEncoding("GBK");


页面编码就是gbk,但是在String name=request.getParameter("username")
前加request.setEncoding("gbk");出错了,说request对象没有这个方法。
[其他解释]
引用:
还有在String name=request.getParameter("username");
之前加入 request.setEncoding("GBK");


终于搞定了!!加个reques.setCharacterEncoding("gbk");就好了!谢谢啊!
我自己还是学艺不精啊!

热点排行