JQuery异步请求(ajax)

$.ajax({
// 请求方式为get或者post等
type: "GET",
// 服务器响应的数据类型
dataType: "json",
// 请求的url(一般为后台接口)
url: "test.json",
// 发送到服务器的参数,
data: {user:"xiao"},
// 请求成功后返回的数据,赋值给变量'data'
success: function(data){
// 对data进行操作
},
// 请求失败异常后,返回的错误信息
error: function(err){ }
});

1. get( url, [data], [callback] ) :

$.get("route/findAllRoute",{"cid":cid,"curentPage":curentPage,"pageCount":pageCount},function (data) {
writepage(data);
})

2. post( url, [data], [callback] ) :

$.post("route/findTheRoute",{"rid":rid},function (data) {
if(data.flag){
$(".titleCategory:eq(0)").html(data.data.category.cname);
$(".titleRoute:eq(0)").html(data.data.routeIntroduce);
$("#bigPic").attr("src",data.data.routeImgList[0].bigPic);
var littleImg='<a class="up_img up_img_disable"></a>';
for(var i=0;i<data.data.routeImgList.length;i++){
if(i>3){
littleImg+='<a title="" class="little_img" data-bigpic="'+data.data.routeImgList[i].bigPic+'" style="display:none;">\n' +
'<img src="'+data.data.routeImgList[i].smallPic+'">\n' +
'</a>';
}else {
littleImg+='<a title="" class="little_img" data-bigpic="'+data.data.routeImgList[i].bigPic+'">\n' +
'<img src="'+data.data.routeImgList[i].smallPic+'">\n' +
'</a>';
}
}
littleImg+='<a class="down_img down_img_disable" style="margin-bottom: 0;"></a>';
$("#littlePics").html(littleImg);
$(".titleCategory:eq(1)").html(data.data.rname);
$(".titleRoute:eq(1)").html(data.data.routeIntroduce);
/*<p id="sname">经营商家 :中国国旅</p>
<p id="sphone">咨询电话 : 400-000-1111</p>
<p id="address"> 地址 : xxxxxxxx</p>*/
$("#sname").html("经营商家 : "+data.data.seller.sname);
$("#sphone").html("咨询电话 : "+data.data.seller.consphone);
$("#address").html("地址 : "+data.data.seller.address);
$("#price").html(data.data.price);
$("#count").html("已收藏"+data.data.count+"次");
loadImgs();
var timer=setInterval(auto_play,2000);
}
});

3. load( url, [data], [callback] ) :

载入远程 HTML 文件代码并插入至 DOM 中。

url (String) : 请求的HTML页的URL地址。

data (Map) : (可选参数) 发送至服务器的 key/value 数据。

callback (Callback) : (可选参数) 请求完成时(不需要是success的)的回调函数。

这个方法默认使用 GET 方式来传递的,如果[data]参数有传递数据进去,就会自动转换为POST方式的。jQuery 1.2 中,可以指定选择符,来筛选载入的 HTML 文档,DOM 中将仅插入筛选出的 HTML 代码。语法形如 “url #some > selector”。

这个方法可以很方便的动态加载一些HTML文件,例如表单。

$(".ajax.load").load("http://www.cnblogs.com/yeer/archive/2009/06/10/1500682.html .post",

function (responseText, textStatus, XMLHttpRequest){

this;//在这里this指向的是当前的DOM对象,即$(".ajax.load")[0] 

//alert(responseText);//请求返回的内容
//alert(textStatus);//请求状态:success,error
//alert(XMLHttpRequest);//XMLHttpRequest对象
});

表单序列化

1.serialize()方法

格式:var data = $(“form”).serialize();

功能:将表单内容序列化成一个字符串。

这样在ajax提交表单数据时,就不用一一列举出每一个参数。只需将data参数设置为 $(“form”).serialize() 即可

  

$("#btLogin").click(function () {
$.post("user/login",$("#loginForm").serialize(),function (data) {
console.log($("#loginForm").serialize());
if (data.flag) {
//跳转到首页
location.href = "index.html";
}else{
$("#errorMsg").text(data.errorMsg);
}
});
});
console.log($("#loginForm").serialize());
结果:
action=login&username=aaaaaaa&password=hhhhhhhhh&check=a2d4

2.serializeArray()方法

格式:var jsonData = $(“form”).serializeArray();

功能:将页面表单序列化成一个JSON结构的对象。注意不是JSON字符串。

比如,[{“name”:“lihui”, “age”:“20”},{…}] .

Servlet简化,方法分发,模仿HttpServlet的service方法

1.写一个BaseServlet extends HttpServlet

public class BaseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
//获取URI---> user/login
String reqURI = req.getRequestURI();
//获取请求的方法名--->将URI从最后一次'/'出现的位置切割,提取方法名login
String method = reqURI.substring(reqURI.lastIndexOf('/')+1);
// System.out.println(method);
try {
Class<? extends BaseServlet> aClass = this.getClass();
//得到子类Sevlet字节码文件,用字节码文件提取子类servlet的所有方法数组
Method[] methods = aClass.getMethods();
//遍历数组
for (Method m:methods) {
// System.out.println(m.getName());
//找到请求的方法名为method的方法
if(m.getName().equals(method)){
//调用方法,this就是子类Servlet对象
// m.invoke(servlet,req,resp);
m.invoke(this,req,resp);
}
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}

2.写子类Servlet继承BaseSevlet

package com.dbxy.travel.web.servlet;

import com.bdqn.travel.pojo.Category;
import com.bdqn.travel.pojo.PageRoute;
import com.bdqn.travel.pojo.ResultInfo;
import com.bdqn.travel.pojo.Route;
import com.dbxy.travel.service.CategoryService;
import com.dbxy.travel.service.CategoryServiceImpl;
import com.dbxy.travel.service.RouteService;
import com.dbxy.travel.service.RouteServiceImpl; import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List; @WebServlet("/route/*")
public class RouteServlet extends BaseServlet{
private RouteService service=new RouteServiceImpl();
public void findAllRoute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nowpage = request.getParameter("curentPage");
String cid=request.getParameter("cid");
PageRoute<Route> allRoute = service.findAllRoute(Integer.parseInt(nowpage), Integer.parseInt(cid));
returnResult(allRoute,response);
}
public void findTheRoute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rid=request.getParameter("rid");
ResultInfo info = service.findRouteByRid(Integer.parseInt(rid));
returnResult(info,response);
}
public void findRouteBySearchName(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nowpage = request.getParameter("curentPage");
String search= request.getParameter("search");
String decodeSearch = null;
try {
System.out.println(nowpage);
decodeSearch = URLDecoder.decode(search, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// System.out.println("now"+nowpage);
PageRoute<Route> pageRoute=service.findRouteBySearchName(decodeSearch,Integer.parseInt(nowpage));
returnResult(pageRoute,response);
}
public void findRouteBySearchNameAndCid(HttpServletRequest request, HttpServletResponse response){
String nowpage = request.getParameter("curentPage");
String search= request.getParameter("search");
String cid = request.getParameter("cid");
String decodeSearch = null;
try {
System.out.println(nowpage);
decodeSearch = URLDecoder.decode(search, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
PageRoute<Route> pr=service.findRouteBySearchNameAndCid(Integer.parseInt(nowpage),decodeSearch,Integer.parseInt(cid));
returnResult(pr,response);
}
public void findFavoriteRoutes(HttpServletRequest request, HttpServletResponse response){
String nowpage = request.getParameter("curentPage");
PageRoute<Route> favoriteRoutes = service.findFavoriteRoutes(Integer.parseInt(nowpage));
returnResult(favoriteRoutes,response);
// System.out.println(favoriteRoutes);
}
public void favoriteSearch(HttpServletRequest request, HttpServletResponse response){
String search= request.getParameter("searchName");
String nowpage= request.getParameter("curentPage");
String decodeSearch = "";
try {
decodeSearch = URLDecoder.decode(search, "utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
String minPrice= request.getParameter("minPrice");
String maxPrice= request.getParameter("maxPrice");
PageRoute<Route> pr =service.favoriteSearch(Integer.parseInt(nowpage),decodeSearch,minPrice,maxPrice);
returnResult(pr,response);
}
}

JavaWeb项目:旅游网站【涉及各种知识】的更多相关文章

  1. 使用极路由进行外网映射,本地电脑做服务器,运行javaWeb项目

    最近在学习javaWeb,一个项目需要android访问服务器,于是使用自己的笔记本电脑作为服务器,需要进行端口映射.使得外网可以访问自己的javaWeb项目或者网站之类的.普通路由请看:http:/ ...

  2. 关于服务器响应,浏览器请求的理解以及javaWeb项目的编码问题

    1.服务器(Server)响应,浏览器(Brower)请求: 对于B/S的软件,数据的传递体现在,用户利用浏览器请求,以获得服务器响应.在JavaWeb项目中,大致包含.java文件的数据处理模块,和 ...

  3. TravelCMS旅游网站系统诞生记

    本人就是一纯粹码农,没什么学历,更没什么技术,但是自认为学习能力还不错,近期有一个旅游网站系统项目正在进行中,在此以贴图记录这个项目的诞生过程,本是一个定制系统,但是不想把系统做死,以通用产品的标准来 ...

  4. JavaWeb 项目中的绝对路径和相对路径以及问题的解决方式

    近期在做JavaWeb项目,总是出现各种的路径错误,并且发现不同情况下 /  所代表的含义不同,导致在调试路径上浪费了大量时间. 在JavaWeb项目中尽量使用绝对路径  由于使用绝对路径是绝对不会出 ...

  5. JavaEE——Intellij Idea 创建JavaWeb项目

    原文:JavaEE--Intellij Idea 创建JavaWeb项目 折腾Tomcat折腾了两个晚上,第一个晚上怎么都进不了Tomcat的首页,第二个晚上进去了,但是新建的Web项目,在浏览器中运 ...

  6. 《从零玩转JavaWeb+项目实战》-系列课堂录制计划

    点击试听课程 前言 很多自学编程的同学经常和我说想学一门语言自己到网上找一些教程看到一半就像背单词背到ambulance一样坚持不下去了....究其原因基本上都是:内容太多,太枯燥,专业术语听不懂,学 ...

  7. Javaweb项目开发的前后端解耦的必要性

    JavaWeb项目为何我们要放弃jsp?为何要前后端解耦?为何要动静分离? 使用jsp的痛点: 1.jsp上动态资源和静态资源全部耦合在一起,服务器压力大,因为服务器会收到各种静态资源的http请求, ...

  8. JavaWeb项目架构之Kafka分布式日志队列

    架构.分布式.日志队列,标题自己都看着唬人,其实就是一个日志收集的功能,只不过中间加了一个Kafka做消息队列罢了. kafka介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台,由S ...

  9. 利用Jenkins实现JavaWeb项目的自动化部署

    修改代码,打包,上传,重启... 大把的时间花费在这些重复无味的工作上.笔者与当前主流的价值观保持一致:我们应该把时间花费在更有意义的事情上.我们可以尝试借助一些工具,让这些重复机械的工作交给计算机去 ...

  10. redhat7学习笔记之从零到部署javaweb项目

    REDHAT7学习笔记 1. 安装vmware10 安装过程略,下载地址:链接: https://pan.baidu.com/s/16odKKkRYBxGWDVo1cz_wxA 注意,10以上版本不在 ...

随机推荐

  1. mybatis添加信息自动生成主键

    一.使用Oracle数据库 举例:添加员工的时候自动生成主键 1.在dao接口中声明方法 2.在mapper中实现该方法 需要先在数据表中创建序列 3.测试 注意:在调用过save方法之后,emp对象 ...

  2. 【Hadoop离线基础总结】通过Java代码执行Shell命令

    通过Java代码执行Shell命令 需求 在实际工作中,总会有些时候需要我们通过java代码通过远程连接去linux服务器上面执行一些shell命令,包括一些集群的状态管理,执行任务,集群的可视化界面 ...

  3. 阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南

    我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者. Spring Cloud 系列文章已经完 ...

  4. spring-boot如何去获取前端传递的参数

    本文主要讨论spring-boot如何获取前端传过来的参数,这些参数主要有两大类,一类是URL里的参数,一个是请求body里的参数 url里的参数 通过url里传过来的参数一般有三种方式,下面我们来看 ...

  5. 单线程和多线程执行对比—Python多线程编程

    单线程和多线程执行对比 本章使用递归求斐波那契.阶乘与累加函数的执行来对比单线程与多线程: 斐波那契.阶乘与累加(mtfacfib.py): ​ import threading from time ...

  6. Mysql 常用函数(19)- mod 函数

    Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html mod 的作用 求余数,和%一样 mod的语法格式 ...

  7. jquery-----ajax的几种方法

    $.get(url,function(data,status){ if(status == 'success'){ layer.msg(data,{shift:1,time:2000},functio ...

  8. javaScript ES7 ES8 ES9 ES10新特性

    参考文献: https://tuobaye.com/2018/11/27/%E7%BB%86%E8%A7%A3JavaScript-ES7-ES8-ES9-%E6%96%B0%E7%89%B9%E6% ...

  9. router-link传参

    果然还好是一小部分一小部分记录的好. <router-link :to="info">中:to特性可以是路径str,也可以是一个对象形式str. 当info是对象时可以 ...

  10. xampp-apache配置

    我安装的软件是xampp-win32-1.8.2-0-VC9-installer 需要配置的文件有 httpd.conf httpd-default.conf httpd-info.conf http ...