1. Servlet概述
jsp前身就是servlet,Servelet是在服务器上运行的小程序。
一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模型来访问的这个驻留在服务器内存里的Servlet程序。
2. Tomcat容器等级
Tomcat在大多数情况下充当servlet的容器,也就是说:在写完JSP代码后进行第一次执行时,tomcat(servlet容器)先将JSP代码翻译成servlet类(java代码),然后实例化该类,再调用该类的init,service,destory等进行生命周期服务。当客户端再进行第二次访问请求时,此时就没有servlet容器的翻译这一步了,因为之前翻译的java代码会一直保存,以便于后面的访问不再进行翻译,可大大提高访问效率。所以,JSP页面在第一次被访问时,其所花费的时间是最长的。
最主要的方法就是init,service和destroy,它们是servlet对象的生存周期,当一个页面被编译成servlet类,再进行实例化后,这个页面就开始了真正的生命周期,servlet容器会先加载init方法进行初始化,初始化后才可进行接收和相应客户端的消息,之后容器会再加载service,这部分就是真正相应客户端请求的实现逻辑,它实现客户端的请求响应,然后动态生成HTML页面显示到客户端;而destory方法则是在servlet生命周期即将结束时进行的清理工作。
3. 手工编写第一个Servlet
- 继承HttpServlet
- 重写doGet()或者doPost():右键->source->重写
- 在web.xml中注册servlet
问题解析:
1、向页面输出html语言 response.setContentType("text/html;charset=utf-8");
2、在配置web.xml中
1 2 3 4 5 6 7 8
| <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>servlet.helloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/servlet/HelloServlet</url-pattern>//根目录下的路径信息 </servlet-mapping>
|
web.xml中Servlet的配置说明:
1、<servlet>
标签中
<servlet-name>
指定servlet名称,<servlet-class>
指定servlet类,需要使用完整类名
2、<servlet-mapping>
标签中
<servlet-name>
指定servlet名称,需要与<servlet>
标签中的相应servlet名称对应;
<url-pattern>
指定servlet地址,在Jsp页面中使用的URL需要与相应servlet的地址对应