开发者学堂课程【大数据分析之企业级网站流量运营分析系统开发实战(第五阶段):网站流量日志分析--数据可视化--后端 web 工程整合搭建】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/697/detail/12257
网站流量日志分析--数据可视化--后端 web 工程整合搭建
打开 IDEA 编辑器,创建新的 project。
选择 maven,点击 next:
再点击 next:
确认一下 maven 安装的目录以及配置文件和它解析的仓库是否正确,如果不正确可以点击后面的选项修改。
如果没问题点击 next,点击 finish。此时 IDEA 就会联网下载 web 工程需要的依赖,保证机器能够联网。
当显示:就是显示的 war web 工程。这时不妨浏览一下工程信息:
发现和平时的 maven 工程不一样,仿佛少了很多东西,这时候我们需要做的是补全它。
有 Java 文件夹,还有 resourcs 文件夹。这不是普通的文件夹,我们该如何操作呢?
放源码的路径是 Java:
创建的只是一个普通文件夹,还需要把他转变为源码路径:
重复上述步骤,新建放各种配置的 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 向上整合
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 是一个测试,没有太多的意义。
可以看到 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 来跳转。包已经有了,新建类:
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,而且没有错误。
这时打开浏览器,输入网址,回车:
可以看到有一些动态未加载出来的数据。
那么应该如何在后端把他加载出来?
这就是后端 web 项目的搭建。如果对 phb 比较熟悉,用 phb 会更加方便,不需要用三大框架这么笨重的来做。但是最终目的要明确,都是把数据从 MySQL 加载返回到前端。
以上就是后端工程的整合与搭建。