我们学习Servlet的时候用到的是Tomcat服务器
一、Servlet的编写、访问过程
1、什么是Servlet?
Servlet(Servlet Applet)是Java Servlet 的简称,是小服务程序或服务连接器,使用Java编写的服务器端程序,主要功能是:交互式的浏览和修改数据,生成动态Web内容
2、编写部署Servlet
WEB-INF:lib:第三方的包,
web.xml:部署描述文件 classes
1)编写Servlet程序实现Servlet接口
2)编译Servlet源文件,生成字节码文件(注意:①DOS窗口中进入Servlet文件所在目录;②-cp参数 导入需要的jar包)
3)部署
4)运行
3、Servlet的访问过程
在地址栏输入地址:Tomcat服务器地址/站点名称/虚拟路径,到达服务器,解析url,拿到虚拟路径和web.xml配置文件对比,找到虚拟路径对应的servlet,找到虚拟路径对应的类别名 servlet-name,根据servlet-name找到对应的servlet-class,从而找到访问类,服务器自动调用servlet的service方法通过service方法的response参数向客户端返回响应。
4、实现servlet的三种方法
1)实现servlet接口
2)继承GenericServlet(一般不采用)
3)继承HttpServlet(推荐使用)
都需要对所创建的servlet类进行配置,也就是配置servlet访问时的虚拟路径
5、关于虚拟路径
1)虚拟路径配置不仅限于1个,但是多个servlet的虚拟路径不同,1种虚拟路径不能配置给2个或2个以上的servlet,1个servlet可以配置多个虚拟路径。
2)虚拟路径的配置方法主要有三种:
①完整的URL虚拟路径
②**/目录/*** 方式:以“/目录”作为开头的URL
③***.ext**后缀名方式:以.ext结尾的地址
二、Servlet中的请求与响应
1、接收请求
1)Tomcat启动后Web容器首先做的工作:
①Servlet与URL对应
②完成Servlet名称注册
③创建Servlet实例
2)接收到请求后服务器转交给Web容器;Web容器产生请求对象和响应对象(常用的请求方式为GET和POST)
调用Servlet的service()方法,并将请求和响应对象多为参数传入该方法;Service方法根据请求方式调用doXXX()方法
3)HttpServletRequest接口以参数的形式传递到service方法里(接口不能实例化,实例化其子类)[HttpServletRequest继承ServletRequest]
4)Servlet接口的service方法
service()方法根据请求类型调用doXXX()方法,所以***必须重写doXXX()方法***。
2、返回响应
1)在doXXX()方法中使用请求对象获取请求信息,响应对象返回响应结果(PrintWriter对象);
2)销毁请求、响应对象(并不是servlet对象,servlet等待下一次请求)。
3)HttpServletResponse接口
3、解析请求
1)getParameter()方法:表单中的name属性值的获取
2)Attribute参数:
①setAttribute():设置参数
②getAttribute():获取某个参数的值
三、Servlet中请求数据的传递、请求转发与请求重定向
1、请求重定向、请求转发
1)请求转发
request.getRequestDispatcher(“targetURL”).forward(request,response);
2)请求重定向
response.sendRedirect(“taargetURL”);
2、请求数据的传递
1)请求数据的传递:
①request.setAttribute(String,Object);
②request.getAttribute(String);返回Object
2)注意事项:
①请求转发可以共享参数
②请求重定向无法共享参数
3、请求转发、请求重定向的区别
1)本质:请求转发:一次请求;请求重定向:二次请求
2)速度:请求转发 > 请求重定向
3)Attribute参数:请求转发可以共享参数;请求重定向无法共享参数