分享一下代码,顺便请教一下老师如何在不修改servlet的情况下简化script代码
来源:3-6 自由编程
leechee君
2019-02-27 15:57:04
//servlet 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 MusicListServlet */ @WebServlet("/music") public class MusicListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("跳转成功"); String type = request.getParameter("m"); List<MusicList> list = new ArrayList<MusicList>(); if(type != null && type.equals("lc")) { list.add(new MusicList("有点甜","光能使者","Flower Dance")); list.add(new MusicList("Lemon","打上花火","二泉映月")); list.add(new MusicList("修炼爱情","鸟之诗","水边的阿缇丽娜")); }else if(type == null || type.equals("leechee")){ list.add(new MusicList("","Letter song","")); list.add(new MusicList("","","")); list.add(new MusicList("","","")); } String json = JSON.toJSONString(list); System.out.println(json); response.setContentType("text/html;charset=UTF-8"); response.getWriter().println(json); } } //java public class MusicList { private String pop; private String anime; private String absolute; public MusicList() { super(); // TODO Auto-generated constructor stub } public MusicList(String pop, String anime, String absolute) { super(); this.pop = pop; this.anime = anime; this.absolute = absolute; } public String getPop() { return pop; } public void setPop(String pop) { this.pop = pop; } public String getAnime() { return anime; } public void setAnime(String anime) { this.anime = anime; } public String getAbsolute() { return absolute; } public void setAbsolute(String absolute) { this.absolute = absolute; } }
<-- jsp --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>播放列表查看</title> <style> #a, #b, #c { width: 33%; } #bg { text-align: center; width: 200px; margin: 0 auto; } </style> <script type="text/javascript" src="js/jquery-3.3.1.js"></script> <script type="text/javascript"> $(function(){ $("#a").click(function(){ $.ajax({ "url" : "/ajax/music", "type" : "get", "data" : {"m":"lc", "abc":"123"}, "dataType" : "json", "success" : function(json){ var text = ""; for(var i = 0 ; i < json.length ; i++){ console.log(json); text = text + json[i].pop + "\n"; } document.getElementById("bg").innerText = text; }, "error" : function(xmlhttp , errorText){ console.log(xmlhttp); console.log(errorText); if(xmlhttp.status == "405"){ alert("无效的请求方式"); }else if (xmlhttp.status == "404"){ alert("未找到URL资源"); }else if (xmlhttp.status == "500"){ alert("请联系管理员"); }else{ alert("产生异常请联系管理员"); } } }) }); $("#b").click(function(){ $.ajax({ "url" : "/ajax/music", "type" : "get", "data" : {"m":"lc", "abc":"123"}, "dataType" : "json", "success" : function(json){ var text = ""; for(var i = 0 ; i < json.length ; i++){ console.log(json); text = text + json[i].anime + "\n"; } document.getElementById("bg").innerText = text; }, "error" : function(xmlhttp , errorText){ console.log(xmlhttp); console.log(errorText); if(xmlhttp.status == "405"){ alert("无效的请求方式"); }else if (xmlhttp.status == "404"){ alert("未找到URL资源"); }else if (xmlhttp.status == "500"){ alert("请联系管理员"); }else{ alert("产生异常请联系管理员"); } } }) }); $("#c").click(function(){ $.ajax({ "url" : "/ajax/music", "type" : "get", "data" : {"m":"lc", "abc":"123"}, "dataType" : "json", "success" : function(json){ var text = ""; for(var i = 0 ; i < json.length ; i++){ console.log(json); text = text + json[i].absolute + "\n"; } document.getElementById("bg").innerText = text; }, "error" : function(xmlhttp , errorText){ console.log(xmlhttp); console.log(errorText); if(xmlhttp.status == "405"){ alert("无效的请求方式"); }else if (xmlhttp.status == "404"){ alert("未找到URL资源"); }else if (xmlhttp.status == "500"){ alert("请联系管理员"); }else{ alert("产生异常请联系管理员"); } } }) }); }) </script> </head> <body> <input id="a" type="button" value="流行歌曲"> <input id="b" type="button" value="动漫歌曲"> <input id="c" type="button" value="纯音乐"> <div id="bg"></div> </body> </html>
1回答
同学的代码完成的不错,不过是建议修改一下Servlet代码,不需要将所有的歌曲信息都返回。而是返回查询类型的歌曲。修改意见:不需要定义MusicList类,在ajax提交时data只提交歌曲类型,如 "data": {"m": "pop"},在servlet中,接收m后,使用equals比较,list集合中添加String类型值,即歌曲即可。然后只返回查询的歌曲类型信息即可,如流行歌曲只返回有点甜,光能使者,Flower Dance等。其他的两个类型歌曲不返回。
祝:学习愉快~
相似问题