Servelet登录页面步骤:
- 浏览器访问http://127.0.0.1/login.html
- 浏览器通过form把账号和密码提交到/login(通过action),附带method="post"
- Tomcat接受到请求:http://127.0.0.1/login,根据配置文件web.xml匹配发现/login对应的Servlet类是LoginServlet
- Tomcat调用LoginServlet的public无参的构造方法LoginServlet()实例化一个LoginServlet对象
- Tomcat据页面login.html提交信息的时候带的method="post",去调用对应的doPost方法
- Servlet在doPost方法中,通过参数request,把页面上传递来的账号和密码信息取出来
- Servlet根据账号和密码是否正确(判断是否是admin和123), 创建不同的html字符串
- Tomcat拿到被Servlet修改过的response,根据这个response生成html 字符串
- Tomcat通过HTTP协议将html字符串回发给浏览器
- 浏览器根据HTTP协议获取html字符串,并渲染在界面上
Servelet生命周期:
- 实例化:用户通过浏览器输入路径时,调用构造方法LoginServlet()
- 初始化:调用init(ServletConfig)
- 提供服务:执行service(),根据浏览器传递来的信息判断调用doGet()还是doPost()
- 销毁:调用destroy(),如关闭Tomcat时
- 被回收:通过GC回收
Servlet页面跳转:
- web目录下创建两个页面success.html,fail.html
- 登录成功则服务端跳转到success.html(跳转后地址栏信息不变)
- 登录失败则客户端跳转到fail.html(跳转后地址栏信息变为跳转后的地址)
Servlet自启动:
- tomcat一启动,就需要执行一些初始化的代码,比如校验数据库的完整性等
- 但是Servlet的生命周期是在用户访问浏览器对应的路径开始的。如果没有用户的第一次访问,就无法执行相关代码
- 这个时候就需要Servlet实现自启动。即,伴随着tomcat的启动,自动启动初始化,在初始化方法init()中,进行一些业务代码工作
Servlet上传文件:
- form的method必须是post的,get不能上传文件
- enctype="multipart/form-data"表示提交的是二进制文件
- 提供type="file"用于上传
- 加载第三方jar包commons-io-1.4.jar和commons-fileupload-1.2.2.jar