1.Web 开发的分类
1.前端:浏览器中,用户交互(HTML ,CSS,JS等)
JS框架:Vue ,React,Angular ---分离的前端/独立的服务器中
不访问数据库,没有核心业务逻辑,每个用户的浏览器
与移动端APP有关
JS库:JQuery
SSR:Nuxt.js,页面渲染服务器,也可以基于node.js实现
2.后端:服务器,业务逻辑和数据操作
CGI:C语言生成动态的HTML
PHP:底层是C,简单,容易上手 PHP+C/C++ +其他混合型
ASP:ASP.net
JSP:JavaServerPages----Servlet,出现了很多的框架:Struts,SpringMVC , Spring Boot
视图 控制层 业务层 数据访问
JSP Servlet Bean JDBC 官方推荐
JSP/JSF Servlet EJB(会话,消息) EJB(实体Bean) J2EE/Lava EE
JST Struts Spring MyBatis/Hibernate 社区/开发者摸索/ 2002 SSH
模板引擎 SpringMVC Spring MyBatis SSM
SpringMVC Spring Spring Data Spring 第三方/Java服务端开发的事实标准
--------------------------------------------------------------------------------------------------------------------------
Spring Boot 一站式/商业化
模板引擎:JSP/JSTL/Freemaker/Thymeleaf。
Java Web 中的模版引擎 JSP/JSTL/Freemaker/Thymeleaf 都是 SSR,现在已经不需要了。
服务端提供开放的RESTful API 接口:前端(Vue),移动端(android ,IOS),桌面端(windows,mas,OS,Linux)
Python:django---知乎,豆瓣
Ruby:Ruby on Rails ,Twitter:快速的开发
Go:
node.js:服务端开发 express
2.sts(eclipse + spring 开发插件)的安装与使用
1.下载并解压sts-4.5.1.RELEASE.zip、apache-maven-3.6.3.zip以及JDK版本更新到11
2.修改镜像(conf/setting.xml)
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
</mirrors>
3.设置STS使用的maven路径
4. 字符集,解决乱码问题;推荐 UTF-8
3.创建Spring Boot项目
新建一个Spring项目
选择项目需要的:
当选择完后,右侧会出现相应的:
注意:从maven镜像下载依赖的 jar 库,第一次会慢一些,之后会很快,与 npm 不一样
项目创建成功,会出现下图的工程目录:
4.创建项目可能出现的问题:
1.工程目录中没有jre
鼠标右键单击项目,点击properties出现
移除错误的jre,加入默认的jre,单击apply即可。
成功,工程目录出现:
2.工程创建完,pom.xml报错(网上有很多解决措施,这里只介绍一种解决):
右键maven工程,进行更新
在弹出的对话框中勾选强制更新,如图所示
稍等片刻,pom.xml的红叉消失了。
项目创建成功后,可以开始使用Spring Boot了。
1.启动
2.打开控制台,查看运行
接下来开始写代码了:
这是我的工程结构目录:
DemoApplication.java
package com.newer.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//注解标记Spring Boot工程:默认自动装配
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
HomeController.java
package com.newer.demo;
import java.util.HashMap;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
*
* 添加控制器,注解(标签)成为一个组件(容器管理,不是普通的类)
* @author Admin
*
*/
@Controller
public class HomeController {
// 类似vue router
/**
* GET "/"根路径,返回static/home.html视图
* @return
*/
@GetMapping("/")
public String home() {
// 字符串:视图名字(static 静态资源)
return "home.html";
}
/**
* GET "/about"----->static/about.html
* @return 视图
*/
@GetMapping("/about")
public String about() {
return "about.html";
}
/**
* GET "/api"--->当前控制器的data()方法
*
* @ResponseBody 注解,返回数据而不是视图名字,成了一个服务接口API:前端,移动端,桌面端
* @return 数据(字符串或其他类型),不是页面名字
*/
@GetMapping("/api")
@ResponseBody
public HashMap<String,Object> data() {
HashMap<String,Object> info=new HashMap();
info.put("name", "king");
info.put("age", 15);
info.put("phone", "16673958571");
return info;
}
}
home.html
<!doctype html>
<html lang="en">
<head>
<title>Title</title>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
<div class="jumbotron">
<h1 class="display-3">主题</h1>
<p class="lead">Jumbo helper text</p>
<hr class="my-2">
<a href="about.html">关于</a>
<p>More info</p>
<p class="lead">
<a class="btn btn-primary btn-lg" href="Jumbo action link" role="button">Jumbo action name</a>
</p>
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
about.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h1>about</h1>
</body>
</html>
application.properties
#应用的端口,默认8080
server.port=9000
#显示Spring MVA的日志
logging.level.web=debug
程序运行如图所示:(浏览器打开设置的9000端口---127.0.0.1:9000)
程序打包的过程: