发表于: 2018-01-20 11:14:44
5 497
今天完成的事情:
1.今天提交任务三,师兄让我完善任务三分析日志的脚本,按照师兄的要求分析请求时间以及请求的url:
整个过程由之前的基础,比较舒服,传一下脚本:
很简单的。
2.任务三提交完毕,开始正式搞任务四。
映射的URL | 对应的Servlet |
/hello | servlet1 |
/bbs/admin/* | servlet2 |
/bbs/* | servlet3 |
*.jsp | servlet4 |
/ | servlet5 |
实际请求映射的结果
去掉上下文路径的剩余路径 | 处理请求的Servlet |
/hello | servlet1 |
/bbs/admin/login | servlet2 |
/bbs/admin/index.jsp | servlet2 |
/bbs/display | servlet3 |
/bbs/index.jsp | servlet3 |
/bbs | servlet3 |
/index.jsp | servler4 |
/hello/index.jsp | servlet4 |
/hello/index.html | servlet5 |
/news | servlet5 |
第一行的/hello 指的是单个的,如果是/hello/*那么倒数第二和三也会被servlet1处理。
- “/*”属于路径匹配,并且可以匹配所有request,由于路径匹配的优先级仅次于精确匹配,所以“/*”会覆盖所有的扩展名匹配,很多404错误均由此引起,所以这是一种特别恶劣的匹配模式,一般只用于filter的url-pattern
- “/”是servlet中特殊的匹配模式,切该模式有且仅有一个实例,优先级最低,不会覆盖其他任何url-pattern,只是会替换servlet容器的内建default servlet ,该模式同样会匹配所有request。
上面说的非常的清楚了
2.今天参考于大佬的日报,想尝试一波自动生成代码,但是失败了,原因没有深究。
事情是这样的,我按照日报配置了插件,配置文件,jar包等等等,然后执行自动生成的命令,显示BUILD SUCCESS ,但是并没有任何代码生成,搞来搞起也没搞出来,最后放弃,这个问题先抛出去吧,等空下来再整
3.之前已经设计好了db表,今天开始尝试静态转动态,一开始也是无从下手,后来结合昨天的db表,突然发现这个任务只是包装了一下,并没有那么难,只需要在原有的机构中替换掉原有的文字,图片。于是开始验证自己的想法:照例,搭建ssm项目,加依赖,配置各种文件,穿一波项目结构:
在这里也算备份一下pom。xml吧,也算是方便后面的师弟:
<?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 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.student</groupId>
<artifactId>task4Demo</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>task4Demo Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<!-- spring版本号 -->
<spring.version>4.2.4.RELEASE</spring.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.12</log4j.version>
<!-- junit版本号 -->
<junit.version>4.10</junit.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.1</mybatis.version>
</properties>
<dependencies>
<!-- 添加Spring依赖 9pics-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<!--单元测试依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- 日志文件管理包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!--spring单元测试依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<!--mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.0</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.5</version>
</dependency>
<!-- javaee-api包 注意和项目使用的JDK版本对应 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<!-- javaee-web-api包 注意和项目使用的JDK版本对应 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<!--j2ee相关包 servlet、jsp、jstl-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
<build>
<finalName>task4Demo</finalName>
<plugins>
<!-- mvn mybatis-generator:generate -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
<configurationFile>src/main/resources/mybatis-generator/generatorConfig.xml</configurationFile>
</configuration>
<dependencies>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.42</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
具体的配置信息就不传了。
说一下在配置过程中遇到的问题,在今天搭建ssm的时候,想要换一种方式来读取properties文件。谁知道这一下子惹出来不少麻烦:就一直报错,无法加载jdbc驱动,我和曲师兄尝试多次无法解决,提前说一下
PropertiesFactoryBean
今天尝试的是这个,shpring管理properties的一个bean,总的来说,这个东西可以免除我们频繁地写装载配置的代码,写好了这个,直接在里面装载就行
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
<!--要是有多个配置文件,只需在这里继续添加即可 -->
</list>
</property>
</bean>
就是里面的list标签内,注释很明白了;那么今天的问题是怎么回事呢,为什么取不到值?这个东西有着spring的一贯特色,省事儿省心。原因是我省去了list标签,导致出的问题。。。。
后来索性不用了,用传统的方式加载了
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${jdbc_driverClassName}</value>
</property>
<property name="url">
<value>${jdbc_url}</value>
</property>
<property name="username">
<value>${jdbc_username}</value>
</property>
<property name="password">
<value>${jdbc_password}</value>
</property>
</bean>
这样的好处就是,在修改的时候非常直观,非常方便。
4.静态转动态
在t10页面中打上了c标签,使用foreach来循环输出数据库的内容,而且在引用的时候把需要的图片加载到项目内的某个目录,用相对目录的方法曲引用,很舒服。
<link href="${pageContext.request.contextPath}/t10/bootstrap.min.css" rel="stylesheet" type="text/css">
<a href="#" target="_blank"> <img alt="" src="${pageContext.request.contextPath}/t10/imges/54537.png"></a>
这个就不用过多地解释了吧,很清楚。
5.在数据库中存放图片
这个问题我也百度了一下,方法很多,但是只说比较好的啊:
二进制转换 就不给力 放弃 因为麻烦
绝对路径存放 这个工作环境一换,就很难受 放弃
相对路径存放 这个就很舒服。
传一个例子:这里存放的就是我的项目中的相对路径
很清楚吧,接下来要怎么从数据库中取出来呢?
<img alt="" src="${pageContext.request.contextPath}/${pross.picture}">
是不是很简单?接下来看看效果吧。。不太正经:
为了不让惊喜来的那么快,加了一个欢迎界面:
点击之后。。。。捂脸
至此。。
今天遇到的问题
上面都提及到了,很有意思的一天,我现在还是对那个自动生成代码很感兴趣
今天的收获
以上,很充实,很有趣的一天
明天计划的事情
推进任务四
评论