Web开发进阶指南:掌握关键知识点,高质量完成项目

前端 VS. 后端

一开始一定要分清前端开发和后端开发,我们来分别介绍一下。

前端

Web应用被分类归为分布式应用,一般是客户端——服务器结构,所以我们有一部分的代码运行在客户端,另一部分代码运行在服务器。那些在客户端上的应用就是前端,通常指的就是我们的浏览器。最常用于前端开发的技术是HTML+CSS+JavaScript,高级的前端开发人员通常使用这些技术的组合开发应用的前端,另一个前端的常用技术就是使用Photoshop设计,配合其他技术共同完成Web页面的制作。

后端

后端开发者编写那些运行在服务器上的代码,通常来说,这部分的工作需要和数据库打交道,比如读写数据、读写文件、实现业务逻辑等。有些时候,业务逻辑存储在客户端,这时后台就是用来以Web服务的形式提供数据库中的数据。后端开发者一般需要掌握一种Web编程语言和一个数据库管理系统。

你可以同时掌握前端和后端的技术,但大多数Web开发者都还是有一定的喜好偏向,甚至只在某一方面深入研究。尽管前后端是有区分的,但并没有规定它们各自的具体任务。有时前端只是完成数据的显示,而其他主要工作都在后端完成。但也有时,后端只是提供数据,而所有的计算和具体功能都在前端完成。前后端工作的分配,通常都是由项目的设计和架构来决定的。

开发模式


        混合开发模式-mvc开发模式-前后端分离模式,各有利弊。

混合开发:简单成本低,适合小型系统开发,

 mvc开发模式:解耦前后端,后端三层架构,效率更高,前端数据的传参,收参问题,仍然是后端负责;

前后端分离:完全的前后端分离,前端有自己服务器,解决一系列的路由、传参、收参问题。 

前端的发展
 html(静态页面)+CSS+JavaScript->jsp(动态页面)+CSS+jquery(JavaScript库)->vue+CSS

        前端比较好用的模板:bootstrap后台模板,网站模板之家

        组件库:layui, bootStrap, semantic-ui,element-ui

测试接口展示

替换依赖

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.5</version>
		<!--      <relativePath/> &lt;!&ndash; lookup parent from repository &ndash;&gt;-->
	</parent>
	<groupId>com.webgrd</groupId>
	<artifactId>demo_websrv</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>demo_websrv</name>
	<description>demo_websrv</description>
	<properties>
		<java.version>8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web-services</artifactId>
		</dependency>

		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!--数据库连接池-->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.11</version>
		</dependency>
		<!-- Spring Boot Mybatis 依赖 多了启动不了-->
		<!--      <dependency>-->
		<!--         <groupId>org.mybatis.spring.boot</groupId>-->
		<!--         <artifactId>mybatis-spring-boot-starter</artifactId>-->
		<!--         <version>2.0.0</version>-->
		<!--      </dependency>-->

		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.5.3</version>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-generator</artifactId>
			<version>3.5.3</version>
		</dependency>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>2.3.28</version>
		</dependency>

		<!--swagger-->
		<!--      <dependency>-->
		<!--         <groupId>io.springfox</groupId>-->
		<!--         <artifactId>springfox-swagger2</artifactId>-->
		<!--         <version>2.9.2</version>-->
		<!--      </dependency>-->
		<!--      &lt;!&ndash;swagger-ui&ndash;&gt;-->
		<!--      <dependency>-->
		<!--         <groupId>io.springfox</groupId>-->
		<!--         <artifactId>springfox-swagger-ui</artifactId>-->
		<!--         <version>2.9.2</version>-->
		<!--      </dependency>-->
		<!--      <dependency>-->
		<!--         <groupId>mysql</groupId>-->
		<!--         <artifactId>mysql-connector-java</artifactId>-->
		<!--         <scope>runtime</scope>-->
		<!--      </dependency>-->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>
		<dependency>
			<groupId>com.alibaba.fastjson2</groupId>
			<artifactId>fastjson2</artifactId>
			<version>2.0.7</version>
		</dependency>

		<!--      加密-->
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-core</artifactId>
		</dependency>

		<dependency>
			<groupId>io.jsonwebtoken</groupId>
			<artifactId>jjwt</artifactId>
			<version>0.9.1</version>
		</dependency>

		<dependency>
			<groupId>com.github.xiaoymin</groupId>
			<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
			<version>4.1.0</version>
		</dependency>


	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>

		</plugins>
	</build>

</project>

连接数据库

 创建数据库、导入、选择执行SQL脚本、找到数据库文件地址后执行

yml配置

server:
    port: 8081

spring:
    datasource:
        username: root
        password: 2022
        url: jdbc:mysql://localhost:3306/webdb
        driverClassName: com.mysql.cj.jdbc.Driver

    redis:
        host: localhost
        port: 6379

mybatis-plus:
    mapper-locations: classpath:weburl/*.xml  #注意这里的配置格式,分两行 或者classpath:后有空格均不成功
    type-aliases-package: com.webgrd.*.entity
    global-config:
        db-config:
            logic-delete-field: deleted # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
            logic-delete-value: 1 # 逻辑已删除值(默认为 1)
            logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)


logging:
    level:
        com.webgrd: debug

knife4j:
    enable: true
    openapi:
        title: 非法链路自动检测与智能分析
        email: xiaoymin@foxmail.com
        concat: 计应1班
        url: https://docs.xiaominfo.com
        version: v1.0
        license: Apache 2.0
        license-url: https://stackoverflow.com/
        terms-of-service-url: https://stackoverflow.com/
        group:
            test1:
                group-name: 计应1班
                api-rule: package
                api-rule-resources:
                    - com.webgrd.weburl.controller

添加例外路径

MyInterceptorConfig

package com.webgrd.config;

import com.webgrd.interceptor.JwtInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.annotation.Resource;

@Configuration
public class MyInterceptorConfig implements WebMvcConfigurer {
    @Resource
    private JwtInterceptor jwtInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        InterceptorRegistration registration = registry.addInterceptor(jwtInterceptor);
        registration
                .addPathPatterns("/**") //拦截所有
                .excludePathPatterns(
                        "/weburl/user/login",
                        "/weburl/user/info",
//                        "auth/info",
                        "/weburl/user/logout"
                );
    }
}

启动redis 

 运行项目

登录功能(在postman中登录运行)

1.登录

http://localhost:8081/weburl/user/login

2.获取用户信息

http://localhost:8081/weburl/user/info

前端框架

前端框架是用于简化 Web 应用程序开发的工具集。框架提供了一组通用的功能,如模板系统、路由管理、状态管理、数据绑定等。Web 前端开发人员应该熟悉至少一种主流的前端框架,如React、Vue、Angular等

  1. React:React 基础、JSX、组件、状态管理、生命周期、React Router、Redux等
  2. Vue:Vue 基础、模板语法、组件、指令、Vue Router、Vuex等
  3. Angular:Angular 基础、组件、指令、服务、路由、状态管理等

浏览器兼容性

不同浏览器有不同的渲染引擎,对于同样的 HTML、CSS 和 JavaScript 代码,可能会在不同的浏览器中呈现不同的效果。Web 前端开发人员应该熟悉不同浏览器之间的兼容性问题,如何编写跨浏览器的代码,如何使用 polyfill 等。

  1. 浏览器渲染引擎:Chrome、Firefox、Safari、Edge、IE等
  2. 浏览器兼容性问题:CSS 兼容性、JavaScript 兼容性、HTML 兼容性等
  3. 兼容性解决方案:polyfill、特性检测、代码优化

网络安全

网络安全是 Web 前端开发人员需要考虑的重要问题。Web 应用程序容易受到各种攻击,如跨站脚本攻击(XSS)、SQL 注入攻击、跨站点请求伪造攻击(CSRF)等。Web 前端开发人员应该了解这些安全问题,并采取适当的措施来保护 Web 应用程序的安全。

  1. XSS:反射型、存储型、DOM 型 XSS 等
  2. CSRF:攻击原理、预防措施等
  3. SQL 注入:攻击原理、预防措施等
  4. HTTPS:SSL/TLS 协议、证书认证、加密算法

以上是 Web 前端开发的必备知识,当然还有其他一些知识,如 Git 版本控制、构建工具、测试工具等。学习这些知识需要长期的实践和不断地学习。

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《Go Web开发进阶实战(Gin框架)》是一本针对Go语言的Web开发者的进阶实战书籍。该书主要以Gin框架作为核心内容,通过实际案例的讲解,帮助读者深入理解和掌握Gin框架的使用技巧。 Gin框架是一个轻量级、高性能的Go语言Web框架,提供了许多强大的功能和特性,如路由、中间件、模板渲染等。本书主要介绍了Gin框架的基本概念和用法,并通过实战项目的方式,帮助读者实际运用Gin框架来构建Web应用。 该书内容包括了Gin框架的安装与配置、路由和中间件的使用、参数的绑定与验证、错误处理、模板渲染、文件上传与下载、会话管理等方面的知识。通过对这些知识点的深入理解和实践,读者将能够掌握Gin框架的核心功能,并学会如何在实际项目中应用。 此外,本书还通过实战案例来演示如何使用Gin框架构建不同类型的Web应用,如博客系统、用户认证、API接口等。每个案例都包含详细的代码实现和讲解,读者可以通过跟随案例一步一步地实现,并深入理解Gin框架在实际项目中的应用场景。 总之,通过《Go Web开发进阶实战(Gin框架)》这本书的学习,读者可以系统地学习和掌握Gin框架的使用,并通过实战案例的实践来提升自己的Web开发能力。无论是初学者还是有一定经验的开发者,都能够从中受益,快速掌握Go语言Web开发中使用Gin框架的技巧和经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yane~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值