当前位置: 首页 > 编程日记 > 正文

Java项目:诚途旅游系统(java+JSP+Spring+SSM+Mysql)

源码获取:博客首页 "资源" 里下载!

采用ssm架构实现的旅游网站系统

包括网站展示和后台管理功能,网站主要是页面浏览以及评论、制定旅游方案、智能推荐功能

后台就是维护网站展示的内容,添加旅游景点、管理用户、查看用户的搜索记录功能

控制器层:

/*** 控制器层* @author yy**/
@Controller
@CrossOrigin
@RequestMapping("/orders")
public class OrdersController {@Autowiredprivate OrdersService ordersService;@Autowiredprivate HotelOrdersService hotel_ordersService;@Autowiredprivate HotelService hotelService;@Autowiredprivate ScenicService scenicService;/*** 查询全部数据* @return*/@ResponseBody@RequestMapping(value = "/list",method= RequestMethod.GET)public Result findAll(){List<Orders> all = ordersService.findAll();return new Result(true, StatusCode.OK,"查询成功",all,all.size());}/*** 查询全部订单* @return*/@ResponseBody@RequestMapping(value = "/allorders",method = RequestMethod.POST)public String findAllOrders(HttpSession session, Model model) throws ParseException {User user= (User) session.getAttribute("user");model.addAttribute("orders",ordersService.findOrders(user.getId().toString()));return "index_header::table_refresh";}/*** 查询全部订单* @return*/@ResponseBody@RequestMapping(value = "/allorder",method = RequestMethod.POST)public List<Orders> findAllOrder(HttpSession session) throws ParseException {User user= (User) session.getAttribute("user");return ordersService.findOrders(user.getId().toString());}/*** 查询全部订单* @return*/@ResponseBody@RequestMapping(value = "/allorderhotel",method = RequestMethod.POST)public List<HotelOrders> findAllOrderHotel(HttpSession session){User user= (User) session.getAttribute("user");List<HotelOrders> hotel_orders=hotel_ordersService.hotel_orders(user.getId());return hotel_orders;}/*** 根据ID查询* @param id ID* @return*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.GET)public Result findById(@PathVariable Long id){return new Result(true,StatusCode.OK,"查询成功",ordersService.findById(id));}/*** 分页+多条件查询* @param searchMap 查询条件封装* @param page 页码* @param size 页大小* @return 分页结果*/@ResponseBody@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){Page<Orders> pageList = ordersService.findSearch(searchMap, page, size);return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<Orders>(pageList.getTotalElements(), pageList.getContent()) );}/*** 根据条件查询* @param searchMap* @return*/@ResponseBody@RequestMapping(value="/search",method = RequestMethod.POST)public Result findSearch( @RequestBody Map searchMap){return new Result(true,StatusCode.OK,"查询成功",ordersService.findSearch(searchMap));}/*** 订单添加操作* @param orders*/@ResponseBody@RequestMapping(value ="/add",method=RequestMethod.POST)public Result add(Orders orders, HttpSession session){//获取数量User user = (User) session.getAttribute("user");if (user == null){return new Result(false,StatusCode.ACCESSERROR,"请登录");}return ordersService.add(orders,user.getId(),orders.getId(),orders.getQty());}/*** 修改* @param*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.PUT)public Result update(@PathVariable Long id){ordersService.updateStatus(id);return new Result(true,StatusCode.OK,"修改成功");}/*** 删除* @param id*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.DELETE)public Result delete(@PathVariable Long id ){ordersService.deleteById(id);return new Result(true,StatusCode.OK,"删除成功");}@RequestMapping(value = "/ordersList")public String ordersList(){return "admin/ordersmanage/orderslist";}/*** 酒店评分* @param hotel* @return*/@ResponseBody@PostMapping("/hotelOrderStar")public Result hotelOrderStar(Hotel hotel,@RequestParam("orderId")Long orderId){Long id = hotel.getId();Hotel newHotel = hotelService.findById(id);if(newHotel==null){return new Result(false,StatusCode.ERROR,"未找到该酒店!");}Integer currentStar = hotel.getStar();Integer totalStar = newHotel.getStar();if(currentStar<0){return new Result(false,StatusCode.ERROR,"请选择评分!");}Integer commentCount = newHotel.getCommentCount();commentCount=commentCount+1;totalStar=currentStar+totalStar;int avgStar = totalStar / commentCount;hotel.setCommentCount(commentCount);hotel.setStar(avgStar);Integer hotel1 = hotelService.updateStar(hotel);hotel_ordersService.updateStarStatus(orderId);if(hotel1==null){return new Result(false,StatusCode.ERROR,"评分更新失败!");}return new Result(true,StatusCode.OK,"评价成功!");}/*** 景点评分* @param scenic* @return*/@ResponseBody@PostMapping("/travelOrderStar")public Result travelOrderStar(Scenic scenic,@RequestParam("orderId")Long orderId){Long id = scenic.getId();Scenic newScenic = scenicService.findById(id);if(newScenic==null){return new Result(false,StatusCode.ERROR,"未找到该景点!");}Integer totalStar = newScenic.getStart();Integer currentStar = scenic.getStart();if(currentStar<0){return new Result(false,StatusCode.ERROR,"请选择评分!");}Integer commentCount = newScenic.getCommentCount();commentCount=commentCount+1;totalStar=currentStar+totalStar;int avgStar = totalStar / commentCount;scenic.setCommentCount(commentCount);scenic.setStart(avgStar);Integer scenic1 = scenicService.updateStar(scenic);ordersService.updateStarStatus(orderId);if(scenic1==null){return new Result(false,StatusCode.ERROR,"评分更新失败!");}return new Result(true,StatusCode.OK,"评价成功!");}}

旅行景点管理控制层:

@Controller
@CrossOrigin
@RequestMapping("/travel")
public class RecomTravelController {@Autowiredprivate ScenicService scenicService;@Autowiredprivate ScenicDao scenicDao;@Autowiredprivate HotelService hotelService;@Autowiredprivate HotelDao hotelDao;/***查询星级* @return*/@ResponseBody@RequestMapping(value = "/star",method = RequestMethod.POST)public Result judgeStar(String id,String start){System.out.println(id+"===="+start);Optional<Scenic> s = scenicDao.findById(id);if (s.isPresent()){Scenic scenic = s.get();int valuestar = (Integer.valueOf(start)+Integer.valueOf(scenic.getStart()))/2;scenic.setStart(valuestar);scenicDao.save(scenic);System.out.println("数据不为空!");return new Result(true,1,"","");}else {System.out.println("数据为空!");return new Result(false,0,"","");}}/***查询星级* @return*/@ResponseBody@RequestMapping(value = "/hotel",method = RequestMethod.POST)public Result judgeHotelStar(Long id,String start){Hotel scenic = hotelService.findById(id);if (scenic!=null){int valuestar = (Integer.valueOf(start)+Integer.valueOf(scenic.getStar()))/2;scenic.setStar(valuestar);hotelDao.save(scenic);System.out.println("数据不为空!");return new Result(true,1,"","");}else {System.out.println("数据为空!");return new Result(false,0,"","");}}/*** 查询单个景点* @param model* @param id* @return*/@RequestMapping("/oneAttr")public String One_attr(Model model,Long id){Scenic scenic=scenicService.findById(id);model.addAttribute("oneAttr",scenic);return "page/product";}/*** 景点模糊查询分页* @param model* @param start* @param limit* @param search_key* @return*/@RequestMapping("/search_attrs")public String search_attrs(Model model,@RequestParam(value = "start" ,defaultValue = "0")Integer start,@RequestParam(value = "limit" ,defaultValue = "6")Integer limit,@RequestParam String search_key){start=start<0?0:start;Sort sort=new Sort(Sort.Direction.DESC,"id");Pageable pageable=PageRequest.of(start,limit,sort);Specification specification=new Specification() {@Overridepublic Predicate toPredicate(Root root, CriteriaQuery criteriaQuery, CriteriaBuilder criteriaBuilder) {List<Predicate> scenics=new ArrayList<>();if (StringUtils.isNotBlank(search_key)){scenics.add( criteriaBuilder.like(root.get("name"),"%"+search_key+"%"));}return criteriaBuilder.and(scenics.toArray(new Predicate[scenics.size()]));}};Page<Scenic> page=scenicDao.findAll(specification,pageable);model.addAttribute("name",search_key);model.addAttribute("attrs",page);model.addAttribute("number",page.getNumber());model.addAttribute("numberOfElements",page.getNumberOfElements());model.addAttribute("size",page.getSize());model.addAttribute("totalElements",page.getTotalElements());model.addAttribute("totalPages",page.getTotalPages());model.addAttribute("first",page.isFirst());model.addAttribute("last",page.isLast());return "page/travel";}@RequestMapping("/local")public String localRefresh(Model model,Long id) {Scenic scenic=scenicService.findById(id);System.out.println(scenic.toString());List<Hotel> hotels=hotelService.findByCountryLike(scenic.getContry());Collections.sort(hotels, new Comparator<Hotel>() {@Overridepublic int compare(Hotel o1, Hotel o2) {if (o1.getStar()<o2.getStar()){return 2;}if (o1.getStar().equals(o2.getStar()) ){return 1;}return -1;}});if (hotels.size()>=4){List newList=hotels.subList(0,3);model.addAttribute("scenics",newList);System.out.println("个数:"+newList.size());}else {model.addAttribute("scenics",hotels);System.out.println("个数2:"+hotels.size());}return "page/product::table_refresh";}}

控制器层:

/*** 控制器层* @author yy**/
@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate RedisTemplate redisTemplate;@Autowiredprivate HttpServletRequest request;@AutowiredBCryptPasswordEncoder encoder;/*** 查询全部数据** @return*/@RequestMapping(value = "userList",method = RequestMethod.GET)public Result findAll() {List<User> all = userService.findAll();return new Result(true, StatusCode.OK, "查询成功",all,all.size());}/*** 根据ID查询** @param id ID* @return*/@RequestMapping(value = "/{id}", method = RequestMethod.GET)public Result findById(@PathVariable Long id) {return new Result(true, StatusCode.OK, "查询成功", userService.findById(id));}/*** 分页+多条件查询* @param searchMap 查询条件封装* @param page 页码* @param size 页大小* @return 分页结果*/@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){Page<User> pageList = userService.findSearch(searchMap, page, size);return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<User>(pageList.getTotalElements(), pageList.getContent()) );}/*** 根据条件查询* @param searchMap* @return*/@RequestMapping(value="/search",method = RequestMethod.POST)public Result findSearch( @RequestBody Map searchMap){return new Result(true,StatusCode.OK,"查询成功",userService.findSearch(searchMap));}/*** 增加* @param user*/@RequestMapping(method=RequestMethod.POST)public Result add(@RequestBody User user  ){userService.add(user);return new Result(true,StatusCode.OK,"增加成功");}/*** 修改* @param user*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.PUT)public Result update(User user, @PathVariable Long id ){User oldUser=userService.findById(id);user.setId(id);user.setPassword(oldUser.getPassword());userService.update(user);return new Result(true,StatusCode.OK,"修改成功");}/*** 修改* @param user*/@RequestMapping(value="/change",method= RequestMethod.POST,consumes = "application/json")public Result update(@RequestBody User user, HttpSession session){User us= (User) session.getAttribute("user");user.setId(us.getId());user.setPassword(us.getPassword());userService.update(user);return new Result(true,StatusCode.OK,"修改成功");}/*** 删除* @param id*/@RequestMapping(value="/{id}",method= RequestMethod.DELETE)public Result delete(@PathVariable String id ){userService.deleteById(id);return new Result(true,StatusCode.OK,"删除成功");}/*** 用户注册* @param code* @param user* @return*/@ResponseBody@RequestMapping(value = "/register/",method = RequestMethod.POST)public Result regist(@RequestParam(name = "code") String code,User user,HttpServletRequest request){String sCode = (String) request.getSession().getAttribute("user_register_email_code");if(!sCode.equalsIgnoreCase(code)){return new Result(false,StatusCode.ERROR,"验证码错误!");}userService.add(user);return new Result(true,StatusCode.OK,"注册成功");}/***判断账号是否存在* @param user* @return*/@RequestMapping(value = "/checkPhone",method = RequestMethod.POST)@ResponseBodypublic Result checkPhone(User user){String phone = user.getMobile();if(!StringUtil.isMobile(phone)){return new Result(false,StatusCode.ERROR,"请填写正确的手机号!");}User userphone= userService.findByMobile(phone);if (userphone == null){return new Result(true,StatusCode.OK,"该手机号可以注册");}return new Result(false,StatusCode.ERROR,"该手机号已经被注册");}/*** 邮箱验证* @param user* @return*/@RequestMapping(value = "/email",method = RequestMethod.POST)@ResponseBodypublic Result findemail(User user){String email = user.getEmail();if(!StringUtil.emailFormat(email)){return new Result(true,StatusCode.ERROR,"请填写正确的邮箱格式");}User useremail= userService.findByEmail(email);if (useremail == null){return new Result(true,StatusCode.OK,"该邮箱可以注册");}return new Result(false,StatusCode.ERROR,"该邮箱已经被注册");}/*** 用户登录* @param loginMap* @return*/@ResponseBody@RequestMapping(value="/login",method=RequestMethod.POST)public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){String mobile = loginMap.get("login");if (StringUtil.isMobile(mobile)){User user = userService.findByMobileAndPassword(loginMap.get("login"),loginMap.get("password"));if(user!=null){request.getSession().setAttribute("user",user);Map map=new HashMap();return new Result(true,StatusCode.OK,"登陆成功");}else{return new Result(false,StatusCode.LOGINERROR,"用户名或密码错误");}}else {User user =  userService.findByNameAndPassword(loginMap.get("login"),loginMap.get("password"));if(user!=null){request.getSession().setAttribute("user",user);Map map=new HashMap();map.put("name",user.getName());//姓名return new Result(true,StatusCode.OK,"登陆成功",map);}else{return new Result(false,StatusCode.LOGINERROR,"用户名或密码错误");}}}/***  用户注销* @param request* @param response* @throws IOException*/@RequestMapping(value="/logout",method=RequestMethod.GET)public void logout(HttpServletRequest request,HttpServletResponse response) throws IOException {request.getSession().setAttribute("user", null);response.sendRedirect(request.getContextPath() + "/dist/view");}}

管理员控制器层:

/*** 控制器层* @author yy**/
@Controller
@CrossOrigin
@RequestMapping("/admin")
public class AdminController {@Autowiredprivate AdminService adminService;@AutowiredBCryptPasswordEncoder encoder;/*** 查询全部数据* @return*/@ResponseBody@RequestMapping(method= RequestMethod.GET)public Result findAll(){return new Result(true, StatusCode.OK,"查询成功",adminService.findAll());}/*** 根据ID查询* @param id ID* @return*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.GET)public Result findById(@PathVariable Long id){return new Result(true,StatusCode.OK,"查询成功",adminService.findById(id));}/*** 分页+多条件查询* @param searchMap 查询条件封装* @param page 页码* @param size 页大小* @return 分页结果*/@ResponseBody@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){Page<Admin> pageList = adminService.findSearch(searchMap, page, size);return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<Admin>(pageList.getTotalElements(), pageList.getContent()) );}/*** 根据条件查询* @param searchMap* @return*/@ResponseBody@RequestMapping(value="/search",method = RequestMethod.POST)public Result findSearch( @RequestBody Map searchMap){return new Result(true,StatusCode.OK,"查询成功",adminService.findSearch(searchMap));}/*** 增加* @param admin*/@ResponseBody@RequestMapping(method=RequestMethod.POST)public Result add(@RequestBody Admin admin  ){adminService.add(admin);return new Result(true,StatusCode.OK,"增加成功");}/*** 修改* @param admin*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.PUT)public Result update(@RequestBody Admin admin, @PathVariable Long id ){admin.setId(id);adminService.update(admin);		return new Result(true,StatusCode.OK,"修改成功");}/*** 删除* @param id*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.DELETE)public Result delete(@PathVariable String id ){adminService.deleteById(id);return new Result(true,StatusCode.OK,"删除成功");}/*** 管理员跳转* @return*/@RequestMapping(value = "/adminlogin")public String adminlogin(){return "admin/login/login";}/***  admin登录* @param loginMap* @param request* @return*/@ResponseBody@RequestMapping(value="/login",method= RequestMethod.POST)public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){Admin admin = adminService.finbyNameAndPassword(loginMap.get("name"),loginMap.get("password"));if (admin!=null){request.getSession().setAttribute("admin",admin);Map map=new HashMap();map.put("name",admin.getName());return new Result(true,StatusCode.OK,"登录成功");}else {return new Result(false,StatusCode.ERROR,"账号密码错误");}}/*** 管理员登录成功* @return*/@RequestMapping(value = "/index")public String success(){return "admin/index";}/*** 用户列表* @return*/@RequestMapping(value = "/userList")public String user(){return "admin/usermanage/userList";}@RequestMapping(value = "/echars")public String analysis(){return "admin/echars/console";}/*** 管理员退出登录* @return*/@RequestMapping(value = "/logout")public String logout(HttpSession session){session.removeAttribute("admin");return "admin/login/login";}/*** 管理员修改密码* @return*/@ResponseBody@RequestMapping(value = "/passwd")public Result passwd(HttpSession session,String passwd,String oldpad){Admin admindmin= (Admin) session.getAttribute("admin");Admin admins=adminService.findById(admindmin.getId());boolean old=encoder.matches(oldpad,admins.getPassword());if (old){String newPassd=encoder.encode(passwd);admins.setPassword(newPassd);adminService.update(admins);return new Result(true,StatusCode.OK,"成功");}else {return new Result(false,StatusCode.ERROR,"更新失败");}}}

宾馆管理控制器层:

/*** 控制器层* @author yy**/
@Controller
@CrossOrigin
@RequestMapping("/hotel")
public class HotelController {@Autowiredprivate HotelService hotelService;@Autowiredprivate ScenicService scenicService;/*** 查询全部酒店信息* @return*/@ResponseBody@RequestMapping(value = "/list",method= RequestMethod.GET)public Result findAll(){List<Hotel> all = hotelService.findAll();return new Result(true, StatusCode.OK,"查询成功",all,all.size());}/*** 根据ID查询* @param id ID* @return*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.GET)public Result findById(@PathVariable Long id){return new Result(true,StatusCode.OK,"查询成功",hotelService.findById(id));}/*** 酒店添加操作* @param hotel*/@ResponseBody@RequestMapping(value = "/add",method=RequestMethod.POST)public Result add(Hotel hotel){if(StringUtils.isEmpty(hotel.getName())){return new Result(false,StatusCode.ERROR,"请填写酒店名称");}if(StringUtils.isEmpty(hotel.getImg())){return new Result(false,StatusCode.ERROR,"请上传酒店封面图片");}if(StringUtils.isEmpty(hotel.getAddr())){return new Result(false,StatusCode.ERROR,"请填写酒店地址");}if(StringUtils.isEmpty(hotel.getMiaoshu())){return new Result(false,StatusCode.ERROR,"请填写酒店描述");}hotel.setCommentCount(0);hotel.setStar(0);if(hotelService.add(hotel)==null){return new Result(false,StatusCode.ERROR,"酒店添加失败");}return new Result(true,StatusCode.OK,"添加成功");}/*** 分页+多条件查询* @param searchMap 查询条件封装* @param page 页码* @param size 页大小* @return 分页结果*/@ResponseBody@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){Page<Hotel> pageList = hotelService.findSearch(searchMap, page, size);return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<Hotel>(pageList.getTotalElements(), pageList.getContent()) );}/*** 根据条件查询* @param searchMap* @return*/@ResponseBody@RequestMapping(value="/search",method = RequestMethod.POST)public Result findSearch( @RequestBody Map searchMap){return new Result(true,StatusCode.OK,"查询成功",hotelService.findSearch(searchMap));}/*** 修改* @param hotel*/@ResponseBody@RequestMapping(value="/edit",method= RequestMethod.PUT)public Result update(Hotel hotel){Hotel hotelById = hotelService.findById(hotel.getId());if(hotelById==null){return new Result(false,StatusCode.ERROR,"该酒店信息不存在");}if(StringUtils.isEmpty(hotel.getName())){return new Result(false,StatusCode.ERROR,"请填写酒店名称");}BeanUtils.copyProperties(hotel,hotelById,"id","img","miaoshu","day","startdate","addr","commentCount");if(hotelService.update(hotelById)==null){return new Result(false,StatusCode.ERROR,"酒店编辑失败");}return new Result(true,StatusCode.OK,"修改成功");}/*** 删除* @param id*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.DELETE)public Result delete(@PathVariable String id ){hotelService.deleteById(id);return new Result(true,StatusCode.OK,"删除成功");}/*** 酒店列表跳转路径* @return*/@RequestMapping(value = "/hotelList")public String hotelList(){return "admin/hotelmanage/hotelList";}@RequestMapping(value = "/hotelAdd")public String hotelAdd(){return "admin/hotelmanage/hotelAdd";}/*** 查询单个酒店* @param model* @param id* @return*/@RequestMapping("/oneAttr")public String One_attr(Model model, Long id){Hotel scenic=hotelService.findById(id);model.addAttribute("oneAttr",scenic);return "page/hotelDetail";}@RequestMapping("/local")public String localRefresh(Model model,Long id) {Hotel hotel=hotelService.findById(id);//	Sort sort=new Sort(Sort.Direction.DESC,"star");System.out.println("1111"+hotel.toString());List<Scenic> scenics=scenicService.findByCountryLike(hotel.getAddr());System.out.println("2222"+scenics.toString());Collections.sort(scenics, new Comparator<Scenic>() {@Overridepublic int compare(Scenic o1, Scenic o2) {if (o1.getStart()<o2.getStart()){return 2;}if (o1.getStart().equals(o2.getStart()) ){return 1;}return -1;}});if (scenics.size()>=4){List newList=scenics.subList(0,3);model.addAttribute("scenics",newList);}else {model.addAttribute("scenics",scenics);}return "page/hotelDetail::table_refresh";}
}

源码获取:博客首页 "资源" 里下载!

相关文章:

combotree

1&#xff0c;直接获取&#xff1a; 单选&#xff1a;$("#id").combotree("getValue") 多选&#xff1a;$("#id").combotree("getValues") 注意&#xff1a;如果value中的值和所显示的文本不同&#xff0c;如需获取文本内…

SCRIPT1028:缺少标识符、字符串或数字 jquery ajax

2019独角兽企业重金招聘Python工程师标准>>> SCRIPT1028:缺少标识符、字符串或数字 使用jquery时报此错误 究其原因是对象键值对格式错误&#xff1a; 原格式&#xff1a; 多了一个逗号obj { "usernmae":"zhangsan", "sex"…

IOS 编程中引用第三方的方类库的方法及常见问题

方法一:直接复制全部源文件到项目中 这样的方法就是把第三方类库的全部源文件复制到项目中。直接把全部.h和.m文件拖到XCode项目中就可以。 注意&#xff1a; 1. 假设第三方类库引用了一些系统自带类库。那么在项目中还须要额外引用那些类库。2. 假设当前的项目启用了ARC。而引…

gcc中-pthread和-lpthread的区别

用gcc编译使用了POSIX thread的程序时通常需要加额外的选项&#xff0c;以便使用thread-safe的库及头文件&#xff0c;一些老的书里说直接增加链接选项 -lpthread 就可以了&#xff0c;像这样&#xff1a; Shell代码 gcc -c x.c gcc x.o -ox -lpthread 而gcc手册里则指出应…

Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述本系统功能包括&#xff1a;通知公告&#xff0c;老人管理&#xff0c;护工管理&#xff0c;问答管理等等功能。 二、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&am…

install python+twisted+mysqldb+django on mac

一. install python 1) check install or not 在mac终端输入命令&#xff1a;which python 即可查看python的路径 2&#xff09;未安装时&#xff0c;手动下载安装包 地址&#xff1a;https://www.python.org/downloads/ 选择下载 Mac OS X 64-bit/32-bit installer 安装 二…

JVM优雅退出

在某个Java应用增加新功能,缩容机器,或者应用以及机器发生异常,通常会停止正在运行的应用,该应用通常正在运行着任务,如果停止应用的操作处理不当的话,很有可能会导致数据丢失,损坏,从而影响业务。所以在停止应用的时候,需要考虑如何安全优雅的退出。维护了所有已经注册的钩子,由于jvm本身没有提供好用的方法去移除已经注册的钩子,可以通过反射的方式调用。对于强制关闭的几种情况,会直接停止JVM进程,JVM不会调用已注册的。对于正常关闭、异常关闭的几种情况,JVM关闭前,都会调用已注册的。

网络名词--“环路”

环路一直是网络工程师以及网络运维人员头疼的事&#xff0c;如何防止环路的产生&#xff0c;如何快速找出环路的原因排除故障&#xff0c;是每一个网络从业人员必备的技能。这就要求我们对环路产生的原因了如指掌&#xff0c;本文主要对交换环路进行分析&#xff0c;从分类、形…

希腊字母表及读音

序号大写小写国际音标中文读音意义1Ααa:lf阿尔法角度;系数2Ββbet贝塔磁通系数;角度;系数3Γγga:m伽马电导系数(小写)4Δδdelt德尔塔变动;密度;屈光度5Εεep`silon伊普西龙对数之基数6Ζζzat截塔系数;方位角;阻抗;相对粘度;原子序数7Ηηeit艾塔磁滞系数;效率(小写)8Θθθit西塔温度;相位角9Ιιaiot约塔

loadrunner——win7+LR11配置

一、 安装vmware虚拟机 下载安装vmware15后&#xff0c;可使用密钥为&#xff1a;CG392-4PX5J-H816Z-HYZNG-PQRG2 二、 安装win7系统 2.1下载win7镜像文件 2.2 vmware中创建win7虚拟机 创建过程省略&#xff0c;一键式创建即可&#xff0c;windows产品可使用密钥如下&#xff1…

C++标准库中sstream和strstream的区别

在C有两种字符串流&#xff0c;一种在sstream中定义&#xff0c; 另一种在strstream中定义。 它们实现的东西基本一样。 strstream里包含 class strstreambuf; class istrstream; class ostrstream; class strstream; 它们是基于C类型字符串char*编写的 sstream中包含 class is…

基于jQuery垂直多级导航菜单代码

基于jQuery垂直多级导航菜单代码是一款黑色风格的jQuery竖直导航菜单特效下载。效果图如下&#xff1a; 在线预览 源码下载 实现的代码。 html代码&#xff1a; <ul class"ce"><li> <a class"xz" href"#">目录A</a>…

Java项目:在线考试系统(java+springBoot+vue+Mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 管理员和教师登陆此账号就进入后台&#xff0c;学生登陆此账号就进入前端做题。 老师发布了考试,学生才可以在主页面看到相应的考试信息。 有考试安排表以后,才能给该次考试添加题目,对应数据表是exammanag…

来玩Play框架05 数据库

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; 数据库是整个站点的数据储藏室。用户提交的数据可以存储在数据库中&#xff0c;以便未来使用。Play可以通过JDBC和数据库通信。我讲介绍Play和my…

mysql数据库之linux版本

http://repo.mysql.com/yum/mysql-5.6-community/ 安装 安装方式一(在线安装) # 查看和mysql…

LINUX UMASK详解

一 权限掩码umask umask是chmod配套的&#xff0c;总共为4位&#xff08;gid/uid,属主&#xff0c;组权&#xff0c;其它用户的权限&#xff09;,不过通常用到的是后3个&#xff0c;例如你用chmod 755 file&#xff08;此时这文件的权限是属主读(4)写(2)&#xff0b;执行(1),同…

ubuntu14.04安装hadoop2.6.0(伪分布模式)

版本&#xff1a;虚拟机下安装的ubuntu14.04&#xff08;64位&#xff09;,hadoop-2.6.0 下面是hadoop2.6.0的官方英文教程&#xff1a; http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation hadoop下载…

Java项目:生活旅行分享平台(java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 mysql Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09; 项目技术&#xff1a; Springboot SpringMVC JPA Jsp Htm…

Servlet和SpringMVC补课

1.web.xml加载顺序 http://mianhuaman.iteye.com/blog/1105522 关键点&#xff1a;ServletContext -> context-param -> listener -> filter -> servlet 2.beans xmlns http://www.w3school.com.cn/xml/xml_namespaces.asp 用于避免元素命名冲突。在Spring中应用极…

gdb debug

1. dir 添加源代码查找路径 一般工程的代码会有多路径&#xff0c;gdb会在当前目录下搜索符号对应的代码。利用dir <path> 可以添加代码搜索路径&#xff1b; 例如工程目录&#xff1a; ./ ./dir_1/ ./dir_2/ 可以用如下命令添加代码搜索路径&#xff1a; dir dir…

Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 mysql Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09; 项目技术&#xff1a; Springboot SpringMVC JPA Jsp Htm…

javascript编译与运行机理(1)--

随着学习js的深入就越想了解其内部的运行机理&#xff0c;看了很多文章&#xff0c;感觉下面总结的不错。但囿于个人水平&#xff0c;只是达到了理解层面&#xff0c;还不能提出自己的见解&#xff0c;只好把资料罗列出来&#xff0c;留待以后总结&#xff1a; 1、Javascript的…

Citrix Synergy 2014 重要信息快速一览

今天的互联网、社交媒体的确强大&#xff0c;我们可以足不出户了解到9600公里&#xff08;北京到LA的距离&#xff09;之外的美国发生的事情。今天从Brain Madden大神那儿又扒到了一些经过提炼的关于Citrix Synergy 2014&#xff08;Citrix每年一度的大会&#xff09;的会议内容…

stm32 flash和sram

FLASH是用来存储程序的&#xff0c;SRAM是用来存储程序运行中的中间变量转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/10984065.html

常见主机字节序

常见主机字节序1&#xff0e; Little endian&#xff1a;将低序字节存储在起始地址2&#xff0e; Big endian&#xff1a;将高序字节存储在起始地址LE little-endian最符合人的 思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序&#xff0…

Java项目:仿小米电子产品售卖商城系统(java+SpringBoot+Vue+MySQL+Redis+ElementUI)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目描述&#xff1a;这是一个基于SpringBootVue框架开发的仿小米电子产品售卖商城系统。首先&#xff0c;这是一个前后端分离的项目&#xff0c;代码简洁规范&#xff0c;注释说明详细。其次&#xff0c;这…

在js中使用createElement创建HTML对象和元素

1.创建链接 <script language"javascript"> var o document.body; //创建链接 function createA(url,text) { var a document.createElement("a"); a.href url; a.innerHTML text; a.style.color "red"; o.appendChild(a); …

Leetcode | 3Sum

Given an array S of n integers, are there elements a, b, c in S such that a b c 0? Find all unique triplets in the array which gives the sum of zero. Note:Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)The solution set …

玩转 JavaScript 面试:何为函数式编程?

函数式编程在 JavaScript 领域着实已经成为一个热门话题。就在几年前&#xff0c;很多 JavaScript 程序员甚至都不知道啥是函数式编程&#xff0c;但是就在近三年里我看到过的每一个大型应用的代码库中都包含了函数式编程思想的大规模使用。 函数式编程(缩写为 FP)是一种通过组…

正则表达式分类 区别

原文地址&#xff1a;http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html 正则表达式&#xff1a;在计算机科学中&#xff0c;是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里&#xff0c;正则表达式通常被用…