*******************Servlet3(使用注解配置servlet)*************************
前提要求:
1. tomcat7或以上版本
2. javaee 6 或者以上版本
*******************纯手工创建第一个Servelt程序*************************
******************************如何调错*************************
常见错误:
1. 404
页面或其他资源未找到
2. 500 服务器内部错误
服务器上的代码有错,如何调错
小技巧: 看自己写的代码的第一行
******************************tomcat的两种服务器模式*************************
一. run模式
二. debug模式
区别1
run模式 无法打断点调试
debug 模式 可以打断点一步一步调试
区别2:
两种模式在启动状态下都会自动部署
run模式: jsp和web.xml 中的改动会生效,servlet发生改变 不会生效
debug模式: jsp和web.xml、servlet的改动都会生效
tomcat会自动检测你代码的变化 自动帮你从新加载 效率低
还是推荐使用run模式,除非像一步一步调试代码的时候才用debug模式
小技巧: 改动servlet后,如果想让它生效 可以在web.xml中打两个空格
这样tomcat就会自动帮你从新加载新的servlet 从新帮你new对象了
(因为run模式 web.xml变了会从新加载)
************************servlet的url-pattern一定不能配置成/ 和*.jsp*************
<url-pattern>/</url-pattern>
/ 为缺省的servlet,即当请求的servlet都没有匹配上时,使用缺省的servlet处理
参见tomcat\conf\web.xml
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
如果用户自己在项目下的web.xm中也配置一个 url-pattern为/的servlet,这样会把tomcat默认提供的缺省的servlet给覆盖掉,这样当访问的资源(jsp或servlet)不存在时,就不会给你提供404的错误提示了.
另外:Jsp也是servlet 以url-pattern为*.jsp的servlet给你处理的
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
Jsp资源如果找不到 例如输入aaa.jsp 是使用JspServlet给你处理的 如果该页面
存在给你返回这个jsp页面,如果页面不存在给你返回404的页面,所以如果配置了一个servlet
Url-pattern为*.jsp的话,jsp页面不存在时的404页面也不会给你产生了