springmvc对静态资源的处理

开场白

不知道为啥,写笔记的时候总是喜欢写开场白,有点自言自语的感觉,哈哈哈。

初学springmvc的时候,遇到一个坑,就是在页面引用js或者css文件的时候总是失败,后来上网查资料才明白了原因。

在使用springmvc的时候,我们首先要在web.xml中配置DispatcherServlet,并且拦截所有URL请求

1
2
3
4
5
6
7
8
9
10
11
12
13
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

这样的话.js、.css、.jpg等文件的请求也都被DispatcherServlet给拦截了,可是又没有相应的处理方法,因此也就访问不到了。

springmvc使用thymeleaf

thymeleaf简介

之前开发javaWEB项目大多都是用JSP作为页面显示,但是JSP和HTML还是有很大区别,渲染的效果有时候也是有差异的。thymeleaf和HTMl更像,去掉了JSTL和spring提供的标签,可以在web容器之外的环境下用浏览器直接打开。前端人员可以直接查看样式,当有后台传输数据过来后,会动态的替换页面中的静态内容。

偶然的收获java实体类简化

今天编写实体bean的时候,正好一位大拿从身后飘过,说:来,我教你一种可以不写set,get的方法。当时还在想,还有这么好的事。

原来,彪哥用了Lombok,其实是一个开源的jar包,引入包,使用包中提供的注解,就可以不用写set,get方法了。其实是javac的一个插件,当我们写好的代码在编译的过程中,javac会扫描带有该注解的实体类,并自动生成set,get方法到class文件中,因此和你自己写的set,get方法一样,也不会影响性能,因为他是在编译阶段完成的。

网上也有很多介绍Lombok的内容,我认为自己也整理一套吧。

创建mybatis项目

搭建mybatis应用的步骤

前面已经简单介绍过了mybatis,今天详细的整理一下创建mybatis项目的详细步骤。数据库的操作基本就是增·删·改·查,其中又已查询最为多。

MyBatis简介

MyBatis简介

MyBatis是一个轻量级的ORM(Object Relational Mapping)框架。支持普通的SQL查询,存储过程和高级映射的优秀持久层框架。消除了大部分JDBC代码;主要使用xml或者注解完成配置和原始映射。相比较Hibernate框架更加灵活。

绕开过滤器方法和问题

起因

今天写的是一个在项目中遇到的问题,为了解决XSS攻击,在web.xml配置了一个过滤器,该过滤器会把提交上来的数据进行转义,也就是把html标签给转义了。这就影响到了信息发布的模块,因为在线编辑器存储到服务器上的内容都是转化成html代码存储的,现在过滤器给转义了,所以在显示的时候有出问题了,如图:

spring aop

AOP简介

想必大家对OOP都已经很熟悉了,其实AOP就是对OOP的一个有益补充。万变不离其中,我理解的AOP其实也是用面向对象的思想编写好的一个业务功能,只是这个业务功能是环绕在同一个项目中的很多甚至所有的其他核心业务功能的组件。帮助我们解决系统中单独的且又和每个核心功能有牵扯的某一方面问题,比如事务控制,日志,安全等。