- 2021-02-21 23:44 Jackson对类的属性的注解
- 2021-02-12 01:06 数据库连接池初始化
- 2021-02-12 00:10 Controller改名
- 2021-02-11 23:00 getMethods()返回值
- 2021-01-14 00:20 转发会改变uri
- 2021-01-14 00:20 index.jsp问题
- 2021-01-11 03:00 WebFilter的顺序
- 2021-01-06 23:25 div元素的间隔
- 2020-12-28 14:39 @WebFilter和@WebServlet
- 2020-12-17 06:50 cookie不能存放一些字符
- 2020-12-16 01:00 servlet 中的 url
- 2020-12-13 17:00 空指针
- 2020-08-18 01:47 集合元素反复添加
2021-02-21 23:44 Jackson对类的属性的注解
JavaBean 的字段声明处的注解,可以设置一个不同的名字,这个名字会被用作字段对应的JSON属性名;
反序列化的时候,用构造器参数的注解来绑定JSON的属性名和构造器参数
2021-02-12 01:06 数据库连接池初始化
在之前的项目里用 ServletContextListener 调用下面的 DataBus.init() 来配置数据库连接池,新项目想复用数据库配置,却忘记在 Listener 中调用这个方法,导致空指针。
配置文件 database.properties 忘记复制到新项目,复制过来以后还是没解决空指针,是因为 Idea每次build的时候没有自动更新文件,把 target 文件夹全删掉,再 build 一编就好了。
2021-02-12 00:10 Controller改名
如果依赖配置文件来加载所有的 Controller,很容易出错,因为首先类名很长容易写错。其次,心血来潮改名以后,忘记在配置文件里改过来,也会出错。
2021-02-11 23:00 getMethods()返回值
反射API里的 getMethods() “返回所有的 public 方法,包括从超类继承来的 public 方法”,所以会返回 Object 类里的 equals()、hashCode()、toString()、wait() 等方法,遍历 Controller 的这些方法浪费了时间,应该采用getDeclaredMethods() “返回这个类或接口的全部方法,除了从超类继承的方法”。
2021-01-14 00:20 转发会改变uri
调用 request.getRequestDispatcher("page.jsp").forward(request,response);,<br /> 再在 page.jsp 中调用 request.getRequestURI();会返回 XXXX/page.jsp。
2021-01-14 00:20 index.jsp问题
如果一个目录下有 index.jsp,又有一个 servlet 的url与这个目录相同,请求会交给 index.jsp处理,不会给另一个servlet。
2021-01-11 03:00 WebFilter的顺序
在类定义开头写注解是不能指定 WebFilter 的顺序的,如果必须先执行 UserFilter 再执行 CommentFilter,就要在 WEB-INF/web.xml 文件中写 mapping。<br /> 因为没注意顺序的问题,导致 request.setCharacterEncoding("UTF-8") 没有在所有操作之前执行,进而收到了乱码。
2021-01-06 23:25 div元素的间隔
不算是错误吧,可能各浏览器的处理方式不一样。在我现在用的 Chrome 内核的 edge 87 中,有这些情况:
2020-12-28 14:39 @WebFilter和@WebServlet
把 DonloadFilter 改成 DownloadServlet 结果注解没改过来,tomcat 加载项目的时候总报错:一个或多个筛选器启动失败。。。搞了一天。。。
2020-12-17 06:50 cookie不能存放一些字符
抄了别人的代码,代码中在 cookie 字符串里面加了逗号,debug 找出来了,网上搜了一下,逗号,分号,空格和非ASCII字符不能进 cookie,但可以编码后放进cookie。一篇文档
_
2020-12-16 01:00 servlet 中的 url
假如,项目根目录是:tomcat/webapps/demo
本地启动 tomcat,浏览器访问 localhost:8080/demo_/user-manage/_login.html
login.html 里有一个表单