jquery请求servlet

都是一家人 2014-09-08 09:55:29
问题是这样的,我用juery请求servlet来进行验证,可是servlet根本没有执行!
我的开发环境: ubuntu+netbeans(glassfish+jsp+postgresql)
login.jsp代码如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<title>图书馆学习间后台登录</title>
<link rel="stylesheet" type="text/css" href="../style.css" > </link>
<link rel="stylesheet" href="http://dreamsky.github.io/main/blog/common/init.css"> </link>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>
<!-- <script type="text/javascript" src="../js/login_1.js"></script>
验证用户名和密码-->
<script>
function verify(){
//首先测试一下页面的按钮按下,可以调用这个方法
//使用js的alert方法,显示一个弹出提示
//alert("按钮被点击了!!!");

//1.获取文本框中的内容
//document.getElementByIdx_x("userName"); dom的方式获得id
//jquery的方式获得页面节点,参数中#加上id属性值可以找到一个节点
//jquery的方法返回的都是jquery的对象,可以继续在上面只写其他的jquery对象
var jqueryObj = $("#username") ;
var jqueryobj1=$("#password");
//获得节点的值
var username = jqueryObj.val();
var password = jqueryobj1.val();
//验证userName是否取到了
// alert(username+"\n"+password);
//2.将文本框中的数据发送给服务器端的servlet
//使用jquery的XMLHTTPrequest对象请求的封装
var params="name="+username+"&passw="+password;
// alert(params);
$.get("/login",params,callback);
}

//回调函数
function callback(data){
alert("服务器端的数据回来了!");
//3.接收服务器端返回的数据
alert(data);
// window.parent.login.alert(data);
//4.将服务器返回的数据动态显示到页面上
//找到保存结果信息的节点
var resultObj = $("#result");
//动态改变页面中div节点中的内容
resultObj.html(data);
}
</script>
</head>
<body>
<div id="loginpanelwrap">
<div class="loginheader">
<div class="logintitle">图书馆学习间管理员登录</div>
</div>
<form id="name1" action="">
<div class="loginform">
<div class="loginform_row">
<label>用户名:</label>
<input type="text" class="loginform_input" id="username"/>
</div>
<div class="loginform_row">
<label>密码:</label>
<input type="text" class="loginform_input" id="password"/>
<div id="result"></div>
</div>
<div class="loginform_row">
<input type="submit" class="loginform_submit" value="登录" onclick="verify()" />
</div>
<div class="clear"></div>
</div>
</form>
</div>
</body>

servlet的代码如下:

package newpackage;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class login extends HttpServlet {

/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");

try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("用户名");
String username=request.getParameter("name");
String password=request.getParameter("passw");
if (username == null || username.length() == 0) {
out.println("用户名不能为空");

}

if (password == null || password.length() == 0) {
out.println("密码不能为空");
}

}catch (Exception e) {
e.printStackTrace();
}
}


// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.print("mlgb123143543152461644432143");

processRequest(request, response);
}

/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}

web.xml相应的配置目录如下:
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>newpackage.login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>

工程目录的结构如下:



js调试没有出错,servlet直接打印没有输出,配置目录是向导生成的,试了好多方法都不行!真的不知道怎么办好了?请求帮助,感激不尽!
...全文
171 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
万玩完顽完 2014-09-08
  • 打赏
  • 举报
回复
都是一家人 2014-09-08
  • 打赏
  • 举报
回复
嘿嘿!已经解决了!第一,不能在submit按钮上添加事件响应函数,第二jquery异步请求servlet的路径问题,/工程名/路径

87,904

社区成员

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

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