时间:2021-07-01 10:21:17 帮助过:42人阅读
本文实例讲述了jquery访问servlet并返回数据到页面的方法。分享给大家供大家参考。具体实现方法如下:
1. servlet:AjaxServlet.java如下:
代码如下:package com.panlong.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AjaxServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Integer total = (Integer) req.getSession().getAttribute("total");
int temp = 0;
if(total == null ){
temp = 1;
}else{
temp = total.intValue() + 1;
}
req.getSession().setAttribute("total",temp);
try {
//1.取参数
resp.setContentType("text/html;charset=GBK");
PrintWriter out = resp.getWriter();
String old = req.getParameter("name");
//2.检查参数是否有问题
//String name = new String(old.getBytes("iso8859-1"),"UTF-8");
String name = URLDecoder.decode(old,"UTF-8");
if("".equals(old) || old == null){
out.println("用户名必须输入");
}else{
if("liling".equals(name)){
out.println("恭喜登录成功");
return;
}else{
out.println("该用户名未注册,您可以注册["+name+"]这个用户名"+temp);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//3.检验操作
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
2. verify.js如下:
代码如下:function verify(){
//解决中文乱码问题的方法1,页面端发出的数据作一次encodeURI,服务端使用new String(old.getBytes("iso8859-1"),"UTF-8");
//解决中文乱码问题的方法2,页面端发出的数据作两次encodeURI,服务端使用String name = URLDecoder.decode(old,"UTF-8");
var url = "servlet/AjaxServlet?name="+encodeURI(encodeURI($("#userName").val()));
url = convertURL(url);
$.get(url,null,function(data){
$("#result").html(data);
});
}
//给url地址增加时间蒫,难过浏览器,不读取缓存
function convertURL(url){
//获取时间戳
var timstamp = (new Date()).valueOf();
//将时间戳信息拼接到url上
if(url.indexOf("?") >=0){
url = url + "&t=" + timstamp;
}else{
url = url + "?t=" + timstamp;
}
return url;
}
3. 前台页面如下:
代码如下:<!DOCTYPE html>
<html>
<head>
<title>AJAX实例</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=GBK">
<script type="text/javascript" src="js/verify.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<font color="blue" size="2">请输入用户名:</font>
<input type="text" id="userName" /><font color="red" size="2"><span id="result" >*</span></font><br/><br/>
<!-- <div id="result"></div> -->
<input type="submit" name="提交" value="提交" onclick="verify()"/>
</body>
</html>
希望本文所述对大家的Ajax程序设计有所帮助。