环境准备
Eclipse
jdk1.8
Maven 3.2.1(集成在Eclipse中)
以前我已经过用eclipse搭建Spring MVC框架环境的实战了,那么这次再做会有什么区别呢。其实看题目已略可知一二了,除了这次是利用Maven之外,最主要的是Spring boot。其实写这两种方式是为了对比,让大家对spring boot有个大概的了解,它使得我们搭环境跟以前有什么不同。在“反射包:java.lang.reflect”学习完之后我将进入spring boot的学习系列,在此算做个预习。
还有一个想说的就是“手把手实战”系列会有大量的截图,故占用版面比较多,但其实文字性质的东西并不多,都是步骤的关键说明。为什么这样呢,因为我发现网上有好多教程都有教大家怎么搭,但总有些看似很容易,但其实对于新手来说很关键的东西没有说明,导致很多新手同学搭建时有一堆疑问,进而搭建出一堆问题。比如,都有写建某个类,要引入某个xml但却没有明确说明这些文件放在哪些目录中。作者在写的时候都以为这种默认的东西大家都知道的啦,不必说得那么详细的。其实不是的,我相信大多数找这种搭建环境类的同学都是没怎么有这方面经验的同学。所以我力求详细,如果看到会的步骤可以选择快速下拉过掉这一步就好了。
(代码我基本是用“手把手实战:eclipse搭建SpringMvc框架环境”中的,请允许我偷个懒)
首先当然是打开你的eclipse,然后创建一个maven工程。
有时候在新的下拉栏中并不会有maven project的选项那么我们就是自行花点时间找一下。
next之后,在弹出框中记得选择cerate a simple project ...
填写一些信息直接finish就好了(主要填Group id和Artifact id)
生成的工程结构如下:
得到工程后,那么我们就要想办法把spring mvc的相关包弄来,以前我们都是自己下载然后放到项目中,有maven之后我们不用自己下载,maven可以帮我们下载,我们只需要给jar包在maven中的地址就好了,maven仓库的地址为:
你可以到上面查自己需要的jar包的地址。
首先我们打开pom.xml文件。
它原始是长这样子的。
我们首先需要的是把这工程变成spring boot的应用程序。然后是引入spring MVC相关的jar包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>hlm</groupId> <artifactId>springbootmvc</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 在此声明使用 spring boot (添加这个工程就变成了spring boot 应用) --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent> <!-- 所有依赖 --> <dependencies> <!-- 使应用变为web 应用 ,spring 有自己的MVC框架,那自然就是springMvc了--> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.0.0.RELEASE</version><!--$NO-MVN-MAN-VER$--> </dependency> </dependencies> </project> |
<
dependency
>
<
groupId
>
org.springframework.boot
</
groupId
>
<
artifactId
>
spring-boot-starter-web
</
artifactId
>
<
version
>
2.0.0.RELEASE
</
version
>
<!--$NO-MVN-MAN-VER$-->
</
dependency
>
上面的这个已包括了spring MVC所需要的所有jar 包,所以我们不用一个一个引入了。这个相当于一个总的。引入后我们的“Maven Dependencies ”会多了很多东西。
jar 包引完了,那么我们就得写代码了,先建两个包
简单地写两个类(其实是从别的地方偷来改一丢丢而已)
/**
*
<p>
*
<ul>
Users : 对应hlm_users 表的实体
</ul>
*
<li>
userName:用户姓名
</li>
*
<li>
sex:性别 0 表示女,1表示男
</li>
*
<li>
token:注册令牌,手机或邮箱
</li>
*
<li>
tokenType:令牌类型。0为手机,1为邮箱
</li>
*
<li>
password:密码
</li>
*
</p>
*
@author
hlm
*
*/
public
class
UsersCommand {
private
String
userName
;
private
Integer
sex
;
private
String
token
;
private
Integer
tokenType
;
private
String
password
;
public
UsersCommand(){
}
public
UsersCommand(String
userName
,Integer
sex
,String
token
,
Integer
tokenType
,String
password
){
this
.
userName
=
userName
;
this
.
sex
=
sex
;
this
.
token
=
token
;
this
.
tokenType
=
tokenType
;
this
.
password
=
password
;
}
public
String getUserName() {
return
userName
;
}
public
void
setUserName(String
userName
) {
this
.
userName
=
userName
;
}
public
Integer getSex() {
return
sex
;
}
public
void
setSex(Integer
sex
) {
this
.
sex
=
sex
;
}
public
String getToken() {
return
token
;
}
public
void
setToken(String
token
) {
this
.
token
=
token
;
}
public
Integer getTokenType() {
return
tokenType
;
}
public
void
setTokenType(Integer
tokenType
) {
this
.
tokenType
=
tokenType
;
}
public
String getPassword() {
return
password
;
}
public
void
setPassword(String
password
) {
this
.
password
=
password
;
}
}
package com.hlm.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class UsersController {
/**
* 登首页
* @return
*/
@RequestMapping("/index")
public String index(){
return "index.html";
}
/**
* 到跳转页
* @param req
* @return
*/
@RequestMapping("/sigup")
public ModelAndView sigup(HttpServletRequest req){
ModelAndView mv = new ModelAndView();
req.getSession().setAttribute("user", cmd);
mv.addObject("password", cmd.getPassword());
mv.addObject("userName", cmd.getUserName());
mv.setViewName("index.jsp");
return mv;
}
}
类写完后,我们还要页面的代码。在默认情况下,spring boot 是找 src/main/resources/static/下的静态文件(模板文件是在src/main/resources/templates/ 下)
所以,我们在src/main/resources/下建一个叫static 的文件夹
一个html ,一个jsp
<!
DOCTYPE
html>
<
html
>
<
head
>
<
meta
charset
=
"UTF-8"
>
<
title
>
登录页面
</
title
>
</
head
>
<
body
>
<
a
href
=
"/sigup"
>
点我登录
</
a
>
</
body
>
</
html
>
<%@
page
language
=
"java"
contentType
=
"text/html; charset=utf-8"
pageEncoding
=
"utf-8"
%>
<!
DOCTYPE
html
PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<
html
>
<
head
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
>
<
title
>
登录后的信息
</
title
>
</
head
>
<
body
>
<
p
>
${password }
</
p
>
<
p
>
$ {userName}
</
p
>
</
body
>
</
html
>
最后在com.hlm下建一个启动类:
HlmApplication。
包com.hlm;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/ **
*启动类,放在此位置能让Spring Boot扫描整个项目
* @作者管理员
*
* /
@SpringBootApplication
公共类HlmApplication {
public static void main(String [] args){
SpringApplication.run(HlmApplication.class,参数);
}
}
然后鼠标对准此类,右键将弹出开机应用启动
启动成功后,在网页上输入:HTTP://127.0.0.1:8080 /索引
点击后则会跳转到
由于此JSP页面和跳转的方法我只是拷贝而未做其他处理,所以参数没有显示出来,不过页面跳转是成功了,说明我们搭建是没问题的。
20180605