#服务器
- 是由代码编写成的,可以实时的调用,相当于是一个代码存放的容器
#第一个servlet项目-
配置文件 web.xml
-
<servlet> <servlet-name>myservlet</servlet-name> <servlet-class>com.echo.servlet.Hello</servlet-class> </servlet> <!--配置访问方式--> <servlet-mapping> <servlet-name>myservlet</servlet-name> <url-pattern>/my</url-pattern> </servlet-mapping>
- java
- public class Hello extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String str = “I am you first servler”;
resp.getWriter().write(str);//
System.out.println(str);
}
}
-
#Servlet技术
* 狭义的servlet是一个由java语言实现的接口,广义的servlet是指任何实现了servlet接口的类。
* 使用:
* 创建普通的java类,继承HttpServlet(HttpServlet继承了GenericServlet类,GenericServlet实现了Servlet接口)
* 重写service 方法
* 在service方法中写逻辑代码
* 在web.xml中配置 servlet
#servlet销毁的时间
* 服务器关闭时 servlet被销毁
#servlet的生命周期
* 从第一调用到服务器关闭
* 当Servlet在web.xml中配置了load.on.startup 生命周期为服务器启动到服务器关闭
* 1设置为1时改servlet第一个被调用
* init()是对servlet进行初始化的一个方法,在servlet第一次被加载时执行
* destory()在servet被销毁时被执行
#Serlet中的方法
* 重写service方法
* doPost()方法
* doGet()方法
* 当表单中的请求方式为get或post时,service方法会被调用,在service中调用父类的super.service(req,resp)方法时,请求为get时 service()和doGet()方法会被调用,请求为post时,sevice()和doGet()方法会被调用
* service()中没有调用父类的方法时,表单的请求为get,post时只有service()方法被调用
#常见的错误
* 404 :资源没找到
* 1.在请求地址中servlet的别名错误
* 2,虚拟项目的名称错误
* 500 :内部错误
* classNotFoundException:
* 解决 在web.xml中校验servlet类的全限定名(类名)是否错误
* service方法体中的代码有错误
* 405:请求格式不支持
* 原因 :请求方式和servlet方法体不匹配