Src/main/resources—>
Static:一个网站里边所用到的所有的静态资源:比如图片,脚本文件,css文件......
templates:模板,模板引擎就是将这个文件里的模板变成一个一个的网页,然后扔给你的浏览器
这俩需要自己配置,不多说了,可以去layui开源模块化前端ui框架上看看
Html网页给templates,Static文件夹里的内容(css、img、js、plugins)给Static,注意是内容,不是把Static文件夹直接给Static,因为Static再套Static会使静态端口配置不对。
现在就可以启动文件了,找到类(项目名+application.Java),启动文件。(怎么启动前边已经说了,不会往前翻)
启动后,在控制台右边会有一个红色的正方形图标,说明项目正在运行中,就是他跑起来了,你可以用它,这个网站正在运行中
打开浏览器
输入域名或者IP(因为你要访问的项目在你自己的电脑上运行,所以你要输入你的电脑的IP地址或者域名:127.0.0.1或者localhost)
(Localhost只能访问自己电脑,假域名,本机域名)
(域名只有一个,你不可能用淘宝的域名去访问京东)
域名完了要有端口号(8080)(为什么访问百度不输入端口号:所以不输入端口号的地址,端口号默认为80)
完整的输入就是:localhost:8080 (即:【域名:端口号】的形式)
敲回车
网页中出现模板(注意配置的Static,templates不同,模板也会不同)
注意:
1.要保持项目处于运行状态,项目不跑,将无法访问网址
比如说你访问淘宝,你访问的网页都是阿里巴巴找了一台服务器,他把开发的网站放在服务器上运行起来你才能用
所以当服务器太小,人太多就会出现服务器崩溃状况,无法访问网页
所以一个项目跑起来总得有一个应用服务器,把你开发的项目给他,此次项目中用到的就是tomcat,tomcat就是一个应用服务器,他负责把你开发的网站跑起来
2.项目处于运行状态时,再run as一边会报错:因为已经有一个tomcat占用了8080这个端口,不能重复占用,所以必须要先把项目停掉,使项目处于中止状态才能run as
回到模板上
模板左边为菜单,比如你点开学生信息,在右边空白处就要出现学生的页面,(当然现在还没写,慢慢来),这些菜单最终要存进数据库中,有几个菜单数据库里存几个菜单,每一个人登录进来之后,他可能看不见这些菜单,根据他的角色做判断,什么角色显示什么样的菜单,这就是权限管理
点击左边菜单内容,浏览器就要发送请求,跟你的tomcat去要他想要展示的网页,发送的请求地址:src/main/resources—>static—>index.js(主页的js文件)
打开这个js文件
以系统用户菜单为例:
最底下有一个var navs=一个值,这是创建了一个变量叫navs,它的值就是菜单,每一个大括号表示一个菜单,一个中括号[ ]就是一个集合,将内容拖至最后,最后一个大括号就是你的内个系统用户菜单,菜单里
title:属性、属性值、菜单名
Icon:图标
Spread:默认是否展开
Children:子菜单
Href:链接地址,请求地址,就是你点这个系统用户的时候,我发送的请求地址是什么,这地方就写什么,你写的不一样,返回的就不一样,你要A页面我就返回A页面,你要B页面,我就返B页面
那么如何建立网页?
新建页面:
src/main/resources—>templates—>右键new—>file—>输入文件名***.html(假如新建一个a.html)
打开新建的文件
输入你要展示的页面内容(比如:this is a page)
那么你创建的网站上就会有你创建的这个页面了
浏览器怎么发请求告诉你,他想要哪一个页面?
就是通过你输入的域名:比如说我想要this is a page这个页面,那就需要把域名改为localhost:8080/a
这是应该返回this is a page这个页面,但是没有返回,因为服务器不知道发送这个/a是想要页面,所以你的服务器应该有一个人去接受一下这个请求,就比如说你去肯德基点餐,你说你想要一个汉堡,那个服务员就得给你一个汉堡,但如果你说你想要一个自行车,他不会给你自行车,因为他不卖,他接受了请求之后,他不理解。
如何让他理解?
在后台Java代码里,去造一个服务员专门来服务这个东西
在src/main/Java里你创建的包(com.aaa.rabc)里,在创建一个子包,专门装服务员,可能有很多服务员,一个不够,所以要建一个文件夹
在当前包右键——>new——>other——>搜索package,选中package——>next——>name:自己起(com.aaa.rabc.controller)【注意子文件夹是靠’.’来识别的,】
(调整文件夹的样子:
Package explorer的右上角有三个竖着排列的点,点开它,点击package presentation——>hierarchical
)
新建的controller文件夹上右键——>new——>other——>class——>name(自己起名:比如:acontroller),这个服务员就建好了
一个服务员就是一个Java的类class
打开新建的类
Java里,这个服务员可以干什么事儿,干一件事就写一个方法,干一件事就写一个方法,这是Java面向对象要求的,方法就是这个类,这个对象的行为
现在我们要求让他可以打开this is a page这个页面:
package com.aaa.rabc.controller;
import org.springframework.stereotype.Controller;//导包:使其具备使用@GetMapping这个方法的条件
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller//使acontroller成为一个服务员
@RequestMapping(value="/")//请求根目录。controller有很多,需要清楚什么情况下我这个controller才负责接受
public class acontroller {//acontroller这个服务员,能做打开a页面这件事
@GetMapping(value="/a")//@GetMapping:注解,用于描述方法,注解有很多种
//发送一个get请求,请求为"/a"的时候,就会执行openAPage这个方法
public String openAPage(){ //这是一个方法,方法名叫openAPage,public表示公共方法,String是方法的返回值
return "a";}//返回一个字符串,返回"a",他就把a页面打开了
}
//@RequestMapping里的"/",请求根目录,一发"/a",然后就会进到/a的方法,就会返回一个"a",返回的是个字符串"a"
//当返回是个"a"的时候,他就会拿着"a"这个字符串去templates,去找a.html
//你返b,他就去找b.html;你返123,他就去找123.html
//你返啥,他就找啥
如何导包:
将鼠标放在@*****上,第一行import****的代码就是,直接点就行
启动项目,(如果之前已经启动了就不用启动了),在浏览器输入localhost:8080/a
就会看到页面上显示你输入的内容,比如我这个是this is a page
再建立一个用户controller,建立过程详见上述
为什么建立这么多服务员,因为每一个服务员都负责不同的事物
一个服务员其实也可以干所有的事,但是一旦出问题很难寻找
package com.aaa.rabc.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(value="/user")//"/user"作为招呼这个服务员的标识
public class user {
//这个方法用于打开用户主界面
@GetMapping(value="/index")
public String openPage() {
return "user";
}
//这个方法用于查询用户列表数据
@GetMapping(value="/list")
public String selectuser() {
return "userlist";
}
}
由我建立的用户controller可知,需要对index.js中的href进行修改,修改为:
"href":"user/index"
新建一个脚本user.js(借助layui)