<script type="text/javascript">
var request;
function createRequest(){
if(window.ActiveXObject){
request = new ActiveXObject("Microsoft.XMLHTTP");
}else{
request = new XMLHttpRequest();
}
}
function checkID(){
var id = $("#id").val();
var url = "servlet/CheckID?id=" + id;
createRequest();
request.open("post", url, true);
request.onreadystatechange = processResponse;
request.send(null);
}
function processResponse(){
var res = request.responstText;
if(request.readyState == 4){
if(request.status == 200){
if(res == "success"){
alert("ID已经存在!");
}
}
}else{
alert("请求出现异常!");
}
}
$("#regist").click(function(){
alert("注册");
});
$("#submits").click(function(){
$("#loginForm")[0].submit();
});
</script>
为测试,servlet的dopost方法中只写了一条输出语句。如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter pw = response.getWriter();
System.out.println(request.getParameter("id"));
pw.print("success");
return;
}
但实际测试时,始终提示“请求出来异常”,我想问问,是我哪里没有配置对吗?
32 个解决方案
#1
你那样子判读,总是提示“请求出来异常”是正常的。因为"request.readyState "这里有四个状态。
第一次if(1==4),不成立,所以就执行else里面的.第二次......同样!
还有"var res = request.responstText”获取请求的返回值,一般是request.status == 200请求成功时候才得到的.
第一次if(1==4),不成立,所以就执行else里面的.第二次......同样!
还有"var res = request.responstText”获取请求的返回值,一般是request.status == 200请求成功时候才得到的.
#2
楼上正解,不过,如果始终没有执行到
的话,那可能url或其它什么地方也出问题了
“alert("ID已经存在!");”
的话,那可能url或其它什么地方也出问题了
#3
我现在就是想知道,为什么会请求不成功呢?
#4
var url = "servlet/CheckID?id=" + id;
先直接在浏览器写上url试试可以输出语句不
先直接在浏览器写上url试试可以输出语句不
#5
你判断的地方放错了,即使成功也总是提示‘请求出现异常’.
红色那段你放在最上面,IE8是有问题的。
其他你确定一下你的servlet是否能执行到.
function processResponse(){
if(request.readyState == 4){
if(request.status == 200){
var res = request.responseText;
if(res == "success"){
alert("ID已经存在!");
}else{
alert("ID可以用");
}
}else{
alert('请求失败');
}
}
}
红色那段你放在最上面,IE8是有问题的。
其他你确定一下你的servlet是否能执行到.
#6
function processResponse(){
if(request.readyState == 4){
var res = request. responseText;
if(request.status == 200){
if(res == "success"){
alert("ID已经存在!");
}
}else{
alert("请求出现异常!");
}
}
}
#7
var url = "servlet/CheckID?id=" + id;这里有问题把,加上contextpath
#8
...楼主啊,调试有很多方法,你设置断点,打印看是否访问到你的serverlet,还有alert你的返回值,都是方法,一步一步,随便怎么样都能够解决你的问题,这个跟其他没有多少关系,照样能够找到问题所在。
#9
可能是路径问题
var url = "<%=request.getContextPath()%>/servlet/CheckID?id=" + id;
我这样写了下不行。
var url = "<%=request.getContextPath()%>/servlet/CheckID?id=" + id;
我这样写了下不行。
#10
因为你返回的success 并不是你看到的这个词 周遍还有别的符号所以
if(res == "success")
这个判断永远不会成功!!!
if(res == "success")
这个判断永远不会成功!!!
#11
var res = request.responseText;改成
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
#12
按楼上哥们所说,应该是执行到
这个判断了,但目前是没有进到这个判断中,直接弹出alert("请求出现异常!");
if(res == "success"){
alert("ID已经存在!");
}
这个判断了,但目前是没有进到这个判断中,直接弹出alert("请求出现异常!");
#13
方法已经修改,如下:
function processResponse(){
if(request.readyState == 4){
var res = request.responstText;
if(request.status == 200){
if(res == "success"){
alert("ID已经存在!");
}
}else{
alert("请求出现异常!");
}
}
}
#14
function processResponse(){
if(request.readyState == 4&&request.status == 200){
var res = request.responstText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("请求出现异常!");
}
}
}
if(request.readyState == 4&&request.status == 200){
var res = request.responstText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("请求出现异常!");
}
}
}
#15
我已经说了 因为你返回的“success” 并不是你看到的这个词--"success" 这个"success"边上还有别的你看不到的
#16
仍然是“请求出现异常”
if(request.status == 200){
}else{
alert("请求出现异常!");
}
现在是执行if(request.status == 200)的否则情况,楼上的兄弟,明白了吗?
if(request.status == 200){
}else{
alert("请求出现异常!");
}
现在是执行if(request.status == 200)的否则情况,楼上的兄弟,明白了吗?
#17
var res = request.responstText.replace(/(^\s*)|(\s*$)/g,"");
request.responstText 后面 我加了 replace(/(^\s*)|(\s*$)/g,"") 你知道是什么意思么。
#18
还不改?
是 responseText,不是你那个...
其他没大问题,除开像5楼所说,应该注意Servlet是否有输出,以判断Servlet是否被正常访问。
#19
我也是等待
#20
帖一下servlet的dopost代码:
只为测试交互,没有实现任何功能!
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
PrintWriter pw = response.getWriter();
System.out.println(request.getParameter("id"));
pw.print("success");
}
只为测试交互,没有实现任何功能!
#21
function checkID(){
var id = $("#id").val();
var url = "/servlet/CheckID?id=" + id;
alert(url);
createRequest();
request.open("post", url, true);
request.onreadystatechange = processResponse;
request.send(null);
}
function processResponse(){
if(request.readyState == 4){
if(request.status == 200){
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("可以注册!");
}
}else if(request.status == 404){
alert("url不存在!");
}else{
alert("请求出现异常!");
}
}
}
url不存在,我这样写url不可以吗?我加上<%=request.getContextPath()%>也不行!
#22
试试返回整数1,是否能判断成功!
#23
你 pw.print("success");
这句代码 返回到 请求页的时候并不是 success 这6个字母!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
所以你 那个判断永远都是 false!
to 18楼
那是我打错了
#24
察看Servlet路径的方式:
最保险的做法:web.xml中url-mapping
简便的做法:在Eclipse中Servlet类结点上右击鼠标运行之,浏览器URL栏能看到,为了能看到直接访问的效果,在doGet中调用doPost
最保险的做法:web.xml中url-mapping
简便的做法:在Eclipse中Servlet类结点上右击鼠标运行之,浏览器URL栏能看到,为了能看到直接访问的效果,在doGet中调用doPost
#25
不是这个原因,他都说了 System.out.println(request.getParameter("id"));
可以打印出来的 那就说明SERVLET肯定没问题了
PS:其实我已经说的很清楚了,还不明白我也没办法了。
#26
我不明白23楼的哥们zhuchao_ko:你为什么一直强调返回“success”这个问题,
现在request.status == 404你明白吗?根本都没有执行到if(res == "success")这个判断上,
也许你说的对,返回值确实不只success这7个字母,但是,但是现在还没有走到这一步呢啊!
你是不是没看清楚大括号的配对?再次帖代码:
目前执行后,弹出“url不存在”
现在request.status == 404你明白吗?根本都没有执行到if(res == "success")这个判断上,
也许你说的对,返回值确实不只success这7个字母,但是,但是现在还没有走到这一步呢啊!
你是不是没看清楚大括号的配对?再次帖代码:
function checkID(){
var id = $("#id").val();
var url = "/servlet/CheckID?id=" + id;
alert(url);
createRequest();
request.open("post", url, true);
request.onreadystatechange = processResponse;
request.send(null);
}
function processResponse(){
if(request.readyState == 4){
if(request.status == 200){
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("可以注册!");
}
}else if(request.status == 404){
alert("url不存在!");
}else{
alert("请求出现异常!");
}
}
}
目前执行后,弹出“url不存在”
#27
System.out.println(request.getParameter("id"));这句没有打印
#28
现在错误很明确,没有执行到servlet,但servlet路径的各种写法我都试过了!
#29
Servlet访问问题。
请如我24楼所说,先实现doGet,再找出该Servlet准确的URL,然后我们再一起看那JS中url应该怎么写。
#30
有可能根本没有进入servlet吧
#31
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<script type="text/javascript">
function createRequest()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();//mozilla浏览器
}
else if(window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
catch(e)
{}
try
{
return new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
}
catch(e)
{}
if(!xmlHttpRequest)
{
return false;
}
}
}
var xmlHttpRequest;
function checkID()
{
var id=document.getElementById("id").value;
var url = "/Test/servlet/TestServlet?id="+id;
xmlHttpRequest=createRequest();
xmlHttpRequest.onreadystatechange=processResponse;
xmlHttpRequest.open("POST",url,true);
xmlHttpRequest.send(url);
}
function processResponse()
{
if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200)
{
var res=xmlHttpRequest.responseText;
if(res=="success")
{
alert("ID已存在");
}
}
}
$("#regist").click(function(){
alert("注册");
});
$("#submits").click(function(){
$("#loginForm")[0].submit();
});
</script>
<form action="">
<input id="id" type="text" name="id">
<button onclick="javascript:checkID()">
测试
</button>
</form>
</body>
</html>
Servlet 里跟你的一样;名字叫TestServlet
Test是我的项目名字 可以运行成功,你看看吧。
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<script type="text/javascript">
function createRequest()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();//mozilla浏览器
}
else if(window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
catch(e)
{}
try
{
return new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
}
catch(e)
{}
if(!xmlHttpRequest)
{
return false;
}
}
}
var xmlHttpRequest;
function checkID()
{
var id=document.getElementById("id").value;
var url = "/Test/servlet/TestServlet?id="+id;
xmlHttpRequest=createRequest();
xmlHttpRequest.onreadystatechange=processResponse;
xmlHttpRequest.open("POST",url,true);
xmlHttpRequest.send(url);
}
function processResponse()
{
if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200)
{
var res=xmlHttpRequest.responseText;
if(res=="success")
{
alert("ID已存在");
}
}
}
$("#regist").click(function(){
alert("注册");
});
$("#submits").click(function(){
$("#loginForm")[0].submit();
});
</script>
<form action="">
<input id="id" type="text" name="id">
<button onclick="javascript:checkID()">
测试
</button>
</form>
</body>
</html>
Servlet 里跟你的一样;名字叫TestServlet
Test是我的项目名字 可以运行成功,你看看吧。
#32
问题找到了,原来是因为我在我配置struts2时
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.*</url-pattern>
</filter-mapping>
<url-pattern>写成了*.*,这样导致在进入servlet时,struts2过滤器将自动将自动拦截进入servlet的操作,所以无论我怎样访问servlet都是无法找到。
现在将原<url-pattern>*.*</url-pattern>改成<url-pattern>*.jsp</url-pattern>问题得以解决。
同时非常感谢大家的热心帮忙,结帖了!
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.*</url-pattern>
</filter-mapping>
<url-pattern>写成了*.*,这样导致在进入servlet时,struts2过滤器将自动将自动拦截进入servlet的操作,所以无论我怎样访问servlet都是无法找到。
现在将原<url-pattern>*.*</url-pattern>改成<url-pattern>*.jsp</url-pattern>问题得以解决。
同时非常感谢大家的热心帮忙,结帖了!
#1
你那样子判读,总是提示“请求出来异常”是正常的。因为"request.readyState "这里有四个状态。
第一次if(1==4),不成立,所以就执行else里面的.第二次......同样!
还有"var res = request.responstText”获取请求的返回值,一般是request.status == 200请求成功时候才得到的.
第一次if(1==4),不成立,所以就执行else里面的.第二次......同样!
还有"var res = request.responstText”获取请求的返回值,一般是request.status == 200请求成功时候才得到的.
#2
楼上正解,不过,如果始终没有执行到
的话,那可能url或其它什么地方也出问题了
“alert("ID已经存在!");”
的话,那可能url或其它什么地方也出问题了
#3
我现在就是想知道,为什么会请求不成功呢?
#4
var url = "servlet/CheckID?id=" + id;
先直接在浏览器写上url试试可以输出语句不
先直接在浏览器写上url试试可以输出语句不
#5
你判断的地方放错了,即使成功也总是提示‘请求出现异常’.
红色那段你放在最上面,IE8是有问题的。
其他你确定一下你的servlet是否能执行到.
function processResponse(){
if(request.readyState == 4){
if(request.status == 200){
var res = request.responseText;
if(res == "success"){
alert("ID已经存在!");
}else{
alert("ID可以用");
}
}else{
alert('请求失败');
}
}
}
红色那段你放在最上面,IE8是有问题的。
其他你确定一下你的servlet是否能执行到.
#6
function processResponse(){
if(request.readyState == 4){
var res = request. responseText;
if(request.status == 200){
if(res == "success"){
alert("ID已经存在!");
}
}else{
alert("请求出现异常!");
}
}
}
#7
var url = "servlet/CheckID?id=" + id;这里有问题把,加上contextpath
#8
...楼主啊,调试有很多方法,你设置断点,打印看是否访问到你的serverlet,还有alert你的返回值,都是方法,一步一步,随便怎么样都能够解决你的问题,这个跟其他没有多少关系,照样能够找到问题所在。
#9
可能是路径问题
var url = "<%=request.getContextPath()%>/servlet/CheckID?id=" + id;
我这样写了下不行。
var url = "<%=request.getContextPath()%>/servlet/CheckID?id=" + id;
我这样写了下不行。
#10
因为你返回的success 并不是你看到的这个词 周遍还有别的符号所以
if(res == "success")
这个判断永远不会成功!!!
if(res == "success")
这个判断永远不会成功!!!
#11
var res = request.responseText;改成
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
#12
按楼上哥们所说,应该是执行到
这个判断了,但目前是没有进到这个判断中,直接弹出alert("请求出现异常!");
if(res == "success"){
alert("ID已经存在!");
}
这个判断了,但目前是没有进到这个判断中,直接弹出alert("请求出现异常!");
#13
方法已经修改,如下:
function processResponse(){
if(request.readyState == 4){
var res = request.responstText;
if(request.status == 200){
if(res == "success"){
alert("ID已经存在!");
}
}else{
alert("请求出现异常!");
}
}
}
#14
function processResponse(){
if(request.readyState == 4&&request.status == 200){
var res = request.responstText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("请求出现异常!");
}
}
}
if(request.readyState == 4&&request.status == 200){
var res = request.responstText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("请求出现异常!");
}
}
}
#15
我已经说了 因为你返回的“success” 并不是你看到的这个词--"success" 这个"success"边上还有别的你看不到的
#16
仍然是“请求出现异常”
if(request.status == 200){
}else{
alert("请求出现异常!");
}
现在是执行if(request.status == 200)的否则情况,楼上的兄弟,明白了吗?
if(request.status == 200){
}else{
alert("请求出现异常!");
}
现在是执行if(request.status == 200)的否则情况,楼上的兄弟,明白了吗?
#17
var res = request.responstText.replace(/(^\s*)|(\s*$)/g,"");
request.responstText 后面 我加了 replace(/(^\s*)|(\s*$)/g,"") 你知道是什么意思么。
#18
还不改?
是 responseText,不是你那个...
其他没大问题,除开像5楼所说,应该注意Servlet是否有输出,以判断Servlet是否被正常访问。
#19
我也是等待
#20
帖一下servlet的dopost代码:
只为测试交互,没有实现任何功能!
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
PrintWriter pw = response.getWriter();
System.out.println(request.getParameter("id"));
pw.print("success");
}
只为测试交互,没有实现任何功能!
#21
function checkID(){
var id = $("#id").val();
var url = "/servlet/CheckID?id=" + id;
alert(url);
createRequest();
request.open("post", url, true);
request.onreadystatechange = processResponse;
request.send(null);
}
function processResponse(){
if(request.readyState == 4){
if(request.status == 200){
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("可以注册!");
}
}else if(request.status == 404){
alert("url不存在!");
}else{
alert("请求出现异常!");
}
}
}
url不存在,我这样写url不可以吗?我加上<%=request.getContextPath()%>也不行!
#22
试试返回整数1,是否能判断成功!
#23
你 pw.print("success");
这句代码 返回到 请求页的时候并不是 success 这6个字母!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
所以你 那个判断永远都是 false!
to 18楼
那是我打错了
#24
察看Servlet路径的方式:
最保险的做法:web.xml中url-mapping
简便的做法:在Eclipse中Servlet类结点上右击鼠标运行之,浏览器URL栏能看到,为了能看到直接访问的效果,在doGet中调用doPost
最保险的做法:web.xml中url-mapping
简便的做法:在Eclipse中Servlet类结点上右击鼠标运行之,浏览器URL栏能看到,为了能看到直接访问的效果,在doGet中调用doPost
#25
不是这个原因,他都说了 System.out.println(request.getParameter("id"));
可以打印出来的 那就说明SERVLET肯定没问题了
PS:其实我已经说的很清楚了,还不明白我也没办法了。
#26
我不明白23楼的哥们zhuchao_ko:你为什么一直强调返回“success”这个问题,
现在request.status == 404你明白吗?根本都没有执行到if(res == "success")这个判断上,
也许你说的对,返回值确实不只success这7个字母,但是,但是现在还没有走到这一步呢啊!
你是不是没看清楚大括号的配对?再次帖代码:
目前执行后,弹出“url不存在”
现在request.status == 404你明白吗?根本都没有执行到if(res == "success")这个判断上,
也许你说的对,返回值确实不只success这7个字母,但是,但是现在还没有走到这一步呢啊!
你是不是没看清楚大括号的配对?再次帖代码:
function checkID(){
var id = $("#id").val();
var url = "/servlet/CheckID?id=" + id;
alert(url);
createRequest();
request.open("post", url, true);
request.onreadystatechange = processResponse;
request.send(null);
}
function processResponse(){
if(request.readyState == 4){
if(request.status == 200){
var res = request.responseText.replace(/(^\s*)|(\s*$)/g,"");
if(res == "success"){
alert("ID已经存在!");
}else{
alert("可以注册!");
}
}else if(request.status == 404){
alert("url不存在!");
}else{
alert("请求出现异常!");
}
}
}
目前执行后,弹出“url不存在”
#27
System.out.println(request.getParameter("id"));这句没有打印
#28
现在错误很明确,没有执行到servlet,但servlet路径的各种写法我都试过了!
#29
Servlet访问问题。
请如我24楼所说,先实现doGet,再找出该Servlet准确的URL,然后我们再一起看那JS中url应该怎么写。
#30
有可能根本没有进入servlet吧
#31
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<script type="text/javascript">
function createRequest()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();//mozilla浏览器
}
else if(window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
catch(e)
{}
try
{
return new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
}
catch(e)
{}
if(!xmlHttpRequest)
{
return false;
}
}
}
var xmlHttpRequest;
function checkID()
{
var id=document.getElementById("id").value;
var url = "/Test/servlet/TestServlet?id="+id;
xmlHttpRequest=createRequest();
xmlHttpRequest.onreadystatechange=processResponse;
xmlHttpRequest.open("POST",url,true);
xmlHttpRequest.send(url);
}
function processResponse()
{
if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200)
{
var res=xmlHttpRequest.responseText;
if(res=="success")
{
alert("ID已存在");
}
}
}
$("#regist").click(function(){
alert("注册");
});
$("#submits").click(function(){
$("#loginForm")[0].submit();
});
</script>
<form action="">
<input id="id" type="text" name="id">
<button onclick="javascript:checkID()">
测试
</button>
</form>
</body>
</html>
Servlet 里跟你的一样;名字叫TestServlet
Test是我的项目名字 可以运行成功,你看看吧。
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<script type="text/javascript">
function createRequest()
{
if(window.XMLHttpRequest)
{
return new XMLHttpRequest();//mozilla浏览器
}
else if(window.ActiveXObject)
{
try
{
return new ActiveXObject("Msxml2.XMLHTTP");//IE老版本
}
catch(e)
{}
try
{
return new ActiveXObject("Microsoft.XMLHTTP");//IE新版本
}
catch(e)
{}
if(!xmlHttpRequest)
{
return false;
}
}
}
var xmlHttpRequest;
function checkID()
{
var id=document.getElementById("id").value;
var url = "/Test/servlet/TestServlet?id="+id;
xmlHttpRequest=createRequest();
xmlHttpRequest.onreadystatechange=processResponse;
xmlHttpRequest.open("POST",url,true);
xmlHttpRequest.send(url);
}
function processResponse()
{
if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200)
{
var res=xmlHttpRequest.responseText;
if(res=="success")
{
alert("ID已存在");
}
}
}
$("#regist").click(function(){
alert("注册");
});
$("#submits").click(function(){
$("#loginForm")[0].submit();
});
</script>
<form action="">
<input id="id" type="text" name="id">
<button onclick="javascript:checkID()">
测试
</button>
</form>
</body>
</html>
Servlet 里跟你的一样;名字叫TestServlet
Test是我的项目名字 可以运行成功,你看看吧。
#32
问题找到了,原来是因为我在我配置struts2时
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.*</url-pattern>
</filter-mapping>
<url-pattern>写成了*.*,这样导致在进入servlet时,struts2过滤器将自动将自动拦截进入servlet的操作,所以无论我怎样访问servlet都是无法找到。
现在将原<url-pattern>*.*</url-pattern>改成<url-pattern>*.jsp</url-pattern>问题得以解决。
同时非常感谢大家的热心帮忙,结帖了!
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.*</url-pattern>
</filter-mapping>
<url-pattern>写成了*.*,这样导致在进入servlet时,struts2过滤器将自动将自动拦截进入servlet的操作,所以无论我怎样访问servlet都是无法找到。
现在将原<url-pattern>*.*</url-pattern>改成<url-pattern>*.jsp</url-pattern>问题得以解决。
同时非常感谢大家的热心帮忙,结帖了!