网站流量日志分析--数据可视化--后端 web 工程整合搭建 | 学习笔记

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 快速学习网站流量日志分析--数据可视化--后端 web 工程整合搭建

开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第五阶段):网站流量日志分析--数据可视化--后端 web 工程整合搭建】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/697/detail/12257


网站流量日志分析--数据可视化--后端 web 工程整合搭建

打开 IDEA 编辑器,创建新的 project。

选择 maven,点击 next:

image.png

再点击 next:

确认一下 maven 安装的目录以及配置文件和它解析的仓库是否正确,如果不正确可以点击后面的选项修改。

如果没问题点击 next,点击 finish。此时 IDEA 就会联网下载 web 工程需要的依赖,保证机器能够联网。

当显示:就是显示的 war web 工程。这时不妨浏览一下工程信息:

发现和平时的 maven 工程不一样,仿佛少了很多东西,这时候我们需要做的是补全它。

有 Java 文件夹,还有 resourcs 文件夹。这不是普通的文件夹,我们该如何操作呢?

image.png

放源码的路径是 Java:

image.png

创建的只是一个普通文件夹,还需要把他转变为源码路径:

重复上述步骤,新建放各种配置的 resources。

这样就完成了两个文件夹的创建,根据需求还需要把设置 test 目录创建一下。既然是一个基于三大框架的 maven 项目,重点就是首先解决 pom 依赖。

打开课程资料,里面有一个 example-showdata 的样例打开 pom 文件,里面的依赖开发项目基本都得包含。

下面要安装几个插件。第一个进行源码打包的时候,把下列都当作配置文件加载进来:

<build>

<finalName>${project.artifactid}</finalName>

<resources>

<resource>

<directory>src/main/java</directory>

<includes>

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<filtering>false</filtering>

</resource>

<resource>

<directory>src/main/resources</directory>

<includes>

<include>**/*.properties</include>

<include>**/*.xml</include>

</includes>

<filtering>false</filtering>

</resource>

</resources>

<!-- 配置 Tomcat 插件 -->

<plugin>

<groupId>org.apache.tomcat.maven</groupid>

<artifactId>tomcat7-maven-plugin</artifactid>

<version>2.2</version>

<configuration>

<path>/</path>

<port>8080</port>

</configuration>

</plugin>

</plugins>

</build>

从 build 到 dependences 全部复制粘贴到工程中。这个时候如果联网就会自动更新 jar 包,之后打开 external libraries 这个仓库确认一下 jar 包是否保存进来。

依赖解决好后,接下来要做三大框架的整合,从 mybatis 向上整合

image.png

Mybatis 配置文件交给 spring 之后应该是空的,所以创建一个新的文件夹:mybatis

Mybatis 配置文件默认名字叫什么无所谓,只需要指定清楚。在资料库中把mybatis 的配置文件复制过来,配置文件的内容不需要具体记住,只要求在需要用的时候快速找到他。

新建文件夹 spring:

在资料库中把 spring 的配置文件复制过来,创建一个新文件夹 properties, 这些都是规范化的开发。

配置文件叫做 Db.Properties,里面包括链接地址,用户名,驱动,密码。然后把配置复制进来。

数据库:

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://node-1:3306/sqoopdb?characterEncoding=utf-8 jdbc.username=root

jdbc.password=Hadoop

< 1 数据库连接池-->

<bean id="datasource” class="com.alibaba.druid.pool.DruidDatasource"

destroy-method="close">

<property name="url" value="${jdbc.ur1}” />

<property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" />

<property name="driverclassName”value="${jdbc.driver}"/><property name="maxActive" value="10" /><property name="minidle" value="5" /></bean>

<!--让spring管理sqlsessionfactory使用mybatis和spring整合包中的-->

<bean id="sqlsessionFactory" class="org.mybatis.spring.sqlsessionFactoryBean">

<!--数据库连接池-->

<property name="datasource" ref="datasource" />

<!--加mybatis的全局配置文件-->

<property name="configLocation”value="classpath:mybatis/SqlMapConfig.xml”/></bean>

<bean class="org.mybatis.spring.mapper.Mapperscannerconfigurer">

<property name="basePackage”value=Icn.itcast.mapper" /></bean></beans>

复制的路径新建 cn.itcast.mapper:这样就完成了 mybatis dao 的整合。

到 service 这一层,没有什么需要做的, 只有 service 扫描注解,因为也不涉及不到事物。数据可视化是就是从 MYSQL 查询数据展示就可以,都是查询 select 的操作,不涉及到数据的修改。

拖进来也没问题:下面扫描 cn.itcast.mapper 这个包下的所有 serviced 注解。 Ctrl+c 创建这个路径

最后来到 web 层,给 spring mvc 做整合,注解驱动,ctrl+c 扫描,资源映射,资源解析器这些都需要的,把它复制进来,CTRL+C 粘贴到 spring 中。

第一块是包的路径,扫描 controller 的注解。

下一步,创建包路径,等一下开发需要规范化的开发,把对应的资源放在对应的路径下。

下面是注解驱动。项目的静态资源是用 JSP 写的,放在 web inf JSP 路径下。接下来通过 controller 的跳转,根据名字跳转到指定的 JSP 上。

下面是配置资源的映射,把静态资源的项目拖进来。首先上面这一块是静态资源,复制样式图片 JS 等等,复制之后在 web APP 下粘贴。

在复制的同时, JSP 是放在 web inf 下,这里有两个简单的 JSP,一个是 index jsp ,一个是 404。这个 hello 是一个测试,没有太多的意义。

image.png

可以看到 Web inf 下现在已经有了一个 index jsp ,这个是创建工程的时候 IDEA 默认自带的,需要右键把它删除掉。接下来把以上三个 JSP 放在 web inf jsp 路径下。可以直接复制这个路径。

知识点,把 JSP 放在 web inf 下和放在 web app 下的区别是什么?

如果放在 web app 下,可以直接从外面访问。如果放在 web inf 下,只能通过内部的 controller 跳转访问,相当于做个保护。

最关键的一步:

整个 web 项目首先加载的是 web.xml 这个配置文件,要去初始化 spring 容器,慢慢去进行静态支,请求的拦截, POS 和乱码解析等等。

下面打开看一下:

(web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/iavaee"

xsi:schemaLocation="http://java.sun.com/xm1/ns/javaee http://java.sun.com/xm1/ns/javaee/web-app 2 5.xsd' version-"2.5">

<!-- 加载 spring 容器 --><context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring/applicationContext-*.xml</param-value></context-param><listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

<!-- 解决 post 乱码 --><filter>

<filter-name>CharacterEncodingFilter</filter-name>

<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param>

<param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter>

<filter-mapping>

<filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

<!-- springmvc 的前端控制器 --><servlet>

<servlet-name>data-report</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!-- contextConfiaLocation 不是必须的, 如果不配冒 contextConfiaLocation,springmvc 的配器文件默认在: WEB-INF/serv<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring/springmvc.xml</param-value></init-param>

<load-on-startup>1</load-on-startup></servlet>

<servlet-mapping>

<servlet-name>data-report</servlet-name>

<url-pattern>/</url-pattern><!--拦截所有请求 jsp 除外--></servlet-mapping>

<!-- 全局错误页面 --><error-paqe>

<error-code>404</error-code>

<location>/WEB-INF/jsp/404.isp</location></error-page></web-app>

把这些复制到 web.xml 中,这样就完成了项目三大框架的整合。

下面想看首页长什么样,但是jS页面并不能直接去访问,所以需要 controller 来跳转。包已经有了,新建类:

image.png

package cn.itcast.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping:

/**

*created by Allen woon*/

@Controller

public class IndexController{

//用于首页的请求跳转

@RequestMapping("/index') public string showIndex(){

return "index";

)

}

点击 maven,首先要确定工作路径是不是工程路径,接下来给这个起名字叫做 Tomcat7 Run。

可以发现现在已经启动成功了,在本地的 8080,而且没有错误。

image.png

这时打开浏览器,输入网址,回车:

可以看到有一些动态未加载出来的数据。

那么应该如何在后端把他加载出来?

这就是后端 web 项目的搭建。如果对 phb 比较熟悉,用 phb 会更加方便,不需要用三大框架这么笨重的来做。但是最终目的要明确,都是把数据从 MySQL 加载返回到前端。

以上就是后端工程的整合与搭建。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
存储 安全 关系型数据库
后端技术:构建高效稳定的现代Web应用
【10月更文挑战第5天】后端技术:构建高效稳定的现代Web应用
880 1
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
461 0
|
Web App开发 前端开发 JavaScript
Web开发者必收藏的10个实用网站,你还没收藏吗?
将这些网站收藏起来,定期访问,使它们成为您日常工作的一部分,助您在快速发展的 Web 开发领域保持领先。
556 2
Web开发者必收藏的10个实用网站,你还没收藏吗?
|
人工智能 搜索推荐 PHP
PHP在Web开发中的璀璨星辰:构建动态网站的幕后英雄###
【10月更文挑战第25天】 本文将带您穿越至PHP的宇宙,揭示其作为Web开发常青树的奥秘。通过生动实例与深入解析,展现PHP如何以简便、高效、灵活的姿态,赋能开发者打造动态交互式网站,同时不忘探讨其在新时代技术浪潮中面临的挑战与机遇,激发对技术创新与应用的无限思考。 ###
237 1
|
存储 安全 数据库
后端技术在现代Web开发中的实践与创新
【10月更文挑战第13天】 本文将深入探讨后端技术在现代Web开发中的重要性,通过实际案例分析展示如何利用先进的后端技术提升用户体验和系统性能。我们将从基础架构设计、数据库优化、安全性保障等方面展开讨论,为读者提供清晰的指导和实用的技巧。无论是新手开发者还是经验丰富的技术人员,都能从中获得启发和帮助。
414 2
|
自然语言处理 Cloud Native 数据安全/隐私保护
后端技术在现代Web开发中的实践与创新
本文探讨了后端技术在现代Web开发中的重要性及其应用。通过分析当前流行的后端框架和开发模式,揭示了如何利用这些技术来构建高效、可扩展的Web应用程序。同时,文章也讨论了未来后端技术的发展趋势,为开发者提供了一些启示。
WK
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
601 0
|
前端开发 API 数据格式
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
在Web开发领域,技术的快速迭代推动着应用不断进化。传统前后端交互方式已无法满足现代Web应用对高效、实时性和用户体验的需求。AJAX作为异步通信的先驱,使页面无需刷新即可更新部分内容,显著提升用户体验;尽管XML曾是其主要数据格式,但如今JSON已成为主流。Fetch API则以其简洁、灵活的特点成为AJAX的现代替代品,基于Promises的异步请求让开发更加高效。与此同时,Python后端凭借高效稳定和丰富的库支持,成为众多开发者的首选,无论是轻量级的Flask还是全功能的Django,都能为Web应用提供强大的支撑。
252 0
|
XML 前端开发 API
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
惊艳全场的秘诀!AJAX、Fetch API与Python后端,打造令人惊叹的Web应用!
287 0
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
596 6

热门文章

最新文章