毕设开源 基于Spring MVC的动态旅游网站设计与实现


0 项目说明

基于Spring MVC的动态旅游网站设计与实现

提示:适合用于课程设计或毕业设计,工作量达标,源码开放


1 项目介绍

对比国内外的旅游网站,国内基本都是一些专业的大公司运作的消费者旅游网站,而非商业性质的旅游信息网站却很少。而本课题选择的这个动态网站建设是基于非商业用途的旅游信息交互式网站,网站的信息来源可以来源于管理者,也可以来源于用户。在用户的基数够大的情况下,会出现很多优质的旅游信息,为其他用户提供服务。

本系统采用三层结构,确定系统的Java作为编程语言,View层采用JSP,Spring 作为整个项目的整合核心管理所有 Bean 的生命周期行为,Dao层采用MyBatis,MySQL作为数据库,SpringMVC 的 Controller作为整个应用的控制器。整个系统要操作方便、易于维护、灵活使用。 本系统采用以上方法,基本实现了用户模块、景点模块、酒店模块、论坛模块、定制模块、留言回复功能,及相应模块的后台管理功能等。

2 技术

使用Java作为开发语言

2.1 后端

  • Spring
  • SpringMVC
  • MyBatis

2.2 前端

  • bootstrap
  • jQuery
  • 数据库
  • MySQL 5.5

2.3 本项目数据库

src/resources/trip_web_db.sql

2.4 工具

  • IDEA
  • Maven
  • Git
  • dropzone

3 项目源码

package cn.zm.trip.web.controller;

import cn.zm.trip.web.commons.Msg;
import cn.zm.trip.web.dao.ForumDao;
import cn.zm.trip.web.domain.Forum;
import cn.zm.trip.web.domain.ForumExample;
import cn.zm.trip.web.domain.User;
import cn.zm.trip.web.domain.ViewPoint;
import cn.zm.trip.web.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping(value = "user")
public class UserController {

	@Autowired
	private UserService userService;
	@Autowired
	private HttpSession session;
	@Autowired
	private ForumDao forumDao;
	@Autowired
	private ForumExample example;

	/**
	 * index页用户登录
	 */
	@RequestMapping(value = "login", method = RequestMethod.POST)
	public String userLogin(String uemail, String upwd, Model model) {
		//index页面登录成功图片显示路径
		String prefix = "/static/upload/useravatar/";
		//index页用户登录验证
		if (uemail == null || uemail == "" || upwd == null || upwd == "") {
			session.setAttribute("msg", Msg.fail("邮箱或密码不可为空!"));
			return "redirect:/index";
		}
		User user = userService.userLogin(new User(uemail, upwd));
		if (user != null) {
			String suffix = user.getUpic();
			user.setUpic(prefix+suffix);
			session.setAttribute("user", user);
			return "redirect:/index";
		} else {
			session.setAttribute("msg", Msg.fail("还未注册或邮箱密码错误,请重新输入!"));
			return "redirect:/index";
		}

	}

	/**
	 * 前台用户注销
	 *
	 * @return
	 */
	@RequestMapping(value = "loginout", method = RequestMethod.GET)
	public String loginOut() {
		session.invalidate();
		return "redirect:/index";
	}

	/**
	 * 跳转注册用户
	 *
	 * @return
	 */
	@RequestMapping(value = "regst", method = RequestMethod.GET)
	public String regst() {
		return "proscenium/user/regst";
	}

	@RequestMapping(value = "regstform", method = RequestMethod.POST)
	public String regst(String uname, String uemail, String upwd, String reupwd, Model model) {
		if (uemail == null || upwd == null || uemail.trim().equals("") || upwd.trim().equals("")) {
			model.addAttribute("msg", Msg.fail("用户名或密码不可为空,请重新输入!"));
		} else if (!reupwd.equals(upwd)) {
			model.addAttribute("msg", Msg.fail("密码不正确请重新输入!"));
		} else {
			userService.insertUser(uname, uemail, upwd);
			model.addAttribute("msg", Msg.success("用户注册成功!"));
		}
		System.out.println(!uemail.trim().equals(""));
		return "proscenium/user/regst";
	}

	/**
	 * 跳转个人信息
	 */
	@RequestMapping(value = "info", method = RequestMethod.GET)
	public String info(String uid) {
		User user = userService.userGet(uid);

		String prefix = "/static/upload/useravatar/";
		String suffix = user.getUpic();

		user.setUpic(prefix+suffix);

		session.setAttribute("user", user);
		System.out.println(user);

		return "proscenium/user/info";
	}

	/**
	 * 跳转编辑信息
	 */
	@RequestMapping(value = "edit", method = RequestMethod.GET)
	public String edit() {
		return "proscenium/user/edit";
	}

	/**
	 * 前台用户个人信息管理
	 */
	@RequestMapping(value = "useredithandle", method = RequestMethod.POST)
	public String userEditHandle(User user) {
		//显示首页的景点
		String prefix = "/static/upload/useravatar/";
		userService.updataUserInfo(user);
		String suffix = user.getUpic();
		user.setUpic(prefix + suffix);
		session.setAttribute("user", userService.userGet(user.getUid()));
		session.setAttribute("msg", Msg.success("用户信息更新成功!"));
		return "proscenium/user/edit";
	}

	/**
	 * 跳转用户发表管理
	 */
	@RequestMapping(value = "forum", method = RequestMethod.GET)
	public String forum(Integer uid, Model model) {
		ForumExample example = new ForumExample();
		example.setOrderByClause("tp_fid desc");
		List<Forum> forums = forumDao.selectByExample(example);
		List<Forum> queryForums = new ArrayList<>();
		for(Forum forum : forums){
			if (uid.equals(forum.getTpAuthorId())){
				queryForums.add(forum);
			}
		}
		model.addAttribute("forums", queryForums);
		return "proscenium/user/forum";
	}

	/**
	 * 用户发表管理单击删除
	 */
	@RequestMapping(value = "forumDelete", method = RequestMethod.GET)
	public String forumDelete(Integer tpFid, Integer uid, Model model) {
		forumDao.deleteByPrimaryKey(tpFid);
		ForumExample example = new ForumExample();
		example.setOrderByClause("tp_fid desc");
		List<Forum> forums = forumDao.selectByExample(example);
		List<Forum> queryForums = new ArrayList<>();
		for(Forum forum : forums){
			if (uid.equals(forum.getTpAuthorId())){
				queryForums.add(forum);
			}
		}
		model.addAttribute("forums", queryForums);
		return "proscenium/user/forum";
	}

	///**
	// * 用户发表论坛编辑
	// */
	//@RequestMapping(value = "forumEdit", method = RequestMethod.GET)
	//public String forumEdit(Integer tpFid, Model model) {
	//	Forum forum = forumDao.selectByPrimaryKey(tpFid);
	//	model.addAttribute("forum", forum);
	//	return "proscenium/user/forum_edit";
	//}
}

4 最后

**项目分享: ** https://gitee.com/asoonis/htw

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java货拉拉源码是一个非常有价值的毕设选题。货拉拉是当前国内领先的物流配送平台,具有较高的商业价值和实用性,因此对于Java开发者来说,研究货拉拉源码具有非常重要的实际意义。 Java货拉拉源码主要包括物流配送的具体实现过程以及各种相关数据的处理和管理。通过研究货拉拉源码,可以了解大型物流配送平台的设计和开发思路,掌握高性能、高效稳定的平台系统开发技巧和方法,提高Java开发技能和水平。 在完成Java货拉拉源码的毕业设计过程中,可以充分利用已有的技术和工具,如Spring、MyBatis等,加深对这些技术的理解和应用,同时也可以通过开发过程中遇到的问题和解决方案,提升自己的能力和经验。 总之,Java货拉拉源码作为毕设选题不仅有较高的实际价值,同时也有很大的研究和学习空间,可以为Java开发者的职业发展和技术提高带来非常实际的帮助。 ### 回答2: Java货拉拉源码毕设是在Java语言环境下,以货拉拉这家物流公司为案例,设计并实现一个货物运输系统的毕业设计项目。该项目的目的是帮助学生深入了解物流运输业务的流程和实现方式,同时锻炼学生的设计和编程能力。 项目的实现需要涉及到多个技术领域,包括Java语言、MySQL数据库、Apache Tomcat服务器、HTML、CSS、JavaScript等。项目主要分为前后端两个部分:前端主要负责设计和实现用户界面和交互逻辑;后端主要负责实现业务处理和数据存储功能。 前端方面,需要使用HTML、CSS、JavaScript等技术实现用户界面和交互逻辑。用户可以通过该系统查询货物运输状态、下单运输服务、管理订单等功能。 后端方面,需要使用Java语言实现业务处理和数据存储功能。主要功能包括货物运输状态查询、订单管理、支付管理、物流路线管理等。 在服务器端,需要使用Apache Tomcat作为Web服务器,运行后端程序,并使用MySQL数据库存储数据。 整个项目的开发需要按照软件开发过程,包括需求分析、设计、编码、测试、上线等各个阶段,能够真实地模拟企业开发项目的全过程。 总的来说,Java货拉拉源码毕设是一个非常有价值的实践项目,能够让学生通过实际开发,积累实践经验,提高解决问题的能力,同时也能够锻炼团队协作和项目管理的能力。 ### 回答3: Java货拉拉源码毕设是一个在计算机科学领域非常常见的方向,也是许多IT专业学生毕业论文的选题。该项目主要通过使用Java语言编写代码实现一个类似于货拉拉的物流配送系统,使用数据库技术进行数据的存储和管理,使用户能够方便快捷地进行货物运输配送。项目的实现需要使用到许多Java技术和工具,如JSP、Servlet、JavaBean、Struts、Spring、Hibernate等。 Java货拉拉源码毕设包括了货物管理系统、司机管理系统、订单管理系统和客户管理系统,实现了司机在线接单、实时定位、支付管理等功能,包括了支付宝、微信等移动支付渠道。 在实现该项目时,需要进行完整的需求分析和设计,考虑到系统的结构、模块和功能,依据系统构建原则进行架构设计和系统实现。同时,还需要进行测试和优化,确保该系统能够满足用户的需求和要求。 该项目涉及到很多技术和知识点,需要具备一定的编程能力、系统设计和解决问题的能力,也需要有一定的团队协作和沟通能力。因此,对于计算机科学相关专业的大学生来说,选择Java货拉拉源码毕设是一个非常好的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值