Servlet技术
简介:Servlet与JSP都可以动态生成HTML内容。
**Servlet是在服务器上运行的小程序,**一个servlet就是一个java类,并且可以通过请求-响应编程模型来访问这个驻留在服务器内存里的servlet程序
继承javax.servlet.http.HttpServlet类
Tomcat目录层次结构
- bin 存放启动和关闭Tomcat的脚本文件
- conf 存放Tomcat服务器的各种配置文件
- lib 存放Tomcat服务器支撑的jar包
- logs 存放Tomcat的日志文件
- temp 存放Tomcat运行时产生的临时文件
- webapps web应用所在目录
- work Tomcat工作目录
servlet介绍
servlet技术的重要性不言而喻,jsp也是在servlet上发展起来的。
servlet(java服务器小程序)特点:
- 由服务器调用和执行
- 用java编写
- 有一套自己的servlet规范
- 几乎可以完成所有网站的功能
- 是jsp的基础
Tomcat是web服务器的同时,也是servlet和jsp的容器
Servlet工作原理
-
客户端向服务器端请求某个servlet
-
服务器端接收请求
-
服务器创建ServletRequest对象,将客户端的请求封装到这个对象中
-
服务器创建ServletResponse对象
-
服务器调用HttpServlet的service方法,将ServletRequest对象和ServletResponse对象传入该方法,service方法将根据ServletRequest对象中的信息选择调用doGet或者doPost方法,然后执行相应的逻辑代码
-
服务器调用HttpServletResponse对象的相关方法生成响应数据,发送给客户端
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2WUXdTLb-1602117505753)(C:\Users\Administrator\Desktop\javaweb笔记\servlet工作原理.jpg)]
开发servlet三种方式
- 继承httpservlet(HttpServlet,它是GenericServlet得到子类。)
- 继承genericservlet( GenericServlet是Servlet接口的实现类,我们可以继承GenericServlet来编写自己的Servle。)
- 实现servlet接口
servlet体系结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rm1c2c0P-1602117505755)(C:\Users\Administrator\Desktop\javaweb笔记\servlet图png.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8uWDIhj1-1602117505757)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20200812133303160.png)]
继承HttpServlet开发Servlet(最常用)
编写servlet文件,需要重写doget和dopost方法
package cn.icbc.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/LogoutServlet")//使用注解方式部署到web.xml文件
public class LogoutServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
request.setCharacterEncoding("utf-8");//作用是设置对客户端请求进行重新编码的编码。
response.setCharacterEncoding