JavaWeb易错点
Posted Kapo1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb易错点相关的知识,希望对你有一定的参考价值。
转发请求与重定向
-
转发请求:一次请求,地址栏不变
重定向:两次请求,地址栏变化
Servlet的执行原理及生命周期方法
执行原理
- 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
- 查找
web.xml
文件,是否有对应的<url-pattern>
标签体内容。 - 如果有,则在找到对应的
<servlet-class>
全类名 - tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
生命周期方法
- 被创建:执行
init
方法,只执行一次
Servlet
什么时候被创建?- 默认情况下,第一次被访问时,
Servlet
被创建 - 可以配置执行
Servlet
的创建时机。- 在
<servlet>
标签下配置- 第一次被访问时,创建
<load-on-startup>
的值为负数
- 在服务器启动时,创建
<load-on-startup>
的值为0或正整数
- 第一次被访问时,创建
- 在
- 默认情况下,第一次被访问时,
Servlet
的init
方法,只执行一次,说明一个Servlet
在内存中只存在一个对象,Servlet
是单例的- 多个用户同时访问时,可能存在线程安全问题。
- 解决:尽量不要在
Servlet
中定义成员变量。即使定义了成员变量,也不要对修改值
- 提供服务:执行
service
方法,执行多次- 每次访问
Servlet
时,Service
方法都会被调用一次。
- 每次访问
- 被销毁:执行
destroy
方法,只执行一次Servlet
被销毁时执行。服务器关闭时,Servlet
被销毁- 只有服务器正常关闭时,才会执行
destroy
方法。 destroy
方法在Servlet
被销毁之前执行,一般用于释放资源
一些零碎的
-
SessionId
:当一个客户端请求服务器时,服务器为该次请求生成一个SessionId
并将该Id存储到服务器中,给该客户端的该请求标识出来,使用不同的浏览器来访问,可以发现,生成的SessionId
不相同,这是因为是不同的服务器生成的 -
Filter
接口是引入javax
包里的 -
Filter
按照web.xml
声明的顺序依次过滤;若是通过注释配置,按照字母顺序依次过滤。 -
在过滤器类加该注释
@WebFilter("/*")
是对所有的servlet
进行过滤 -
数据库中若要存储照片或视频等,可以存放路径,之后使用流来获取到文件
-
数据库事务的四大特性:原子性、一致性、合理性、持久性
-
// request加上/代表项目的根目录 request.getRequestDispatcher("/ComputerListServlet").forward(request,response); // 注意这里需要加/computer_shop // response加上/代表服务器的根目录 response.sendRedirect("/computer_shop/ComputerListServlet");
-
数据库连接池原理:数据库启动时,在连接池里按照初始化值放入一些connection,在用户要用时,将connection分配给用户,若connection不够时,按照增量值创建connection,若连接池已经达到了最大值,该用户需要等待前面的connection释放。
-
如果出现javaweb项目打开html文件,出现中文乱码的现象,可以在tomcat中配置
即加入-Dfile.encoding=utf-8
- 如果遇到控制台输出中文乱码,在tomcat中再删除
-Dfile.encoding=utf-8
以上是关于JavaWeb易错点的主要内容,如果未能解决你的问题,请参考以下文章