• 基于SSM的旅游网站系统


    基于SSM的旅游网站系统【附源码文档】、前后端分离

    • 开发语言:Java
    • 数据库:MySQL
    • 技术:Spring+SpringMVC+MyBatis+Vue
    • 工具:IDEA/Ecilpse、Navicat、Maven

    【主要功能】

      角色:管理员、用户

    • 管理员:用户管理、景点信息管理、购票信息管理、酒店信息管理、客房类型管理、客房信息管理、客房预订管理、交流论坛、系统管理、轮播图管理等。

    • 用户:购票信息管理、客房预订管理、我的收藏管理、景点信息、酒店信息、客房信息、交流论坛、红色文化、个人中心、客服咨询等。


    系统展示

    首页

    在这里插入图片描述
    景点列表

    在这里插入图片描述
    酒店列表
    在这里插入图片描述
    客房列表

    在这里插入图片描述
    客房详情

    客房与景点相同都可以进行预定。

    在这里插入图片描述
    用户后台

    在这里插入图片描述
    管理员界面

    在这里插入图片描述

    代码展示

    @Controller
    @RequestMapping("/adminUser")
    
    public class AdminController {
    
    	@Autowired
    	private UserScoreService userScoreService;
    	
    	@Autowired
    	private ProjectService projectService;
    	
    	@Autowired
    	private UserService userService;
    	
    	@Autowired
    	private AdminService adminService;
    
    	@Autowired
    	private AdminScoreService adminScoreService;
    	
    	/**
    	 * 用户的登陆
    	 * @return
    	 */
    	@RequestMapping(value="login.do",method=RequestMethod.GET)
    	public ModelAndView login()
    	{
    		return new ModelAndView("adminUser/login");	
    	}
    	/**
    	 * 用户登陆提交 校验
    	 * 账号统一采用  用户名
    	 */
    	@RequestMapping(value="login.do",method=RequestMethod.POST)
    	public ModelAndView login(String name,String password,HttpServletRequest request)
    	{
          String isUser=request.getParameter("user");
          //登陆 
          if(isUser!=null)
    	   {
    		 User user =userService.checkPassword(name, password);
    		 if(user!=null)
    		  {
    		 
    			  ModelAndView modelAndView =new ModelAndView("redirect:/");//跳转
    		      request.getSession().setAttribute("user", user);
    			  return modelAndView;	
    		  }	
    		 
    	   }
          else
          {
    	  Admin adminUser= adminService.checkPassword(name, password);
    	  if(adminUser!=null)
    	  {
    		  System.out.println("登录成功");
    		  //成功后保存账号session全局保存
    		  ModelAndView modelAndView =new ModelAndView("redirect:/");	      
    	      request.getSession().setAttribute("adminUser", adminUser);
    		  return modelAndView;	
    
    	  }
    	    ModelAndView modelAndView=new ModelAndView("adminUser/login");
    	    modelAndView.addObject("message","账号密码错误");
    		return modelAndView;
    	}
            ModelAndView modelAndView=new ModelAndView("adminUser/login");
    	    modelAndView.addObject("message","账号密码错误");
    		return modelAndView;
    
    	}
    	
    	@RequestMapping(value="adminscore.do")
    	public ModelAndView adminscore(HttpServletRequest request,HttpServletResponse response)
    	{
    		ModelAndView modelAndView =new ModelAndView("adminUser/listscore");		
    		AdminScore adminScore=new AdminScore();
    		Admin admin=(Admin) request.getSession().getAttribute("adminUser");
    		adminScore.setAdminId(admin.getId());
            List<AdminScore> AdminScoreList=adminScoreService.selectList(adminScore);
    		modelAndView.addObject("AdminScoreList",AdminScoreList);
    		return modelAndView;
    	}
    	
    	
    	
    	
    /**
     * 账号的登出
     * @param account 
     * @param password
     * @return
     */
    	@RequestMapping(value="logout.do")
    	public ModelAndView logout(HttpServletRequest request,HttpServletResponse response)
    	{
    		//销毁账户数据
    		request.getSession().invalidate();
    		ModelAndView modelAndView =new ModelAndView("adminUser/login");		
    		return modelAndView;
    	}
    	
    	
    	/**
    	 * 
    	 * @param req
    	 * @param resp
    	 * @return
    	 */
    	@RequestMapping(value="evaluate.do",method=RequestMethod.GET)
    	public ModelAndView evaluate(HttpServletRequest req,HttpServletResponse resp)
    	{
    		List<Admin>adminList=adminService.selectList();
       		ModelAndView modelAndView = new ModelAndView("user/listadmin");
       		modelAndView.addObject("adminList",adminList);   		
       		return modelAndView;
    	}	
    
    	/**
    	 * 转到密码修改页面
    	 * @param resp
    	 * @param req
    	 * @return
    	 */
    	@RequestMapping(value="updatePassword.do",method=RequestMethod.GET)
    	public ModelAndView updatePassword(HttpServletResponse resp,HttpServletRequest req)
    	{
    		
    		return new ModelAndView("adminUser/resetPassword");	
    	}
    	/**
    	 * 密码修改提交
    	 * @param resp
    	 * @param req
    	 * @return
    	 */
    	@RequestMapping("resetPassword.do")
    	public @ResponseBody AjaxResult updatePasswordSubmit(
    			String password,Long id,HttpServletResponse resp,
    			HttpServletRequest req)
    	{
    			
    		//根据管理员的id来修改当前的账户密码
    		Admin admin=new Admin();
    		admin.setId(id);
    		admin=adminService.selectOne(admin);//以对象来查询
    		//修改密码并提交
    		admin.setPassword(password);			
    		adminService.update(admin);
    		return new AjaxResult().successInstance("提交成功,重新登陆生效");
    		
    	}
    	
    	/**
    	 * 转到裁判添加界面
    	 * @return
    	 */
    	@RequestMapping(value="add.do",method=RequestMethod.GET)
    	public  ModelAndView add()
    	{
    		return new ModelAndView("/adminUser/add");
    	}
    	/**
    	 * 新建裁判账号
    	 * @return
    	 */
    	@RequestMapping(value="add.do",method=RequestMethod.POST)
    	public  @ResponseBody AjaxResult addSubmit(HttpServletRequest request,HttpServletResponse response)
    	{
    		
    		String role=request.getParameter("role");
            String name=request.getParameter("name");
    		String password=request.getParameter("password");
    		String description=request.getParameter("description");
    		String phone=request.getParameter("phone");
    		String realname=request.getParameter("realname");
    
    		/*
    		 * 校验
    		 */
    		if(CommonUtils.isEmpty(name)||CommonUtils.isEmpty(password)||CommonUtils.isEmpty(description)
    				||CommonUtils.isEmpty(phone)||CommonUtils.isEmpty(realname))
    		{
    			return AjaxResult.errorInstance("请填写所有信息");
    			
    		}
    		/*
    		 * 不允许重复id
    		 * 
    		 */
    		Admin admin=new Admin();
    		admin.setName(name);
    	    if(adminService.isExisted(admin))
    	    {
    	    	return AjaxResult.errorInstance("提交失败,账号已经存在");
    	    }
    		admin.setPassword(password);
    		admin.setRealname(name);
    		admin.setDescription(description);
    		admin.setRealname(realname);
    		admin.setPhone(phone);
            if(role!=null)//当前是裁判长
            {
        	   admin.setRoleid(true);
            }
            else
            {
         	   admin.setRoleid(false);
            }
            
            adminService.insert(admin);
            return AjaxResult.successInstance("提交成功");
    	}
    	
    	/**
    	 * 转到裁判审核成绩界面
    	 * @return
    	 */
    		@RequestMapping("/score2.do")
    		public ModelAndView score(HttpServletRequest request,HttpServletResponse response)
    		{
    			List<Project> projectList=projectService.selectList();	
    			request.setAttribute("projectList", projectList);
    			//遍历当前项目的所有项目并且将项目保存在score里的select标签里
    			
    			return new ModelAndView("/adminUser/score2");
    					
    		}	
    	
    		/**
    		 * 显示以通过的成绩的信息
    		 * @param request
    		 * @param response
    		 * @return
    		 */
    		
    		@RequestMapping("/showscore.do")
    		public ModelAndView showscore(HttpServletRequest request,HttpServletResponse response)
    		{
    			ModelAndView modelAndView = new ModelAndView("/adminUser/listscore");
    
    			 //需要projectid
    		    UserScore userScore= new UserScore();
    			String name=request.getParameter("project");
    			Project project = new Project();
    			project.setName(name);
    			project=projectService.selectOne(project);
    		    userScore.setProjectId(project.getId());
    		    userScore=userScoreService.selectOne(userScore);
    		    List<UserScore> userScoreList=userScoreService.selectLast(userScore);
    			modelAndView.addObject("userScoreList",userScoreList);
    		    return modelAndView;
    		}
    		  
    	
    	
    	
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259

    研究背景

      基于SSM(Spring + Spring MVC + MyBatis)的旅游网站系统的研究背景可以涉及多个方面,这取决于具体的研究目的和问题,以下是一些可能的背景信息:

    1. 旅游业的增长:随着全球旅游业的不断增长,旅游业已成为全球最大的产业之一。这种增长激发了对旅游网站和在线旅游预订系统的需求。

    2. 技术的迅速发展:信息技术和互联网的快速发展为旅游业提供了巨大的机会,使得在线旅游预订、信息检索和用户体验变得更加便捷和高效。

    3. 用户需求和期望:现代旅游者越来越依赖于互联网来计划和预订他们的旅行。他们期望能够轻松地浏览目的地信息、查找住宿、预订机票、租车等,这就需要强大的在线旅游系统。

    4. 技术栈的选择:SSM框架组合在Java开发中非常流行,因为它们提供了一套强大的工具和框架,用于构建可扩展、高效和可维护的Web应用程序。因此,选择SSM作为开发旅游网站系统的技术栈具有一定的合理性。

    5. 市场竞争:在线旅游市场竞争激烈,为了在这个竞争激烈的领域中脱颖而出,开发一个高质量、高性能的旅游网站系统至关重要。

    数据安全和隐私:旅游网站系统需要处理大量敏感的用户数据,因此数据安全和隐私保护成为一个重要的研究和实施考虑因素。

      综上所述,基于SSM的旅游网站系统的研究背景可以从旅游业的增长、技术的发展、用户需求、技术栈选择、市场竞争以及数据安全等多个方面展开,这些因素共同推动了对这一领域的研究和开发工作。研究人员可以根据具体的研究目标和问题,深入研究旅游网站系统的各个方面,以满足不断增长的市场需求。

    研究目的

      基于SSM(Spring、Spring MVC、MyBatis)的旅游网站系统的研究目的通常包括以下方面:

    1. 系统开发与设计:研究旅游网站系统的设计和开发,包括前端和后端的架构,数据库设计,用户界面设计等。这有助于了解如何使用SSM框架来构建稳健和高效的旅游网站。

    2. 性能优化:通过研究和优化SSM框架的配置和代码,提高系统的性能和响应时间,以确保用户在访问网站时能够获得良好的体验。

    3. 安全性:研究如何在旅游网站系统中实施安全措施,以保护用户数据和系统免受潜在的威胁和攻击。

    4. 用户体验:研究如何改进用户界面,以提供更好的用户体验,包括易用性、可访问性和响应性。

    5. 数据管理和分析:研究如何使用MyBatis来管理和访问数据库,以支持旅游网站的数据需求,并可能包括数据分析和报告生成。

    6. 整合第三方服务:研究如何整合第三方服务,如支付网关、地图服务、社交媒体等,以增强旅游网站的功能和吸引力。

    7. 用户推荐和个性化:研究如何利用SSM框架和用户数据来实现个性化的旅游建议和推荐功能,以提高用户满意度。

    8. 商业模型:研究如何构建和改进旅游网站的商业模型,包括收入来源、定价策略和市场推广等。

      总的来说,基于SSM的旅游网站系统的研究目的是建立一个功能齐全、性能优越、安全可靠、用户友好的旅游网站,以满足用户需求并创造商业价值。这个研究可以涵盖从系统设计到实际开发和维护的各个方面。

    研究意义

      基于SSM(Spring、Spring MVC、MyBatis)的旅游网站系统研究具有以下重要意义:

    1. 提高旅游业竞争力:旅游业是一个竞争激烈的领域,一个高效、安全、用户友好的网站系统可以帮助旅游公司或机构在市场上脱颖而出。通过研究和开发基于SSM的系统,可以提高业务的竞争力。

    2. 提升用户体验:旅游网站的用户体验对于吸引和保留用户至关重要。研究可以帮助改进用户界面、提高网站性能、增强安全性,从而提供更好的用户体验。

    3. 数据管理和分析:旅游业需要大量的数据管理和分析,以了解用户趋势、市场需求和预测未来趋势。研究如何使用MyBatis等技术来管理和分析数据对于业务决策至关重要。

    4. 安全性和隐私保护:旅游网站涉及用户个人信息和支付数据,因此安全性和隐私保护是至关重要的。研究可以帮助设计和实施强大的安全措施,以防止数据泄露和恶意攻击。

    5. 技术创新:研究基于SSM的旅游网站系统可以促进技术创新。它可以探索新的开发方法、集成第三方服务、实施个性化推荐和使用最新的前端技术,从而使网站更具吸引力。

    6. 业务增长:一个成功的旅游网站可以帮助旅游公司扩大业务。通过研究和不断改进系统,可以支持业务的增长和拓展。

    7. 效益与效率:SSM框架提供了许多现成的工具和库,可以提高开发效率。研究如何有效地使用这些工具可以减少开发时间和成本,提高系统的效益。

    8. 知识分享和传承:研究基于SSM的旅游网站系统有助于积累和传承相关技术知识,为开发者和研究者提供有价值的经验和见解。

    总结

      总的来说,基于SSM的旅游网站系统研究对于提高旅游业的效率、安全性和竞争力,以及提供更好的用户体验都具有重要意义。它有助于满足市场需求,创造商业价值,并推动旅游业向前发展。

  • 相关阅读:
    【JavaScript高级进阶】初识类,函数进阶,如何改变this指向
    数据分析入门全攻略:从新手到专家
    WordPress管理仪表板:在15分钟内成为WordPress专家
    【黄啊码】垃圾回收可以赚钱,那php的垃圾回收机制你懂多少?
    LLM模型-讯飞星火与百度文心api调用
    wxpython设计GUI:窗口Frame最大化、最小化、关闭及全屏显示的说明
    再来了解机器学习和深度学习_有监督机器学习_无监督机器学习---人工智能工作笔记0018
    苹果笔记本充不了电的解决办法
    shell 学习笔记
    oa系统是什么?有哪些功能和作用?
  • 原文地址:https://blog.csdn.net/2301_78335941/article/details/132864052