import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println(“进入HelloServlet…”);
//响应输出一个text字符串信息
PrintWriter out = response.getWriter();
out.print(“Hello Ajax”);
out.close();
}
}
demo1.html
<input type=“button” id=“btn1”
οnclick=“sendRequest1();” value=“发送Ajax请求1”>
启动Tomcat 运行 ajaxcase-day01工程, 录入请求http://localhost:8088/ajaxcase-day01/demo1.html
=======================
任务一:重新实现hello.do案例
发送Ajax请求后,将返回的信息,显示到一个span中
任务二:用户名是否可用检测
发送请求时机:用户焦点离开输入框触发Ajax请求发送
发送请求:open(“get”,“check.do?name=输入框值”,true)
send(null);
Servlet逻辑:获取请求参数name的值;
然后判断name是否等于scott;
如果等于scott返回"用户名被占用";
否则返回"用户名可用";
回调处理:将消息显示到span中提示
任务三:加载特定格式字符串的对应处理方式
上面案例演示的是 get方式请求,任务二 演示的是post请求方式
下面通过完成上面三个任务依次演示:
案例参考思路
##补充:如何发送post请求
xhr.open(“post”,“check.do”,true);
xhr.setRequestHeader(“content-type”,
“application/x-www-form-urlencoded”);
xhr.send(“name=”+name);
##补充:post请求提交的中文乱码
request.setCharacterEncoding(“utf-8”);
String name = request.getParameter(“name”);
##案例:动态生成元素的option列表
###发送Ajax请求
-页面一出来就自动发送Ajax请求(onload事件)
-请求地址:/loadcites.do
###服务器端处理
/loadcities.do–>LoadCityServlet–>返回一个字符串
“1:北京;2:上海;3:深圳”
ID NAME
1 北京
2 上海
3 深圳
###Ajax回调处理
-解析"1:北京;2:上海;3:深圳"消息
-将解析出的id和name构建一个
北京var opt = new Option(name,id);
-将option添加到元素里
web.xml
<?xml version="1.0" encoding="UTF-8"?>ajaxcase-day01
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
helloServlet
com.servlet.HelloServlet
helloServlet
/hello.do
checkservlet
com.servlet.CheckServlet
checkservlet
/check.do
loadcityservlet
com.servlet.LoadCityServlet
loadcityservlet
/loadcities.do
demo1.html
<input type=“button” id=“btn1”
οnclick=“sendRequest1();” value=“发送Ajax请求1”>
用户名:<input type=“text” id=“name”
οnblur=“sendRequest2()”>
package com.servlet;
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 CheckServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//获取请求参数name值
request.setCharacterEncoding(“utf-8”);
String name = request.getParameter(“name”);
System.out.println(“用户输入:”+name);
//模拟延迟
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//判断name值
response.setContentType(“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
if(“scott”.equals(name)){
out.print(“用户名被占用”);
}else{
out.print(“用户名可用”);
}
out.close();
}
}
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
外链图片转存中…(img-cEXRszyt-1713583666177)]
[外链图片转存中…(img-9Ii0LTJj-1713583666177)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
作为过来人,小编是整理了很多进阶架构视频资料、面试文档以及PDF的学习资料,针对上面一套系统大纲小编也有对应的相关进阶架构视频资料
[外链图片转存中…(img-GJO7wcy1-1713583666177)]
[外链图片转存中…(img-0Of0hgAf-1713583666177)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!