代码如下:
js文件如下://设XMLHttpRequest变量
var XMLHttpReq=false;
//创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.XMLHttpRequest){ //Mozilla
XMLHttpReq=new XMLHttpRequest();
}
else if(window.ActiveXObject){
try{
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("你的浏览器不支持ajax!");
return false;
}
}
}
}
//发送请求函数
function sendURL(url){
createXMLHttpRequest();
XMLHttpReq.open("POST",url,true);
alert(url);
XMLHttpReq.onreadystatechange=parse; //指定响应的函数
XMLHttpReq.send(null); //发送请求
}
function parse(){
if(XMLHttpReq.readyState==4){ //对象状态
if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息
document.getElementById("status").innerHTML=XMLHttpReq.responseText;
}else{
window.alert("所请求的页面有异常");
}
}
}
//身份验证
function checkUsername(){
var username = document.getElementById("registerName").value;
alert(username); //这里通过检查能得到中文
if(username == ""){
alert("请输入用户名!");
return false;
} else{
var url = "/myJava_Item/servlet/XMLHttpRequest?XMLusername="+username ;
sendURL(url);
}
}
Java文件如下:package com.servlet.ajax;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.util.ConnDB;@SuppressWarnings("serial")
public class XMLHttpRequest extends HttpServlet { Connection conn = null ;
Statement stm = null ;
ResultSet rs = null ; public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.setCharacterEncoding("gb2312");
System.out.println("XMLusername="+request.getParameter("XMLusername")); //【这里检查接收到得为乱码!!!】
String XMLusername = request.getParameter("XMLusername");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
boolean isValid = true;
try {
conn = ConnDB.getconnDB();
stm = conn.createStatement();
rs = stm.executeQuery("select * from [user] where username='"+XMLusername+"'");//执行SQL语句,如果此用户存在,就返回此用户的信息,且只有一条数据,否则返回空
if(rs.next()) {
isValid = false ;
} else {
isValid = true ;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();stm.close();conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(isValid){
out.println("用户名可以使用");
}
else{
out.println("用户名已被注册");
}
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request,response);
} public void init(ServletConfig config) throws ServletException {
// Put your code here
super.init(config);
}}以上为源程序,在Java文件取得用户填写的数据是乱码,一直找不到原因。
js文件如下://设XMLHttpRequest变量
var XMLHttpReq=false;
//创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.XMLHttpRequest){ //Mozilla
XMLHttpReq=new XMLHttpRequest();
}
else if(window.ActiveXObject){
try{
XMLHttpReq=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLHttpReq=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
alert("你的浏览器不支持ajax!");
return false;
}
}
}
}
//发送请求函数
function sendURL(url){
createXMLHttpRequest();
XMLHttpReq.open("POST",url,true);
alert(url);
XMLHttpReq.onreadystatechange=parse; //指定响应的函数
XMLHttpReq.send(null); //发送请求
}
function parse(){
if(XMLHttpReq.readyState==4){ //对象状态
if(XMLHttpReq.status==200){//信息已成功返回,开始处理信息
document.getElementById("status").innerHTML=XMLHttpReq.responseText;
}else{
window.alert("所请求的页面有异常");
}
}
}
//身份验证
function checkUsername(){
var username = document.getElementById("registerName").value;
alert(username); //这里通过检查能得到中文
if(username == ""){
alert("请输入用户名!");
return false;
} else{
var url = "/myJava_Item/servlet/XMLHttpRequest?XMLusername="+username ;
sendURL(url);
}
}
Java文件如下:package com.servlet.ajax;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.util.ConnDB;@SuppressWarnings("serial")
public class XMLHttpRequest extends HttpServlet { Connection conn = null ;
Statement stm = null ;
ResultSet rs = null ; public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { request.setCharacterEncoding("gb2312");
System.out.println("XMLusername="+request.getParameter("XMLusername")); //【这里检查接收到得为乱码!!!】
String XMLusername = request.getParameter("XMLusername");
response.setContentType("text/html;charset=gb2312");
PrintWriter out = response.getWriter();
boolean isValid = true;
try {
conn = ConnDB.getconnDB();
stm = conn.createStatement();
rs = stm.executeQuery("select * from [user] where username='"+XMLusername+"'");//执行SQL语句,如果此用户存在,就返回此用户的信息,且只有一条数据,否则返回空
if(rs.next()) {
isValid = false ;
} else {
isValid = true ;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
rs.close();stm.close();conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(isValid){
out.println("用户名可以使用");
}
else{
out.println("用户名已被注册");
}
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request,response);
} public void init(ServletConfig config) throws ServletException {
// Put your code here
super.init(config);
}}以上为源程序,在Java文件取得用户填写的数据是乱码,一直找不到原因。
解决方案 »
- 技术交流
- 帮忙解释下这个的用处哈
- 在启用了ssl认证后,如何保存cookie?
- 大家推荐几本经典的 学习ejb的电子书籍
- 怎么把j2ee应用程序发布到tomcat服务器
- 在weblogic7里面使用smartupload组件上传文件的问题,java.lang.OutOfMemoryError
- 小妹100分请教一个struts+XSLServlet开发的小例子,谢谢!!!!
- 在weblogic8.1下面用log4j,当程序在jbulider里重新编译之后必须重新启动weblogic服务,日志输出才能显示正常
- EJB和jdbc链接数据库的效率问题?
- 系统中的日志是用AOP实现的,还是显性的用log.info打印呢
- hibernate映射关系是一对一还是多对一??简单问题我问了三次了....
- jmock 代码求解!高手哥哥速度来解决!
Tomcat\conf\server.xml 设置端口那里加上这一句
你可以对
function sendURL(url){
createXMLHttpRequest();
XMLHttpReq.open("POST",url,true);
alert(url);
XMLHttpReq.onreadystatechange=parse; //指定响应的函数
XMLHttpReq.send(null); //发送请求
}
中的url进行编码,使用encodeURIComponent