Ajax请求Servlet无效

派僧_hellowoah 2015-04-06 09:55:04
项目建立的是动态的网页项目
Servle是在src中,ajax创建在WebContent中的

这是xml配置:
  
<servlet>
<servlet-name>javascript</servlet-name>
<servlet-class>Ctrl.JavaScript</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>javascript</servlet-name>
<url-pattern>/js</url-pattern>
</servlet-mapping>


这个是ajax的js文件代码

var req;
var url = "/js?aid=" + aid;
alert(url);
//创建一个XMLHttpRequest对象req
if(window.XMLHttpRequest) {
//IE7, Firefox, Opera支持
req = new XMLHttpRequest();
alert("支持");
}else if(window.ActiveXObject) {
//IE5,IE6支持
req = new ActiveXObject("Microsoft.XMLHTTP");
alert("不支持");
}
//var url = "<%=request.getContextPath()%>/js?aid=" + aid;
//req.open("get", "<%=request.getContextPath()%>/src/Ctrl/JavaScript.java", true); //发送请求
//req.open("get","JavaScript.java", true); //发送请求
alert(url);
//onreadystatechange属性存有处理服务器响应的函数,有5个取值分别代表不同状态
req.onreadystatechange = callback;
//send函数发送请求
req.send(null);
}
function callback() {
alert("成功进入callback,状态为" + req.readyState );
if(req.readyState == 4 && req.status == 200) {
alert("status为" + req.status );

var check = req.responseText;//得到js处理过后的值
alert(" req.responseText="+check);//验证是否是成功调用了servlet
show (check);
} alert("status为" + req.status );
}

function show(str) {
if(str == "OK") {
var show = "<font color='green'>恭喜!!用户名可用!</font>";
System.out.println("***********当前show的值是:" + show + "**********");
alert("用户名可用");
}
else if( str == "NO") {
var show = "<font color='red'>对不起,用户名不可用!!请重新输入!</font>";
System.out.println("***********当前show的值是:" + show + "**********");
alert("用户名已存在");
}
}



下面是servlet中的代码:(printf在控制台根本没有显示)

package Ctrl;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import DB.DBBean;
import Entities.Applicant;

/**
* Servlet implementation class JavaScript
*/
@WebServlet("/JavaScript")
public class JavaScript extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public JavaScript() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("*********protected void doGet************");
checkAid(request, response);
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//doGet(request, response);
checkAid(request, response);
System.out.println("*********protected void doPost************");
}

private void checkAid(HttpServletRequest request,
HttpServletResponse response) throws IOException {
// TODO Auto-generated method stub
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
DBBean db = new DBBean();
String aid = request.getParameter("aid");
System.out.println("***********当前aid的值是:" + aid + "**********");
String count = null;
try {
response.setContentType("text/html");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0); //通过以下几行代码设置浏览器不进行Ajax处理页面的缓存
db.init();
String sql = "SELECT count(aid) FROM applicant where aid=?";
System.out.println(sql);
System.out.println("**********调用javascript的方法checkAid*********");

ResultSet rs = db.executeQuery(sql, aid);//执行sql语句,where子句中aid=ap.getAid()
while (rs.next()) {
count = rs.getString(1);
}
if(count.equals("0")) {
out.write("OK");
}
else {
out.write("NO");
}
} catch (Exception e) {
e.printStackTrace();// 提示出错信息
} finally {

db.close();
}
}
}




url也是改了很多遍,除了打印出alert,servlet里面是都没有任何反应,还劳驾各位大神帮忙看看了!!
...全文
219 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
派僧_hellowoah 2015-06-13
  • 打赏
  • 举报
回复
引用 1 楼 u010005508 的回复:
一个是你url的问题,一个是生成JavaScript.class这个字节码文件存放路径问题! 我根据你贴的代码,修改了下,搞了个示例是可以访问的 下面这个字节码文件存放的路径,你看看你原来的是不是这样搞的 示例源码 http://pan.baidu.com/s/1bnaZZP1http://
谢谢您详细的回答,对我帮助很大,辛苦了,谢谢!
派僧_hellowoah 2015-06-13
  • 打赏
  • 举报
回复
引用 2 楼 magi1201 的回复:
你的web.xml中的url 为 <url-pattern>/js</url-pattern> 但是 你的servlet注解中拦截的url地址为 @WebServlet("/JavaScript") 这样,你的前台请求和后台的处理对应不起来,所以请求到不了后台,servlet就没有反应了 将这两个URL统一一下就好了,或者都改为URL,或者都改为JavaScript
十分感谢您的回答
姜小白- 2015-04-06
  • 打赏
  • 举报
回复
你的web.xml中的url 为 <url-pattern>/js</url-pattern> 但是 你的servlet注解中拦截的url地址为 @WebServlet("/JavaScript") 这样,你的前台请求和后台的处理对应不起来,所以请求到不了后台,servlet就没有反应了 将这两个URL统一一下就好了,或者都改为URL,或者都改为JavaScript
highnewrain 2015-04-06
  • 打赏
  • 举报
回复
一个是你url的问题,一个是生成JavaScript.class这个字节码文件存放路径问题!
我根据你贴的代码,修改了下,搞了个示例是可以访问的

下面这个字节码文件存放的路径,你看看你原来的是不是这样搞的

示例源码
http://pan.baidu.com/s/1bnaZZP1http://

81,092

社区成员

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

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