环境配置
创建项目
默认的配置文件位于C盘用户目录下的.m2/setting.xml中,如下图所示,添加属性值archetypeCatalog internal
这样就可以Finish了,但是数据包是从外网下载的,下载速度比较慢,我当时利用这种方式下了近1个小时,最终失败了。下面介绍另一种配置项目的方法。
在上一张图片的中修改一些配置,修改情况如下。
下载Maven,下载地址
解压到本地,下载的Maven请配置其环境变量,这是我的环境变量
运行mvn -v命令显示下面代码表示配置成功
修改C盘用户目录下的.m2/setting.xml文件,修改镜像源,为阿里镜像源
<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror>
另一种配置的效果图如下
配置xml文件
这里配置较多,不方便贴上来,修改的地方主要有以下几处
根据自身需求修改pom.xml以下内容
配置webapp下WEB-INF的web.xml文件
在main文件中新建resources文件夹,存放项目的一些配置文件
项目编码
后端
在main目录新建java文件夹,然后新建package,com.zr.bean,com.zr.controller,com.zr.dao,com.zr.service
bean目录下,新建实体类User,鼠标右键,可以快速生成get,set方法,以及构造方法,这些方法都是自动生成的,就不贴上来了。
在controller控制层新建UserController类,读取视图表现层的数据,控制用户的输入。
package com.zr.controller;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping
public class UserController {
@Autowired
private IUserService userService;
@RequestMapping("login.do")
public ModelAndView login(String username,String password){
boolean flag = userService.login(username, password);
ModelAndView modelAndView = new ModelAndView();
if(flag==true){
modelAndView.setViewName("../ok");
}else {
modelAndView.setViewName("../failure");
}
return modelAndView;
}
}
dao提供前后端数据传递的接口
package com.zr.dao;
import com.zr.bean.User;
public interface IUserDao {
User findUserByUserName(String username);
}
service业务层,根据系统的实际业务需求进行逻辑代码,为了规范使用了接口
package com.zr.service;
public interface IUserService {
boolean login(String username, String password);
}
package com.zr.service.impl;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private IUserDao userDao;
@Override
public boolean login(String username, String password) {
User user = userDao.findUserByUserName(username);
if(user!=null&&user.getPassword().equals(password)){
return true;
}
return false;
}
}
前端
登录界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form action="login.do" method="post" autocomplete="on">
userName:<input type="text" name="username" /><br />
password: <input type="password" name="password" autocomplete="off" /><br />
<input type="submit" value="登录"/>
</form>
</body>
</html>
登录失败
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
The User does not exist or password is incorrect
</body>
</html>
登录成功
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Login successfully
</body>
</html>
坑
架包不存在,右键加ctrl能找到对应的架包,错误原因,没有更改在创建项目时Maven的路径,使用了ide默认的路径。
可以看到我使用项目默认的Maven路径,可以看到这里Maven的版本为3.6.3,而我本地使用Maven版本为3.6.0,可能这里发生了冲突,下面是错误的截图。注意在这里直接更改路径,是没用的,要在创建项目时就把路径设置好。因为下载的包都是基于你的Maven版本。
页面数据传不到后台,我在控制层,设置了@RequestMapping(“login.do”)响应页面的请求,利用ModelAndView处理数据,要注意这里参数的名字要和Form表单中标签的name相同。
运行效果图
代码上传到了GitHub