最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)戰(zhàn)之制作在線音樂網(wǎng)站

 更新時(shí)間:2022年02月15日 13:43:13   作者:qq_1334611189  
這篇文章主要介紹了如何通過Java實(shí)現(xiàn)一個精美風(fēng)的在線音樂網(wǎng)站,文章采用到了JSP、JQuery、Ajax等技術(shù),感興趣的小伙伴可以了解一下

介紹

環(huán)境配置

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

項(xiàng)目技術(shù)

JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等

效果圖

核心代碼

用戶管理控制層

@Controller
@RequestMapping("/user")
public class UserController {
 
	@Autowired
	protected WebResponse webResponse;
 
	@Resource
	protected IUserService userService;
 
	@Resource
	protected IMyMusicService MyMusicService;
 
	@Autowired
	UserService userService2;
 
	String newName = null;
 
	// 登錄功能
	@RequestMapping(value = "/loginPage", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse loginCon(HttpServletRequest request, HttpSession session) {
 
		// 取參數(shù)的方法,對應(yīng)登錄表單中的用戶名name="user_name"
		String user_name = request.getParameter("user_name");
		String user_password = request.getParameter("user_password");
 
		// 調(diào)用mapper層的登錄的方法,從數(shù)據(jù)庫中匹配用戶名和密碼,并放回用戶名
		String tname = userService2.login(user_name, user_password);
 
		String user_Id = userService2.getUserById(user_name, user_password);
		// newUserId = user_Id; //修改密碼用的
		int userId = 0;
		try {
			// 判斷字符串是否是數(shù)字,并且拋出異常
			// boolean NotisNum
			// =(user_Id.equals(null)||user_Id.equals("")||user_Id.equals("null"));
			boolean NotisNum = (user_Id.equals("null"));
			// System.out.println(NotisNum);
			if (!NotisNum) {
				userId = Integer.parseInt(user_Id);
			}
		} catch (Exception e) {
 
		}
//	   
		session.setAttribute("tname", tname);
		session.setAttribute("userId", userId);
		Object data = null;
		String statusMsg = "";
		Integer statusCode = 200;
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("user_name", user_name);
		paramMap.put("user_password", user_password);
		data = paramMap;
 
		User user = new User();
		user.setUser_id(userId);
		System.out.println("登錄的id:" + user.getUser_id());
		System.out.println("登錄的用戶名:" + session.getAttribute(tname));
		System.out.println("前端,用戶名:" + user_name + " 密碼:" + user_password);
		System.out.println("根據(jù)前端在數(shù)據(jù)庫中查找到的用戶名:" + tname + " 用戶的id:" + userId);
 
		// 用戶名和密碼匹配不成功,則返回的用戶名為空
		if (tname == null) {
			System.out.println("用戶不存在");
			System.out.println();
			statusMsg = "用戶或密碼錯誤!";
			statusCode = 201;
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		} else {
			statusCode = 200;
			webResponse.setStatusCode(statusCode);
			System.out.println("狀態(tài)碼:" + webResponse.getStatusCode());
			System.out.println("登錄成功了");
			System.out.println();
			return webResponse.getWebResponseUserId(statusCode, statusMsg, data, userId);
		}
	}
 
	// 更改密碼 更改密碼 更改密碼
	@RequestMapping(value = "/resetUserPassword", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse resetUserPassword(HttpServletRequest request, HttpSession session) {
 
		Object data = null;
		String statusMsg = "";
		Integer statusCode = 200;
		int uId = 0;
 
		// 取參數(shù)的方法,對應(yīng)登錄表單中的用戶名
		String user_name = request.getParameter("user_name");
		String newUser_password = request.getParameter("newUser_password");
		try {
			uId = (int) this.userService2.resetPassword(user_name, newUser_password);
			System.out.println("修改密碼返回的id:" + uId);
		} catch (Exception e) {
 
		}
 
		return webResponse.getWebResponse(statusCode, statusMsg, data);
 
	}
 
	// 用戶注冊
	@RequestMapping(value = "/addOrEditUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse addOrEditTest(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			String user_id, @RequestParam(required = false) String user_name,
			@RequestParam(required = false) String user_password) {
 
		Object data = null;
		String statusMsg = "用戶名已存在,請重新注冊!";
		Integer statusCode = 201;
		String rearchName = null;
		try {
			rearchName = this.userService.rearchUserName(user_name);
 
			if (!(rearchName.equals("null"))) {
				return webResponse.getWebResponse(statusCode, statusMsg, data);
			}
		} catch (Exception e) {
 
		}
		System.out.println("判斷用戶是否重復(fù):" + rearchName);
 
		if (user_id == null || user_id.length() == 0) {
			return this.addUser(request, response, session, user_name, user_password);
		} else {
			return this.editUser(request, response, session, user_id, user_name, user_password);
		}
	}
 
	// 添加用戶
	@RequestMapping(value = "/addUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse addUser(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			String user_name, String user_password) {
		Object data = null;
		String statusMsg = "";
		Integer statusCode = 200;
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("user_name", user_name);
		paramMap.put("user_password", user_password);
		data = paramMap;
		if (user_name == null || "".equals(user_name.trim()) || user_password == null
				|| "".equals(user_password.trim())) {
			statusMsg = " 參數(shù)為空錯誤?。。?!";
			statusCode = 201;
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		if (user_name.length() > 255 || user_password.length() > 65535) {
			statusMsg = " 參數(shù)長度過長錯誤?。?!";
			statusCode = 201;
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		User user = new User();
 
		boolean isAdd = true;
 
		return this.addOrEditUser(request, response, session, data, user, user_name, user_password, isAdd);
	}
 
	@RequestMapping(value = "/editUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse editUser(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			String user_id, @RequestParam(required = false) String user_name,
			@RequestParam(required = false) String user_password) {
		Object data = null;
		String statusMsg = "";
		Integer statusCode = 200;
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("user_id", user_id);
		paramMap.put("user_name", user_name);
		paramMap.put("user_password", user_password);
		data = paramMap;
		if (user_id == null || "".equals(user_id.trim())) {
			statusMsg = "未獲得主鍵參數(shù)錯誤?。。?;
			statusCode = 201;
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		Integer user_idNumeri = user_id.matches("^[0-9]*$") ? Integer.parseInt(user_id) : 0;
		if (user_idNumeri == 0) {
			statusMsg = "主鍵不為數(shù)字錯誤?。?!";
			statusCode = 201;
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		User userVo = this.userService.getById(user_idNumeri);
		User user = new User();
		BeanUtils.copyProperties(userVo, user); // 淺復(fù)制,重要
 
		boolean isAdd = false;
		return this.addOrEditUser(request, response, session, data, user, user_name, user_password, isAdd);
	}
 
	/*
	 * 
	 */
	private WebResponse addOrEditUser(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			Object data, User user, String user_name, String user_password, boolean isAdd) {
		String statusMsg = "";
		Integer statusCode = 200;
		if (user_name != null && !("".equals(user_name.trim()))) {
			if (user_name.length() > 255) {
				statusMsg = " 參數(shù)長度過長錯誤,testName";
				statusCode = 201;
				return webResponse.getWebResponse(statusCode, statusMsg, data);
			}
			// 重要,建立數(shù)據(jù),以便后期數(shù)據(jù)庫能調(diào)用數(shù)據(jù)
			user.setUser_name(user_name); // 建立用戶名
			user.setUser_password(user_password); // 建立密碼
 
		}
		if (user_password != null && !("".equals(user_password.trim()))) {
			if (user_password.length() > 65535) {
				statusMsg = " 參數(shù)長度過長錯誤,info";
				statusCode = 201;
				return webResponse.getWebResponse(statusCode, statusMsg, data);
			}
		}
 
		if (isAdd) {
 
			// 插入語句,插入數(shù)據(jù)庫,重要
 
			this.userService.insert(user);
			if (user.getUser_id() > 0) {
				statusMsg = "成功插入?。。?;
			} else {
				statusCode = 202;
				statusMsg = "insert false";
			}
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		int num = this.userService.update(user);
		if (num > 0) {
			statusMsg = "成功修改?。。?;
		} else {
			statusCode = 202;
			statusMsg = "update false";
		}
		return webResponse.getWebResponse(statusCode, statusMsg, data);
	}
 
	@RequestMapping(value = "/getUserById", produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse getUserById(String user_id) {
		Object data = user_id;
		Integer statusCode = 200;
		String statusMsg = "";
		if (user_id == null || user_id.length() == 0 || user_id.length() > 11) {
			statusMsg = "參數(shù)為空或參數(shù)過長錯誤?。?!";
			statusCode = 201;
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		Integer user_idNumNumeri = user_id.matches("^[0-9]*$") ? Integer.parseInt(user_id) : 0;
		if (user_idNumNumeri == 0) {
			statusMsg = "參數(shù)數(shù)字型錯誤!!!";
			statusCode = 201;
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		User userVo = this.userService.getById(user_idNumNumeri);
 
		if (userVo != null && userVo.getUser_id() > 0) {
			data = userVo;
			statusMsg = "獲取單條數(shù)據(jù)成功!??!";
		} else {
			statusCode = 202;
			statusMsg = "no record!!!";
		}
		return webResponse.getWebResponse(statusCode, statusMsg, data);
	}
 
	@RequestMapping(value = "/getOneUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse getOneTest(@RequestParam(defaultValue = "正常", required = false) String tbStatus) {
		LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>();
		condition.put("tb_status='" + tbStatus + "'", "");
		User userVo = this.userService.getOne(condition);
		Object data = null;
		String statusMsg = "";
		if (userVo != null && userVo.getUser_id() > 0) {
			data = userVo;
			statusMsg = "根據(jù)條件獲取單條數(shù)據(jù)成功?。?!";
		} else {
			statusMsg = "no record!!!";
		}
		return webResponse.getWebResponse(statusMsg, data);
	}
 
	@RequestMapping(value = "/getUserList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse getTestList(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(defaultValue = "1", required = false) Integer pageNo,
			@RequestParam(defaultValue = "10", required = false) Integer pageSize,
			@RequestParam(defaultValue = "正常", required = false) String tbStatus,
			@RequestParam(required = false) String keyword,
			@RequestParam(defaultValue = "test_id", required = false) String order,
			@RequestParam(defaultValue = "desc", required = false) String desc) {
		Object data = null;
		String statusMsg = "";
		int statusCode = 200;
		LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>();
		/*
		 * if (tbStatus != null && tbStatus.length() > 0) { condition.put("tb_status='"
		 * + tbStatus + "'", "and"); }
		 */
		if (keyword != null && keyword.length() > 0) {
			StringBuffer buf = new StringBuffer();
			buf.append("(");
			buf.append("test_name like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("info like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("other like '%").append(keyword).append("%'");
			buf.append(")");
			condition.put(buf.toString(), "and");
		}
		String field = null;
		if (condition.size() > 0) {
			condition.put(condition.entrySet().iterator().next().getKey(), "");
		}
		int count = this.userService.getCount(condition, field);
		if (order != null && order.length() > 0 & "desc".equals(desc)) {
			order = order + " desc";
		}
		List<User> list = this.userService.getList(condition, pageNo, pageSize, order, field);
		Map<Object, Object> map = new HashMap<Object, Object>();
		map.put("total", count);
		int size = list.size();
		if (size > 0) {
			List<User> listFont = new ArrayList<User>();
			User vo;
			User voFont = new User();
			for (int i = 0; i < size; i++) {
				vo = list.get(i);
				BeanUtils.copyProperties(vo, voFont);
				listFont.add(voFont);
				voFont = new User();
			}
			map.put("list", listFont);
			data = map;
			statusMsg = "根據(jù)條件獲取分頁數(shù)據(jù)成功?。?!";
		} else {
			map.put("list", list);
			data = map;
			statusCode = 202;
			statusMsg = "no record!!!";
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		return webResponse.getWebResponse(statusCode, statusMsg, data);
	}
 
	@RequestMapping(value = "/getAdminUserList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public String getAdminTestList(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(defaultValue = "1", required = false) Integer pageNo,
			@RequestParam(defaultValue = "10", required = false) Integer pageSize,
			@RequestParam(defaultValue = "正常", required = false) String tbStatus,
			@RequestParam(required = false) String keyword,
			@RequestParam(defaultValue = "test_id", required = false) String order,
			@RequestParam(defaultValue = "desc", required = false) String desc) {
		Object data = null;
		String statusMsg = "";
		int statusCode = 200;
		LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>();
 
		if (tbStatus != null && tbStatus.length() > 0) {
			condition.put("tb_status='" + tbStatus + "'", "and");
		}
		if (keyword != null && keyword.length() > 0) {
			StringBuffer buf = new StringBuffer();
			buf.append("(");
			buf.append("test_name like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("info like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("other like '%").append(keyword).append("%'");
			buf.append(")");
			condition.put(buf.toString(), "and");
		}
		String field = null;
		if (condition.size() > 0) {
			condition.put(condition.entrySet().iterator().next().getKey(), "");
		}
		int count = this.userService.getCount(condition, field);
		if (order != null && order.length() > 0 & "desc".equals(desc)) {
			order = order + " desc";
		}
		List<User> list = this.userService.getList(condition, pageNo, pageSize, order, field);
		Map<Object, Object> map = new HashMap<Object, Object>();
		map.put("total", count);
		int size = list.size();
		if (size > 0) {
			map.put("list", list);
			data = map;
			statusMsg = "根據(jù)條件獲取分頁數(shù)據(jù)成功?。?!";
		} else {
			map.put("list", list);
			data = map;
			statusCode = 202;
			statusMsg = "no record!!!";
		}
		return JSON.toJSONString(data);
	}
 
	@RequestMapping(value = "/delUser", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse delTest(int id) {
		int num = this.userService.delBySign(id);
		Object data = null;
		String statusMsg = "";
		if (num > 0) {
			statusMsg = "成功刪除!?。?;
		} else {
			statusMsg = "no record!!!";
		}
		return webResponse.getWebResponse(statusMsg, data);
	}
 
}

我的音樂歌單管理

@Controller
@RequestMapping("/myMusic")
public class MyMusicController {
 
	@Autowired
	protected WebResponse webResponse;
 
	@Resource
	protected IMyMusicService myMusicService;
 
//	@Autowired
//	MyMusicService myMusicService2;
 
	// 歌曲收藏
	@RequestMapping(value = "/addMusicCollect", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse addMusicCollect(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(required = false) String user_name) {
		WebResponse webResponse = new WebResponse();
		MyMusic myMusic = new MyMusic();
		System.out.println("接收到的用戶名:" + user_name);
 
		Integer statusCode = 200;
 
		// 數(shù)據(jù)庫插入語句,對應(yīng)xml文件的insert
		this.myMusicService.insert(myMusic);
 
		webResponse.setStatusCode(statusCode);
		return webResponse;
 
	}
 
	// 從數(shù)據(jù)庫中獲取歌曲數(shù)據(jù),在我的音樂中顯示
	@RequestMapping(value = "/getMyMusicList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse getMyMusicList(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(defaultValue = "1", required = false) Integer pageNo,
			@RequestParam(defaultValue = "10", required = false) Integer pageSize,
			@RequestParam(defaultValue = "正常", required = false) String tbStatus,
			@RequestParam(required = false) String keyword,
			@RequestParam(defaultValue = "ml_id", required = false) String order,
			@RequestParam(defaultValue = "desc", required = false) String desc,
			@RequestParam(required = false) String user_name, @RequestParam(required = false) String user_password
			) {
 
//		System.out.println("我的音樂顯示列表前收藏的歌曲id:" + song_id);
		String user_Id = null;
		try {
			user_Id = myMusicService.getUserById(user_name, user_password);
		} catch (Exception e) {
 
		}
		int userId = 0;
		try {
			// 判斷字符串是否是數(shù)字,并且拋出異常
			boolean NotisNum = (user_Id.equals("null"));
			// System.out.println(NotisNum);
			if (!NotisNum) {
				userId = Integer.parseInt(user_Id);
			}
		} catch (Exception e) {
 
		}
		System.out.println("我的音樂顯示列表前用戶id:" + userId);
 
		Object data = null;
		String statusMsg = "";
		int statusCode = 200;
		LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>();
		/*
		 * if (tbStatus != null && tbStatus.length() > 0) { condition.put("tb_status='"
		 * + tbStatus + "'", "and"); }
		 */
		if (keyword != null && keyword.length() > 0) {
			StringBuffer buf = new StringBuffer();
			buf.append("(");
			buf.append("test_name like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("info like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("other like '%").append(keyword).append("%'");
			buf.append(")");
			condition.put(buf.toString(), "and");
		}
		String field = null;
		if (condition.size() > 0) {
			condition.put(condition.entrySet().iterator().next().getKey(), "");
		}
		// int count = this.myMusicService.getCount(condition, field);
		if (order != null && order.length() > 0 & "desc".equals(desc)) {
			order = order + " desc";
		}
 
		// List<MyMusic> list = this.myMusicService.getList(condition, pageNo, pageSize,
		// order, field);
 
		try {
			List<MyMusic> list = this.myMusicService.getMyMusicList(userId);
 
			Map<Object, Object> map = new HashMap<Object, Object>();
			// map.put("total", count);
			int size = list.size();
			if (size > 0) {
				List<MyMusic> listFont = new ArrayList<MyMusic>();
				MyMusic vo;
				MyMusic voFont = new MyMusic();
				for (int i = 0; i < size; i++) {
					vo = list.get(i);
					// 通過java反射將類中當(dāng)前屬性字段對應(yīng)的內(nèi)容復(fù)制到另外一個類中
					BeanUtils.copyProperties(vo, voFont);
					listFont.add(voFont);
					voFont = new MyMusic();
				}
				map.put("list", listFont);
				data = map;
				statusMsg = "根據(jù)條件獲取分頁數(shù)據(jù)成功?。?!";
			} else {
				map.put("list", list);
				data = map;
				statusCode = 202;
				statusMsg = "no record!!!";
				return webResponse.getWebResponse(statusCode, statusMsg, data);
			}
 
		}catch (Exception e){
 
		}
 
 
 
 
 
 
		return webResponse.getWebResponse(statusCode, statusMsg, data);
	}
 
	// 刪除音樂
	@RequestMapping(value = "/deleteMyMusic", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse deleteMyMusic(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(required = false) Integer user_id, @RequestParam(required = false) Integer song_id) {
		WebResponse webResponse = new WebResponse();
		MyMusic myMusic = new MyMusic();
		System.out.println("刪除音樂前的用戶名id:" + user_id);
 
		Object data = null;
		String statusMsg = "";
		int statusCode = 201;
		int del = 0;
 
		if (user_id == null){
			 del = this.myMusicService.deleteMyMusic(song_id, 0);
		}else {
			del = this.myMusicService.deleteMyMusic(song_id, user_id);
		}
 
		if (del > 0) {
			statusCode = 200;
		}
 
		return webResponse.getWebResponse(statusCode, statusMsg, data);
	}
 
}

音樂鏈接管理

@Controller 
@RequestMapping("/musicLink")
public class MusicLinkController {
 
	@Autowired
	protected WebResponse webResponse;
 
	@Resource
	protected IMusicLinkService musicLinkService;
 
	@Resource
	protected MusicLinkService musicLinkService2;
	
	
	/**
	 *  //常用注解快速解釋:
	 *  @Controller :用于標(biāo)記在一個類上,使用它標(biāo)記的類就是一個SpringMVC Controller 對象。
	 *  分發(fā)處理器將會掃描使用了該注解的類的方法,并檢測該方法是否使用了@RequestMapping 注解。@Controller 
	 *  只是定義了一個控制器類,而使用@RequestMapping 注解的方法才是真正處理請求的處理器。
	 *  
	 *  @RequestMapping :是一個用來處理請求地址映射的注解,可用于類或方法上。
	 *  用于類上,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑;
	 *  用于方法上,表示在類的父路徑下追加方法上注解中的地址將會訪問到該方法
	 *  
	 *  @Autowired:@Autowired 注釋,它可以對類成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動裝配的工作。 通過 @Autowired的使用來消除 set ,get方法。
	 *  
	 * 
	 *  @Resource:@Autowired與@Resource都可以用來裝配bean. 都可以寫在字段上,或?qū)懺趕etter方法上。
	 *  
	 *  
	 *  @Responsebody 注解表示該方法的返回的結(jié)果直接寫入 HTTP 響應(yīng)正文(ResponseBody)中,
	 *  一般在異步獲取數(shù)據(jù)時(shí)使用,通常是在使用 @RequestMapping 后,返回值通常解析為跳轉(zhuǎn)路徑,
	 *  加上 @Responsebody 后返回結(jié)果不會被解析為跳轉(zhuǎn)路徑,而是直接寫入HTTP 響應(yīng)正文中。 
     *  作用: 該注解用于將Controller的方法返回的對象,通過適當(dāng)?shù)腍ttpMessageConverter轉(zhuǎn)換為指定格式后,寫入到Response對象的body數(shù)據(jù)區(qū)。
     *   
     *
     *
	 * 
	 *  @RequestParam(value="aa" required=false)
	 *   1.可以對傳入?yún)?shù)指定參數(shù)名
	 *   
	 *   // 下面的對傳入?yún)?shù)指定為aa,如果前端不傳aa參數(shù)名,會報(bào)錯  
	 *   @RequestParam(value="aa") String inputStr 
	 *    
	 *   2、可以通過required=false或者true來要求@RequestParam配置的前端參數(shù)是否一定要傳 
	 *  
	 *   3、如果@requestParam注解的參數(shù)是int類型,并且required=false,此時(shí)如果不傳參數(shù)的話,會報(bào)錯。原因是,required=false時(shí),不傳參數(shù)的話,
	 *   會給參數(shù)賦值null,這樣就會把null賦值給了int,因此會報(bào)錯。
	 *      
	 *
	 * 
	 */ 
	
 
	// 從數(shù)據(jù)庫中獲取歌曲數(shù)據(jù),在榜單中顯示
	@RequestMapping(value = "/getMusicLinkList", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse getMusicLinkList(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(defaultValue = "1", required = false) Integer pageNo,
			@RequestParam(defaultValue = "30", required = false) Integer pageSize,
			@RequestParam(defaultValue = "正常", required = false) String tbStatus,
			@RequestParam(required = false) String keyword,
			@RequestParam(defaultValue = "ml_id", required = false) String order,
			@RequestParam(defaultValue = "desc", required = false) String desc) {
		Object data = null;
		String statusMsg = "";
		int statusCode = 200;
		LinkedHashMap<String, String> condition = new LinkedHashMap<String, String>();
		/*
		 * if (tbStatus != null && tbStatus.length() > 0) { condition.put("tb_status='"
		 * + tbStatus + "'", "and"); }
		 */
		if (keyword != null && keyword.length() > 0) {
			StringBuffer buf = new StringBuffer();
			buf.append("(");
			buf.append("test_name like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("info like '%").append(keyword).append("%'");
			buf.append(" or ");
			buf.append("other like '%").append(keyword).append("%'");
			buf.append(")");
			condition.put(buf.toString(), "and");
		}
		String field = null;
		if (condition.size() > 0) {
			condition.put(condition.entrySet().iterator().next().getKey(), "");
		}
		int count = this.musicLinkService.getCount(condition, field);
		if (order != null && order.length() > 0 & "desc".equals(desc)) {
			order = order + " desc";
		}
		// 從數(shù)據(jù)庫中獲取數(shù)據(jù),并把對象的結(jié)果集存到list列表中
		List<MusicLink> list = this.musicLinkService.getList(condition, pageNo, pageSize, order, field);
		Map<Object, Object> map = new HashMap<Object, Object>();
		map.put("total", count);
 
		// 如果數(shù)據(jù)庫有15條音樂,則list中有15個對象,則size的大小為15
		int size = list.size();
		if (size > 0) {
			List<MusicLink> listFont = new ArrayList<MusicLink>();
			MusicLink vo;
			MusicLink voFont = new MusicLink();
 
			// 循環(huán)將獲取到的對象及結(jié)構(gòu)屬性克隆到一個新的voFont對象中,并保存到動態(tài)數(shù)組中
			for (int i = 0; i < size; i++) {
				vo = list.get(i);
 
				// 通過java反射將類中當(dāng)前屬性字段對應(yīng)的內(nèi)容復(fù)制到另外一個類中
				BeanUtils.copyProperties(vo, voFont);
				listFont.add(voFont);
				voFont = new MusicLink();
			}
			map.put("list", listFont);
 
			// data是一個map對象
			data = map;
			statusMsg = "根據(jù)條件獲取分頁數(shù)據(jù)成功!?。?;
		} else {
			map.put("list", list);
			data = map;
			statusCode = 202;
			statusMsg = "no record!!!";
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
		return webResponse.getWebResponse(statusCode, statusMsg, data);
	}
 
	// 歌曲搜索功能
	@RequestMapping(value = "/getSongRearch", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse getSongRearch(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(required = false) String songName) {
 
		Object data = null;
		String statusMsg = "";
		int statusCode = 200;
 
		// 調(diào)用Mapper層的songRearch方法,進(jìn)行數(shù)據(jù)庫的操作
		List<MusicLink> list = this.musicLinkService2.songRearch(songName);
 
		int count = list.size();
		System.out.println();
		System.out.println("搜索到的歌曲數(shù):" + count);
		System.out.println("結(jié)束");
		Map<Object, Object> map = new HashMap<Object, Object>();
		map.put("total", count);
		int size = list.size();
		if (size > 0) {
			List<MusicLink> listFont = new ArrayList<MusicLink>();
			MusicLink vo;
			MusicLink voFont = new MusicLink();
			for (int i = 0; i < size; i++) {
				vo = list.get(i);
				BeanUtils.copyProperties(vo, voFont);
				listFont.add(voFont);
				voFont = new MusicLink();
			}
			map.put("list", listFont);
			data = map;
//				for (int i = 0; i < map.size(); i++) {
//					System.out.println(map.get(listFont).toString());
//				}
//				
			statusMsg = "根據(jù)條件獲取分頁數(shù)據(jù)成功!??!";
		} else {
			map.put("list", list);
			data = map;
			statusCode = 202;
			statusMsg = "no record!!!";
			return webResponse.getWebResponse(statusCode, statusMsg, data);
		}
 
		return webResponse.getWebResponse(statusCode, statusMsg, data);
	}
 
	// 歌曲收藏
	@RequestMapping(value = "/addMusicCollect", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
	@ResponseBody
	public WebResponse addMusicCollect(HttpServletRequest request, HttpServletResponse response, HttpSession session,
			@RequestParam(required = false) int song_id, @RequestParam(required = false) String user_name,
			@RequestParam(required = false) String user_password, @RequestParam(required = false) String songName) {
		WebResponse webResponse = new WebResponse();
		MusicLink musicLink = new MusicLink();
		User user = new User();
		System.out.println("歌曲id:" + song_id + " 用戶名:" + user_name + "  戶用密碼:" + user_password);
		Object data = null;
		String statusMsg = "";
		int statusCode = 200;
 
		String user_Id = null;
		try {
			user_Id = musicLinkService2.getUserId(user_name, user_password);
		} catch (Exception e) {
 
		}
 
		int userId = 0;
		try {
			// 判斷字符串是否是數(shù)字,并且拋出異常
			boolean NotisNum = (user_Id.equals("null"));
			// System.out.println(NotisNum);
			if (!NotisNum) {
				userId = Integer.parseInt(user_Id);
			}
		} catch (Exception e) {
 
		}
 
		System.out.println("歌曲名:" + songName);
 
		String jSong = this.musicLinkService.judgeSong(songName, userId);
 
		int my_Id = 0;
		try {
			// 判斷字符串是否是數(shù)字,并且拋出異常
			// boolean NotisNum
			// =(user_Id.equals(null)||user_Id.equals("")||user_Id.equals("null"));
			boolean NotisNum = (jSong.equals("null"));
 
			if (!NotisNum) {
				my_Id = Integer.parseInt(jSong);
			}
		} catch (Exception e) {
 
		}
 
		if (my_Id > 0) {
			statusCode = 201;
			statusMsg = "已收藏,請不要重復(fù)收藏!";
		} else {
			this.musicLinkService.insertSongRearch(song_id, userId);
		}
 
		System.out.println("收藏歌曲的用戶id:" + userId);
 
		return webResponse.getWebResponse(statusCode, statusMsg, data);
 
	}
 
}

到此這篇關(guān)于Java實(shí)戰(zhàn)之制作在線音樂網(wǎng)站的文章就介紹到這了,更多相關(guān)Java在線音樂網(wǎng)站內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 簡單幾步實(shí)現(xiàn)將Spring security4.x升級到5.x

    簡單幾步實(shí)現(xiàn)將Spring security4.x升級到5.x

    這篇文章主要介紹了簡單幾步實(shí)現(xiàn)將Spring security4.x升級到5.x方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 詳解Spring AOP 攔截器的基本實(shí)現(xiàn)

    詳解Spring AOP 攔截器的基本實(shí)現(xiàn)

    本篇文章主要介紹了詳解Spring AOP 攔截器的基本實(shí)現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 利用Java發(fā)送郵件的實(shí)現(xiàn)代碼

    利用Java發(fā)送郵件的實(shí)現(xiàn)代碼

    這篇文章給大家分享了如何利用Java發(fā)送郵件,文章通過實(shí)例代碼介紹的很詳細(xì),有需要的可以參考借鑒。
    2016-08-08
  • Java基礎(chǔ)篇之HashMap指定初始值

    Java基礎(chǔ)篇之HashMap指定初始值

    這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)篇之HashMap指定初始值的相關(guān)資料,HashMap是Java中常用的數(shù)據(jù)結(jié)構(gòu),它提供了高效的鍵值對存儲和查詢功能,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • 一文詳解Spring加載properties文件的方式

    一文詳解Spring加載properties文件的方式

    這篇文章將通過一些示例為大家詳細(xì)介紹Spring加載properties文件的幾種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-06-06
  • Spring框架中Bean的三種配置和實(shí)例化方法總結(jié)

    Spring框架中Bean的三種配置和實(shí)例化方法總結(jié)

    在Spring框架中,Bean的配置和實(shí)例化是很重要的基礎(chǔ)內(nèi)容,掌握各種配置方式,才能靈活管理Bean對象,本文將全面介紹Bean的別名配置、作用范圍配置,以及構(gòu)造器實(shí)例化、工廠實(shí)例化等方式
    2023-10-10
  • java控制臺實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    java控制臺實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java控制臺實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • java方法重寫實(shí)例分析

    java方法重寫實(shí)例分析

    這篇文章主要介紹了java方法重寫,較為詳細(xì)的講述了Java方法重寫的注意事項(xiàng),并附帶實(shí)例加以說明,需要的朋友可以參考下
    2014-09-09
  • JDBC簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    JDBC簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    什么是JDBC?這篇文章就為大家詳細(xì)介紹了Java語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的應(yīng)用程序接口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用stream的Collectors.toMap()方法常見的問題及解決

    使用stream的Collectors.toMap()方法常見的問題及解決

    這篇文章主要介紹了使用stream的Collectors.toMap()方法常見的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論

合肥市| 望奎县| 淳化县| 霍山县| 牙克石市| 穆棱市| 迭部县| 宁夏| 石门县| 银川市| 驻马店市| 进贤县| 桓台县| 枝江市| 龙井市| 平安县| 外汇| 陈巴尔虎旗| 荥经县| 阿尔山市| 巴南区| 板桥市| 塔河县| 铁岭县| 城市| 甘谷县| 潞城市| 鹤庆县| 右玉县| 南郑县| 隆安县| 象山县| 哈巴河县| 德清县| 长泰县| 安新县| 庆城县| 九台市| 探索| 百色市| 台北市|