目录
1、客户端、tomcat服务器、servlet三者之间的示意图
一、servlet是什么?
1、servlet是javaWeb三大组件之一,分别是servlet、filter过滤器、listener监听器。
2、servlet是运行在服务器上的一个小程序,它可以接受请求,处理响应。
二、servlet有什么用?
作用描述:处理用户的请求,返回用户一个响应,跳转到需要的页面,并处理用户的需求。
三、JAVAEE的三层架构
问:为什么要分这么多层?
答:分层的目的就是为了解耦和,解耦和就是降低代码的耦合度,方便后期的维护和扩展。
所以,我们在创建JavaWeb项目时,会创建很多个package,分开存放不同功能的java文件
如:(com后面为公司名)
1、web层:com.qingruan.servlet/controller/web(/是或者的意思);
2、service业务层暂时没有学到,所以跳过;
3、dao持久层:com.qingruan.dao dao接口
4、实体类:com.qingruan.bean/entity/pojo javaBean实体类
5、工具类:com.qingruan.util
6、测试类:com.qingruan.test
四、servlet的展开
1、客户端、tomcat服务器、servlet三者之间的示意图
2、请求转发
用户输入账号密码,点击登录按钮,页面就会跳转。
特点:
①浏览器地址不会发生改变
②他们是一次请求
③他们共享request域中的数据
3、请求重定向
使用场景:服务器页面已经淘汰了,请用户跳转到新页面。
特点:
①地址栏会发生改变;
②2次请求;
③不能共享request域中的数据,request只能是一次请求;
五、实现servlet的前提(导入两个jar包)
1、前提
在WEB-INF→lib目录下粘贴jar包,并右键Add as Library加入路径。
2、以下三种方法都是经常用到的,不同的功能,用不同的实现方式,会比较高效。
3、在idea建立JavaWeb项目(在上一篇有详述,这里不赘述)。
六、实现servlet方式一(代码部分)
1、写一个类去实现serlet接口;(例子命名的是MySerletTest1)
该类创建在src下的命名为com.qingruan.servlet的package路径下;
2、实现它的所有的抽象方法service()方法,接受请求处理响应;
(快捷键:在方法{}内的任意位置,鼠标右键,选择Generate,点击Override,按住ctrl键,鼠标点击,进行多选,最后OK);
方法就重写完毕, 把无参构造方法里的super()删掉,写一个输出语句,方便我们进行测试;
在快捷键创建的service方法中,写入输出语句,方便进行测试;
MyServletTest1.java:
package com.qingruan.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class MyServletTest1 implements Servlet{ public MyServletTest1() { System.out.println("MyServletTest1"); } @Override public void init(ServletConfig servletConfig) throws ServletException { } @Override public ServletConfig getServletConfig() { return null; } //要写的方法,处理请求和接收响应的方法 @Override