![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java-ee
ginkov
中年胖大叔,考虑减肥中
展开
-
处理 MD5 的经验和坑
MD5 作为一种验证手段,虽然已经被证明了不够安全,但目前还能凑合用。 Java 里自带了 MessageDigest 类。可以进行 MD5, SHA-1, SHA-256 这样的哈希操作。对于一个字串,可用以下方法计算它的 MD5 String input = "hello world!"; MessageDigest md = MessageDigest.getInstance(原创 2015-09-08 12:51:32 · 1209 阅读 · 0 评论 -
Spring MVC 中的 RedirectAttribute
在 Spring MVC 中,要 redirect 时,如何传参数? 如果把参数加到 url 的 query string 里则显得不太漂亮。这时,可以用 RedirectAttribute。@RquestMapping("/test")String test(Model model, RedirectAttributes ra){ ra.addFlashAttributes("msg",原创 2016-03-23 20:04:16 · 1374 阅读 · 0 评论 -
Spring 的使用与配置
理解 @Component, @Repository, @Controller, @Service其实后三个本质上都是 @Component。不过 @Repository 有一些多的功能,比如能把数据库的 Exception 转到更高层。 @Repository 可以通过 @Repository("name") 来标识一个 Bean, 十分好用。装配到 InterfaceSpring 在 @Aut原创 2016-08-15 21:59:05 · 418 阅读 · 0 评论 -
Hibernate 的配置
初学 Hibnerate,虽然写了几个程序,但有时觉得其配置很魔幻。尤其是和 Spring 一块用的时候,好像不用 XML 也可以,直接用 Properties 文件就可以了,看上去十分诡异。仔细做了对比,才明白其中的规则。XML 优先 对于 Hibernate 而言, 同样在 ClassPath 下, hibernate.cfg.xml 要优于 hibernate.propertiesXML原创 2016-08-13 21:56:31 · 407 阅读 · 0 评论 -
@ManyToMany 映射
@ManyToMany 在对象关系中很常见。我觉得它有两个特点:必须使用 JoinTable, 否则没有办法表示在 cascade 操作时要小心。举例: 张三、李四都选了数学课。上到一半,张三退学了。如果在 @ManyToMany 中设置为 cascade = CascadeType.ALL,则在删除张三时,会把数学课也删除。所有的学生都没有数学课上了。结论:关联对象的 Cascade原创 2016-08-13 22:03:26 · 432 阅读 · 0 评论 -
Spring Multipart 的一个坑
Spring Multipart 的一个坑用 Spring MVC 写文件上传,解析。但是怎么都不成功。Required MultipartFile parameter ‘file’ is not present, syntactical error.折腾了一个上午,才发现是在 web.xml 里面,对spring-mvc 的 Servlet 配置时,要打开 Mulitpart 。否则,Tomca原创 2017-02-09 14:50:24 · 947 阅读 · 0 评论 -
对 Spring MVC 的一些错误理解
用过 Spring MVC 开发过一些项目。觉得它很好用,层次清楚,一旦搭建好框架,使用起来十分简单。但是,由于没有经过系统的学习和牛人指点,对 Spring MVC 的理解还有很多错误。Service 层和 DAO 层我之前图简单,没有理解 Service 层和 DAO 层各是干什么用的。直接在 DAO 上做了一个简单的封装就是 Service 了。实际上不是这样。Service 层可以用来处理原创 2017-03-27 15:59:43 · 443 阅读 · 0 评论 -
Tomcat 7 在 Centos 6 上启动慢的解决办法
问题Tomat 7 在 Centos 6 上,每次重启 Tomcat 时,总要花3~4分钟。通过日志看,是 SecureRandom 的计算用了太长的时间。从网上查,这是 Oracle 的一个 Bug。需要在你的 JRE 中,在 lib/seecurity 下编辑 java.security。把securerandom.source=file:/dev/urandom改成securerandom原创 2016-09-27 08:36:41 · 2620 阅读 · 0 评论 -
MVC 架构-业务逻辑写在哪儿
问题之前自己写乱写的时候,总是把业务逻辑写在 Controller 里面。 也看到有人说,要把逻辑放在 DAO 之上的 Service 层。 在最近的一个小项目中,发现逻辑稍微复杂一点儿,把业务逻辑放在 Controller 里面就不可维护了。感觉又象是回到了以前过程式的编程,一点儿面向对象的味道都没有了。 那么,到底在哪些写业务逻辑?解决在 SO上查了一查,发现大家都建...原创 2018-04-16 15:25:50 · 10738 阅读 · 0 评论 -
JPA CascadeType.ALL 的坑
今天遇到了一个 JPA cascadeType 不管用的问题,折腾了半天。现象:一个 Server 对象, ManyToOne Unidirectional 包含了 OS 对象。但是保存 Server 对象时, CascadeType.PERSIST 不管用。非得用 CascadeType.ALL 才行。可是我又不想用 CascadeType.ALL, 因为里面也含有 CascadeTyp...原创 2019-04-08 17:49:28 · 2132 阅读 · 0 评论 -
BLOB 还是文件?
我们在设计系统时,有时候需要保存一些二进制格式的文件。最常见的是:小图片大段文本(比如交换机配置)经过思考,我的建议是:如果要保存的文件都不大,比如 2MB 以内,就使用 BLOB原因是,用 BLOB 统一放在数据库里,容易备份,容易迁移。而因为文件不大,不会对数据库造成太大压力。反之,就要考虑文件系统了。...原创 2019-04-09 17:16:42 · 2247 阅读 · 0 评论 -
Spring MVC 使用心得
这段时间用 Spring MVC 进行了开发,觉得很方便。不过也踩到了一些坑,有一些心得。Spring Autowired 注入通常的套路是先声明一个接口,再定义一个或多个该接口的实现。 Autowired 时侯只用接口类型就可以,Spring 会自动找接口的实现注入。 如果接口有多个实现,则可以入 @Bean 定义一个 返回具体对象新实例的函数,并在类中用 @Configuration 来配置原创 2016-03-09 15:01:55 · 504 阅读 · 0 评论 -
Tomcat 中的 Log
catalina.log vs localhost.logcatalina.log 是 Tomcat 内部的 Log 而 localhost.log 是 Tomcat 容器为 localhost 这个实例而建的 log。原创 2016-02-15 19:01:44 · 619 阅读 · 0 评论 -
开发 Web 应用的几个坑
在 Eclipse 中,以 Java EE 模式启动应用时,报 ClassNotFound 错。原因:没有把外部的 Java plugin 类库拷贝到本地 WEB-INF/lib 下。说明:JavaEE 模式不像普通的 Java Project 模式,不能只在加载路径里指明类,而必须要拷贝到 WEB-INF/lib 目录下。在 Hibernate 中,HQL 不是用表名,而是用映射后的类名。说明:比原创 2015-09-08 23:53:52 · 396 阅读 · 0 评论 -
JSTL 与 Maven
JSTL 很不错,为前端提供了简单的页面编辑方法,配合 EL,可以简化很多事情。JSTL 需要两个库:jstl.jarstandard.jar这两个库可以通 Maven 管理,具体做法是:在 Eclipse 中把项目转换成 Maven Project在 pom.xml 中,用 Eclipse 自带的图形配置界面,进行 Dependency 配置输入 Group id (如 jstl) ,原创 2015-09-10 09:55:20 · 435 阅读 · 0 评论 -
通过 Web 往数据库里写中文的问题
中文操作往往很烦的。一不小心就出错。总结了一下,有以下几个地方需要配置,记录下来,以便日后对照检查。数据库的设置以 MySQL 为例,在创建数据库时,一定要指定编码 create database tomcat_realm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;App Conta原创 2015-09-10 10:08:19 · 501 阅读 · 0 评论 -
JSP url Mapping
很多时间,我们不想把 JSP 的路径、文件名暴露出来。原因可能是:安全性更好逼格更高这时,可以像 Servlet Mapping 那样,进行 JSP Mapping。 在 WEB-INF/web.xml 下,配置<servlet> <servlet-name>uknmsg</servlet-name> <jsp-file>/uknmsg.jsp</jsp-file></se原创 2015-09-07 15:19:41 · 612 阅读 · 0 评论 -
Java Form Authentication 时的 Logout
问题:在 Form Authentication 时如何实现用户 Logout?解决:Step 1. 首先设一个 Logout 的 Servlet@WebServlet("/api/logout")public class Logout extends HttpServlet(){ protected void doGet(...){ request.logout(); /原创 2015-09-07 15:14:17 · 522 阅读 · 0 评论 -
Java Servlet 的线程
Application Container (比如 Tomcat) 为每个请求分配一个线程,不管是不是同一用户!容器为每个请求分配一个线程,哪怕请求来自同一用户! 容器为每个请求分配一个线程,哪怕请求来自同一用户! 容器为每个请求分配一个线程,哪怕请求来自同一用户!重要的事情要说三遍。原创 2015-09-18 08:06:55 · 392 阅读 · 0 评论 -
Tomcat 7 中的 JDBC Realm 配置
Tomcat 7 作为一个 Container,支持灵活的认证配置方式。 认证配置 说明 UserDatabase 基于服务器本地文件 tomcat-users.xml JDBCRealm 基于外部数据库 JNDIRealm 基于外部数据源,如 LDAP这块提供用户信息的数据源称为 Realm。 如果我们自行管理,可以使用 JDBCRealm, 即把用户信息放在外部数原创 2015-10-20 14:04:03 · 552 阅读 · 0 评论 -
Eclipse Project 无故消失的解决办法
有时候, Eclipse 中的 Project 无缘无故就不见了。你去看文件系统中,所有的目录,啥都在,就是 Project 没了。咋办?不要急,可以在 File -> Import 中 选择 “Existing project into Workspace”好了,这下就好了,齐活了,小功告成!原创 2015-12-02 21:43:45 · 7144 阅读 · 1 评论 -
JSP 中的 Error Page
在 web.xml 中配置<error-page> <error-code>404</error-code> <location>/WEB-INF/pages/error/404.jsp</location></error-page><error-page> <error-code>500</error-code> <location>/WEB-INF/pages原创 2016-02-15 18:22:19 · 672 阅读 · 0 评论 -
在 Tomcat 中使用 JSTL
Tomcat 在发行时自带了 JSTL在 webapps/examples/WEB-INF/lib 目录下,有两个文件:standard.jarjstl.jar 把这两个文件拷贝到你的 WEB-INF/lib 目录下即可。原创 2016-02-15 18:26:19 · 2474 阅读 · 0 评论 -
Eclipse JSTL 标签告警
有时 Eclipse 在显示 JSTL 标签时告警: unknown tag “c: forEach”这时,把<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>把 % 与 @taglib 中间的空格去掉就好了。神奇吧?!原创 2016-02-15 18:59:40 · 712 阅读 · 0 评论 -
Hibernate 自动生成 表结构的坑
Hibernate 经过配置,可以自动生成表结构,非常方便。但在过程中,我遇到了几个坑。不能生成外键的问题标注了 @ManyToOne + @JoinColumn,但生成的表却不带 Foreign Key! 真是奇怪后来发现,是 Hibernate 用的 MySQL 的 Dialect 问题。要用 MySQL 5.5 以上的 InnoDBDialect 也管用换了 Dialect,立即就...原创 2019-05-23 17:31:08 · 482 阅读 · 0 评论