【Ajax技术】准备AJAX服务器端和客户端环境

简介:

1.准备Ajax服务器端环境

我们将使用jQuery来实现Ajax的效果。
jQuery,顾名思议,也就是JavaScript和查询(Query),即是辅助JavaScript开发的库。jQuery使用户能更方便地处理HTML(标准通用标记语言下的一个应用)、events、实现动画效果,并且方便地为网站提供AJAX交互。

使用Ajax技术服务器端要做的四步
1.取参数
2.检查参数是否有问题
3.校验操作
4.和传统应用不同之处,这一步需要将用户感兴趣的数据(data)返回给页面端,而不是将新的页面(view)返回给用户。(MDC_vs_MVC)

I.
首先建立工程AjaxTrain。
在src里创建一个Servlet,作为Ajax的服务端(目前是用传统的方式去传输数据,我们将逐步改写,直至完全实现Ajax的异步刷新):

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 AjaxServer extends HttpServlet {


	 protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
	        doGet(httpServletRequest, httpServletResponse);
	 }


	 protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
	        try{


	            httpServletResponse.setContentType("text/html;charset=utf-8");
	            PrintWriter out = httpServletResponse.getWriter();


	            //inte用来记录验证次数
	            Integer inte = (Integer) httpServletRequest.getSession().getAttribute("total");
	            int temp = 0;
	            if (inte == null) {
	                temp = 1;
	            } else {
	                temp = inte.intValue() + 1;
	            }
	            httpServletRequest.getSession().setAttribute("total",temp);


	            //1.取参数
	            String old = httpServletRequest.getParameter("name");
	     
	            String name = URLDecoder.decode(old,"UTF-8");


	            //2.检查参数是否有问题
	            if(old == null || old.length() == 0){
	                out.println("用户名不能为空");
	            } else{
			//3.数据校验
	                if(name.equals("hpu")){
	                    //4。和传统应用不同之处。这一步需要将用户感兴趣的数据返回给页面段,而不是将一个新的页面发送给用户
	                    //写法没有变化,本质发生了改变
	                    out.println("用户名[" + name + "]已经存在,请使用其他用户名, " + temp);
	                } else{
	                    out.println("用户名[" + name + "]尚未存在,可以使用该用户名注册, " + temp);
	                }
	            }
	        } catch(Exception e){
	            e.printStackTrace();
	       } 
	 }


}

web.xml的配置:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <servlet-name>AjaxServer</servlet-name>
    <servlet-class>AjaxServer</servlet-class>
  </servlet>


  <servlet-mapping>
    <servlet-name>AjaxServer</servlet-name>
    <url-pattern>/AjaxServer</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

与服务对应的静态页面:index.html
<html>
<head>
  <title></title>
</head>
<body>
    校验用户名是否存在的例子<br/>
    <form action="AjaxServer" method="GET">
        用户名:<input type="text" name="name"/>
        <input type="submit" value="检验"/>
    </form>
</body>
</html>

实现了一个传统的校验模式,经测试成功。

下面写Ajax的客户端的代码(html+javascript)

2.准备Ajax客户端环境

此篇总结Ajax的客户端环境搭建:

首先在上一篇创建的java web工程的webRoot下创建静态页面ajax.html:
(首先别忘记下载Javascript的jquery类库:jquery.js。我下载的是jquery-1.8.0.js)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>用户校验ajax实例</title>
    <script type="text/javascript" src="js/verify.js"></script>
    <script type="text/javascript" src="js/jquery-1.8.0.js"></script>
  </head>
  
  <body>
    <h1> 用户校验ajax实例</h1><br>
    请输入用户名:<br/>
    <!-- ajax不需要使用表单进行数据提交,因此不用写表单标签 -->
    
    <!-- ajax不需要name属性,只需要一个id的属性 -->
    <input type="text" id="username"/>
    <input type="button" value="校验" onclick="verify()"/>
    <!-- 这个div用于存放服务器返回的信息,开始为空 -->
    <!-- id属性定义是为了利用dom的方式找到某一个节点,进行操作 -->
    <div id="result">
    
    </div>
    <!-- div和span的值的差异,div的内容独占行,span的内容和其他内容相处良好 -->
    
  </body>
</html>

verify.js:
//定义用户名校验的方法
function verify(){
	alert("哎呦!别点人家~");
}

测试:点击ajax.html页面的校验按钮之后,弹出对话框,测试成功。

接下来就要开始实现真正的Ajax了。

详情关注下一篇总结

转载请注明出处:http://blog.csdn.net/acmman/article/details/47168025

相关文章
|
5天前
|
弹性计算 JavaScript 应用服务中间件
在一台ECS服务器上优雅部署多环境:实践攻略
在ECS上部署多环境应用,通过Nginx反向代理实现。规划端口或子域名区分开发、测试和生产环境。配置应用监听不同端口,如Node.js应用修改启动脚本。【6月更文挑战第21天】
125 3
|
1月前
|
网络协议 JavaScript 前端开发
WebSocket:实现客户端与服务器实时通信的技术
WebSocket:实现客户端与服务器实时通信的技术
|
5天前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
|
5天前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
【6月更文挑战第23天】Java Web开发中,Servlet和JSP是构建动态Web应用的基础。Servlet处理逻辑,JSP专注展示。示例展示了Servlet如何通过`request.setAttribute`传递数据给JSP渲染。JSP自定义标签提升页面功能,如创建`WelcomeTag`显示欢迎消息。Servlet过滤器,如`CacheControlFilter`,用于预处理数据或调整响应头。这些集成和扩展技术增强了应用效率、安全性和可维护性,是Java服务器端开发的关键。
|
1天前
|
负载均衡 监控 网络协议
高防服务器如何处理DDoS攻击?关于高防服务器的一些技术细节
DDoS攻击是网络威胁,通过大量请求淹没服务器。防御措施包括:备份网站以备切换,拦截异常HTTP请求,增加带宽抵御流量攻击,使用CDN分发内容并隐藏源IP。防御策略涉及流量清洗、黑洞路由、负载均衡等。硬件如防火墙、IDS/IPS也重要,云服务提供自动防护和弹性扩容。
|
5天前
|
运维 Cloud Native 开发者
云原生技术演进:从微服务到无服务器计算
【6月更文挑战第22天】 云原生技术如同一场持续的演化之旅,它不断重塑着应用的开发与部署方式。本文将探讨云原生技术如何从微服务架构演变至无服务器计算,以及这一转变对开发者和运维人员带来的深远影响。通过分析容器化、持续集成/持续部署(CI/CD)、微服务治理等关键概念,我们将揭示云原生技术如何在提高应用的可伸缩性、灵活性和可靠性的同时,也提出了新的挑战和机遇。
|
24天前
|
负载均衡 Linux 应用服务中间件
Linux环境下快速实现两台服务器上的文件夹共享
Linux环境下快速实现两台服务器上的文件夹共享
47 2
Linux环境下快速实现两台服务器上的文件夹共享
|
9天前
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
|
1天前
|
Linux Shell Python
linux服务器python2升级安装python3.7环境
linux服务器python2升级安装python3.7环境
8 0
|
1天前
|
数据采集 Web App开发 前端开发
技术心得记录:如何用JAVA爬取AJAX加载后的页面(转载)
技术心得记录:如何用JAVA爬取AJAX加载后的页面(转载)