1.路径问题
<a href="">
<form action="">
response.sendRedirect("")
request.getRequestDispatcher("")
(1)什么是相对路径?
不以"/"开头的路径。
(2)什么是绝对路径?
以"/"开头的路径。
(3)如何写绝对路径?
链接、表单提交、重定向从应用名开始写(包含应用名);转发从应用名之后开始写(不包含应用名)。
注:不要将应用名直接写在路径里面,而是使用String request.getContextPath()来获得实际部署时的应用名。这样如果应用名修改不必修改代码
(4)小结
在实际应用当中,应该优先使用绝对路径,易写,并且好维护。
2.Servlet的线程安全问题
(1)为什么说Servlet会有线程安全问题?
a.容器只会创建一个Servlet对象。
b.容器收到一个请求,就会启动一个线程,由这个线程来处理接下来的工作(调用Servlet的service方法)。这样,就有可能有多个线程同时调用同一个Servlet对象的service方法,就有可能产生线程安全问题(比如,这些线程同时去修改某个属性)。
(2)如何解决?
使用synchronized对有可能产生线程安全问题的代码块加锁。
注:
加锁会影响性能。