请老师看一下代码并回答几个问题
来源:2-8 自由编程
96年的nash
2019-04-16 15:47:48
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
padding:0px;
margin:0px;
}
#buttonText{
width:100%;
text-align: center;
margin: 30px;
margin-bottom: 0px;
}
input{
padding-left: 20px;
padding-right: 20px;
width: 25%;
margin-left: 10px;
margin-right:10px;
}
#content{
height: 100px;
text-align: center;
}
</style>
</head>
<body>
<div id="buttonText">
<input type="button" value="员工列表" id="emplyeeList">
<input type="button" value="职位列表" id="workList">
<input type="button" value="部门列表" id="departmentList">
</div>
<div id="content">
</div>
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script type="text/javascript">
var xmlhttp, id;
if( window.XMLHttpRequest ){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject("Microsoft XMLHTTP");
}
$("#emplyeeList,#workList,#departmentList").click(function(){
var url = "/ajax/practice?id=" + this.id;
xmlhttp.open("GET", url, true);
xmlhttp.send();
xmlhttp.onreadystatechange = function(){
if( xmlhttp.readyState==4 && xmlhttp.status==200 ){
var text = xmlhttp.responseText;
console.log(text);
var json = JSON.parse(text);
console.log(json);
var html = "";
for( var i=0; i<json.length; i++ ){
html = html + "<div>" + json[i] + "</div>";
}
document.getElementById("content").innerHTML = html;
}
}
});
</script>
</body>
</html>package com.hxh.ajax;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
/**
* Servlet implementation class Practice
*/
@WebServlet("/practice")
public class Practise extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Practise() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List list1 = new ArrayList<>();
list1.add("小红");
list1.add("小明");
list1.add("小白");
List list2 = new ArrayList<>();
list2.add("职员");
list2.add("经理");
List list3 = new ArrayList<>();
list3.add("人事部");
list3.add("技术部");
list3.add("无线事业部");
String json1 = JSON.toJSONString(list1);
String json2 = JSON.toJSONString(list2);
String json3 = JSON.toJSONString(list3);
response.setContentType("text/html;charset=UTF-8");
if(request.getParameter("id").equals("emplyeeList") ) {
System.out.println(json1);
response.getWriter().println(json1);
}else if(request.getParameter("id").equals("workList") ) {
System.out.println(json2);
response.getWriter().println(json2);
}else if(request.getParameter("id").equals("departmentList")) {
System.out.println(json3);
response.getWriter().println(json3);
}
}
}1、JSP和Servlet的执行顺序怎么理解?
2、是不是可以这么理解
var xmlhttp, id;
if( window.XMLHttpRequest ){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject("Microsoft XMLHTTP");
}
$("#emplyeeList,#workList,#departmentList").click(function(){
var url = "/ajax/practice?id=" + this.id;
xmlhttp.open("GET", url, true);
xmlhttp.send();这里浏览器发送了 Ajax请求,请求创建一个HttpRequest对象,然后在open方法中,首先指明了Get方式,其次指定了服务器中的URL地址,最后指定异步。这样服务器中那个选中的URL地址,也就是Servlet就会响应,且将需要返回的数据,返回给浏览器(就是response.getWriter().println())
3、为什么JSP中要用两个script标签?
1回答
同学你好。下面来一条条回答你的疑惑:
1、我们应该是先访问的JSP页面,然后在触发单击事件后,执行到xmlhttp.send()方法时,发送了HTTP请求,转移到Servlet的对应方法,这里设置了GET,就是doGet方法中执行。当执行完代码逻辑的最后一句的时候,也就是response.getWriter().println();后response返回,这时触发xmlhttp.onreadystatechange = function(),执行其中的代码。
2、就像前面说的,同学的理解是对的。
3、第一个script标签的作用是引入jQuery库,作用相当于将jquery-3.3.1.js的js语句填入<script>标签中。
如果解答了同学的疑问,望采纳~
祝学习愉快~
相似问题