该项目为大二下学期学校网课培训javaEE的教学内容,主要框架SSM+springboot,主要难点springboot运用起来也较为容易理解SSM框架则为我们学习过的内容,之后又通过该项目的SSM内容更加深刻理解SSM框架的相关知识,灵活运用各个模块减少代码冗余,提高代码复用性。
一、项目展示
二、WEB网站开发基本流程
1、jdk安装与配置
1、此电脑—>属性—>高级系统
2、新建系统变量
变量名:JAVA_HOME
变量值:JDK的安装目录(到bin目录的上一层)
3、将 %JAVA_HOME%\bin 添加到Path变量中。 %环境变量名% 引用某指定的环境变量
4、打开DOS系统,输入javac,验证是否配置成功。
2、tomcat安装与配置
1.下载tomcat8 ,官网地址:http://tomcat.apache.org/
根据自己电脑的系统 ,下载对应的版本zip ,我下载的是window64位的zip包
2.解压缩apache-tomcat-8.5.11-windows-x64.zip到D盘
3.环境变量配置
3.1系统变量 ,新增 CATALINA_HOME,地址就是刚才文件夹 ,不需要带/bin
3.2,PATH中 ,末尾新添加%CATALINA_HOME%\bin;%CATALINA_HOME%\lib
4.命令
在tomcat目录\bin目录中 ,运行命令行 ,输入 service.bat install
稍候提示 the service “tomcat8” has been installed ,则表示成功
5.测试
在tomcat\bin目录 ,双击 tomcat8W.exe 图形界面程序 ,在弹出的图形界面中 ,点击start ,运行tomcat ,浏览器输入localhost:8080 ,访问!
三、E-BUY电商网前后台步骤
1、项目介绍
本次实训是以SSM+springboot框架系统的开发,页面设计已经直接给我们了,我们主要实现项目的前后台功能,其中前台功能模块包括首页模块、用户注册模块、用户登录模块、新闻动态模块、分类商品信息展示模块、商品详情模块、购物车模块、收货地址模块、留言簿模块,后台功能模块有:用户信息管理模块、商品信息管理模块、订单管理模块、留言簿管理模块、新闻管理模块,在此项目中我主要负责首页模块、商品详情模块、订单管理模块、用户信息管理模块。
2、项目工程搭建、git管理、环境配置
打开idea在创建页面选择Configua中选择Settings选项
在Settings for New Projects中选择Build,Execution,Deployment中的Maven进入图示页面,并进行设置Maven home directory选择我们自己下载的maven路径,并且设置User Setting file中选择maven中的settings.xml文件。
点击Create New Project进入该页面,并且按照要求填写好项目信息,上图是我个人创建的易购网项目的名称。
点击下一步后会出现该页面,需要我们选择web中的Spring Web和SQL中的MyBatis Framework和MySQL Driver并在Selectd Depedencies中能看到我们选择了的依赖。
我们创建完毕之后通过打开的Idea中选择File–>Settings中查看我们的Maven路径跟我们在创建项目中的Settings是否一致,查看路径没有问题继续下一步。
然后我们查看pom.xml是否有错误显示,一开始进入可能会报错,这是因为还没有下载完成,需要我们等待,如果有个别时报错的我们需要点击pom.xml中的m小图标进行更新下载操作,待更新下载完成之后错误会自动消失。
然后我们在Run Configurations中进行选择配置tomcat,我们打开Templates中找到Tomcat Server,选择Local进行操作。
在Templates中找到Tomcat Server后再Application server中点击Configure进入Tomcat Home路径选择,选择我们下载好的Tomcat的存放路径,选择完成之后点击ok,最后apply。
然后我们又在Run/Debug Configurations中找到+号的图标如图所示,再找到Tomcat Server进行配置,因为我们之前设置了Templates所以我们可以在添加的Tomcat Server中可以看到已经有Tomcat Server的路径了所以路径我们无需再做操作。
我们添加Tomcat后我们的Tomcat图标上有个大红叉,我们需要把我们的端口号做修改,这里我设置为8088,不能使用8080,因为我们的myeclipse已经存在该端口号了,否则,运行时会显示该端口号已被占用的错误提示,然后是需要我们进行fix操作,如图所示。
fix完成后在Deploment中在右框中选择+号找到该项目的war,并设置Application context为/,在这里需要我们把项目名去除,按照个人习惯。
3、用户管理模块
(1)模块功能介绍
该模块主要是能够查看到所有用户信息以及对用户信息进行操作。
(2)DAO层实现
在项目的cn.easybuy.dao.user包中,创建UserMapper.java的接口文件,代码如下:
@Mapper
public interface UserMapper {
public int add(User user);//新增用户信息
public int update(User user) ;//更新用户信息
public int deleteUserById(@Param("id") Integer id);//根据id删除用户
public List<User> getUserList(@Param("currentPageNo") Integer currentPageNo,
@Param("pageSize") Integer pageSize);//用户列表分页显示
public Integer count();//统计用户总数
//根据id 或名字查询用户
public User getUser(@Param("id")Integer id,
@Param("loginName")String loginName) ;
}
在UserMapper.xml中,添加getUser()接口的实现,实现根据id 或名字查询用户功能,代码如下:
<mapper namespace="cn.easybuy.dao.user.UserMapper">
<insert id="add" parameterType="User">
INSERT INTO easybuy_user
(loginName,
userName,
password,
sex,
identityCode,
email,
mobile,
type
)
VALUES
(#{loginName},
#{userName},
#{password},
#{sex},
#{identityCode},
#{email},
#{mobile},
#{type}
)
</insert>
<update id="update" parameterType="User">
UPDATE easybuy_user
SET
loginName = #{loginName},
userName = #{userName} ,
password = #{password} ,
sex = #{sex} ,
identityCode = #{identityCode} ,
email = #{email} ,
mobile = #{mobile} ,
type = #{type}
WHERE
id = #{id}
</update>
<delete id="deleteUserById" >
DELETE FROM easybuy_user WHERE id=#{id}
</delete>
<select id="getUserList" resultType="User">
SELECT *
FROM easybuy_user
LIMIT #{currentPageNo},#{pageSize}
</select>
<select id="count" resultType="Integer">
SELECT count(1)
FROM easybuy_user
</select>
<select id="getUser" resultType="User">
SELECT *
FROM easybuy_user
<where>
<if test="id!=null and id!=''">
and id=#{id}
</if>
<if test="loginName!=null and loginName!=''">
and loginName=#{loginName}
</if>
</where>
</select>
</mapper>
(3)Service层实现
在UserServiceImpl中,实现的相关功能方法,其代码如下所示。
/**
*@author XIAO
*@Description 用户service实现层
*@Date 10:57 2020/6/24
*/
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserMapper userMapper;
@Resource
private UserAddressMapper userAddressMapper;
/**
*@author XIAO
*@Description 添加用户
*@Date 11:50 2020/6/24
*@Param [user]
*@return boolean
*/
@Override
@Transactional
public boolean add(User user) {
return userMapper.add(user)>0;
}
/**
*@author XIAO
*@Description 修改用户信息
*@Date 11:50 2020/6/24
*@Param [user]
*@return boolean
*/
@Override
@Transactional
public boolean update(User user) {
return userMapper.update(user)>0;
}
/**
*@author XIAO
*@Description 通过用户Id删除用户
*@Date 11:50 2020/6/24
*@Param [userId]
*@return boolean
*/
@Override
@Transactional
public boolean deleteUserById(Integer userId) {
return userMapper.deleteUserById(userId)>0;
}
/**
*@author XIAO
*@Description 通过条件获得用户信息
*@Date 11:51 2020/6/24
*@Param [userId, loginName]
*@return cn.easybuy.pojo.User
*/
@Override
public User getUser(Integer userId, String loginName) {
return userMapper.getUser(userId,loginName);
}
/**
*@author XIAO
*@Description 通过条件查询用户列表
*@Date 11:51 2020/6/24
*@Param [currentPageNo, pageSize]
*@return java.util.List<cn.easybuy.pojo.User>
*/
@Override
public List<User> getUserList(Integer currentPageNo, Integer pageSize) {
return userMapper.getUserList((currentPageNo-1)*pageSize, pageSize);
}
/**
*@author XIAO
*@Description 获得用户数目
*@Date 11:51 2020/6/24
*@Param []
*@return int
*/
@Override
public int count() {
return userMapper.count();
}
/**
*@author 肖晓丹
*@Description 通过用户id查询到地址
*@Date 11:53 2020/6/24
*@Param [addressId]
*@return cn.easybuy.pojo.UserAddress
*/
@Override
public UserAddress getUserAddressById(Integer userId) {
return userAddressMapper.getUserAddressById(userId);
}
/**
*@author XIAO
*@Description 通过条件查询到地址列表
*@Date 11:58 2020/6/24
*@Param [currentPageNo, pageSize]
*@return java.util.List<cn.easybuy.pojo.UserAddress>
*/
@Override
public List<UserAddress> queryUserAddressList(Integer currentPageNo, Integer pageSize) {
return userAddressMapper.queryUserAddressList(currentPageNo, pageSize);
}
}
(4)Controller层实现
/**
*@author XIAO
*@Description 管理员添加用户
*@Date 13:56 2020/6/24
*@Param [request, response, session]
*@return java.lang.String
*/
@RequestMapping("/Adminadd")
public String Adminadd(HttpServletRequest request, HttpServletResponse response, HttpSession session){
String loginName = request.getParameter("loginName");
String password = request.getParameter("password");
String userName = request.getParameter("userName");
Integer sex = Integer.valueOf(request.getParameter("sex"));
System.out.println(sex+"----------------------");
String identityCode = request.getParameter("identityCode");
String email = request.getParameter("email");
String mobile = request.getParameter("mobile");
Integer type = Integer.valueOf(request.getParameter("type"));
User user = new User();
user.setLoginName(loginName);
user.setPassword(DigestUtils.md5Hex(password));
user.setUserName(userName);
user.setSex(sex);
user.setIdentityCode(identityCode);
user.setEmail(email);
user.setMobile(mobile);
user.setType(type);
userService.add(user);
session.setAttribute("user",user);
return "backend/user/userList";
}
/**
*@author XIAO
*@Description 删除用户操作
*@Date 13:57 2020/6/24
*@Param [request]
*@return java.lang.String
*/
@RequestMapping("/deleteUser")
public String deleteUser(HttpServletRequest request){
Integer id = Integer.valueOf(request.getParameter("id"));
userService.deleteUserById(id);
return "backend/user/userList";
}
/**
*@author XIAO
*@Description 进入修改用户页面
*@Date 13:57 2020/6/24
*@Param [request]
*@return java.lang.String
*/
@RequestMapping("/modifyUser")
public String modifyuser(HttpServletRequest request){
Integer id = Integer.valueOf(request.getParameter("id"));
String loginName = request.getParameter("loginName");
User user = userService.getUser(id,loginName);
request.setAttribute("user",user);
return "backend/user/toUpdateUser";
}
/**
*@author XIAO
*@Description 用户信息修改
*@Date 13:57 2020/6/24
*@Param [request, session]
*@return java.lang.String
*/
@RequestMapping("/modifyInfo")
public String modifyInfo(HttpServletRequest request ,HttpSession session){
Integer id = Integer.valueOf(request.getParameter("id"));
String loginName = request.getParameter("loginName");
String password = request.getParameter("password");
String userName = request.getParameter("userName");
Integer sex = Integer.valueOf(request.getParameter("sex"));
System.out.println(sex+"----------------------");
String identityCode = request.getParameter("identityCode");
String email = request.getParameter("email");
String mobile = request.getParameter("mobile");
Integer type = Integer.valueOf(request.getParameter("type"));
User user = new User();
user.setId(id);
user.setLoginName(loginName);
user.setPassword(DigestUtils.md5Hex(password));
user.setUserName(userName);
user.setSex(sex);
user.setIdentityCode(identityCode);
user.setEmail(email);
user.setMobile(mobile);
user.setType(type);
userService.update(user);
return "backend/user/userList";
}
/**
*@author XIAO
*@Description 管理员进入管理中心显示所有用户列表
*@Date 14:09 2020/6/24
*@Param [request, session]
*@return java.lang.String
*/
@RequestMapping("/main")
public String index(HttpServletRequest request,HttpSession session){
List<User> userList = userService.getUserList(1,20);
request.setAttribute("userList",userList);
return "backend/user/userList";
}
/**
*@author XIAO
*@Description 跳转到查看个人用户信息页面
*@Date 14:11 2020/6/24
*@Param [request]
*@return java.lang.String
*/
@RequestMapping("/touserInfo")
public String touserInfo(HttpServletRequest request){
return "backend/user/userInfo";
}
/**
*@author XIAO
*@Description /跳转到添加用户页面
*@Date 14:11 2020/6/24
*@Param []
*@return java.lang.String
*/
@RequestMapping("/toaddUser")
public String toAddUser(){
return "backend/user/toUpdateUser";
}
/**
*@author XIAO
*@Description 显示所有用户信息
*@Date 13:58 2020/6/24
*@Param [model, currentPageNo]
*@return java.lang.String
*/
@RequestMapping("/list")
public String list(Model model,
@RequestParam(value = "currentPageNo",required = false) Integer currentPageNo){
Integer pageSize =5;
if(currentPageNo==null){
currentPageNo=1;
}
List<User> userList = userService.getUserList(currentPageNo,pageSize);
model.addAttribute("userList",userList);
return "backend/user/userList";
}
基于SSM+springboot框架系统的易购网项目完整代码:https://github.com/xxd6772123/eaeasybuy-master
基于JSP框架系统的易购网项目完整代码:https://github.com/xxd6772123/EasyBuy—JSP-Servlet
四、实习结论、心得体会
1、实习结论
(1)实习的目的
通过本次生产实习,培养在校学生应具备的基本技能。
(2)实习总结
本次实习时间不算特别长,为期五天的生产实习感觉每一天都过得特别充实,在本次生产实习中也学会了很多,例如最主要是开始用springboot来写项目这是之前自己没有过的,虽然班上很多同学在之前都接触过但对我来说是第一次,而且本次实习中也是自己第一次开始用idea来写项目,之前自己一直都知道Idea这个软件,但处于陌生的状态,一直不熟悉就一直不敢用,本次项目中一直用Idea来写项目,让自己也看到了一个新的工具的强大之处,在生产实习的过程当中,遇到了很多错误,同时也不断修改了错误,在错了改,改了错,错了还改,改了还错的循环之中不断前行,还好所有的一切都值得的,当我把页面显示出现,功能能够使用时,内心可以说是无比的欣慰的,因为自己一切都努力都没有白费,即使在某些地方还是存在着不足,我相信,一直坚持下去,一定会完善好的,在本次生产实习中也看到了很多同学的厉害之处,老师专业性也非常强,这让我都学习到了很多,转眼到了,生产实习结束的日子,紧张的日子暂时结束,这几天也是高效率的几天,大脑不断运作的几天,结束不代表什么,路还在那里。
2、心得体会
经过本次生产实习发现了自己很多不足的地方,对整体布局功能作用把握不够准确,容易在一个地方陷进去就出不了来,没有很好的思维结构,总感觉是有门自己就开门,没有想过自己也能够创建门,整个过程让我感觉到自己处于一个很被动地环境,处于被动会容易忘记整体格局,只关注小地方,不会大处着眼,小处着手,希望在未来的日子里自己能够做出改变,能够主动的去想到,有一套自己的学习习惯,短短的五天值得让自己思考一下为什么过程变得困难,是否之前没懂还是过了段时间结果给忘记了,紧张的日子就要结束了,也希望自己能够在之后一直保持着这种学习状态,不断往前走,尽量少原地踏步以及往回走了,还有就是也希望自己能够不要想那么多,多试试不一样的思路,要一直有一颗学习的心。
如果你觉得我这篇文章不错或者帮助到了你可以在本篇文章中给我点一个赞,您的一个小小鼓励,将会是我在敲码路上的大大动力!!!!