一、什么是Servlet

二、编写Servlet小demo(使用配置文件,淘汰了)
-
创建JavaEE项目
这里我直接使用上一篇博客的项目,虚拟路径还是bbb,在src下新建一个cn.itcast.web.servlet包,包下建ServletDemo1类如下:
-
定义一个类,实现Servlet接口 * public class ServletDemo1 implements Servlet
类写(这里我只写service而已):
package cn.itcast.web.servlet;
import javax.servlet.*;
import java.io.IOException;
/**
* @author QLBF
* @version 1.0
* @date 2020/11/21 16:47
*/
public class ServletDemo1 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("第一个servlet");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
- 实现接口中的抽象方法 ,见上
- 配置Servlet (不然无法通过url访问到你的类)
在web.xml中配置:

我们需要这样配:
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>

这样我们在ServletDemo1点右上的绿色小按钮启动Tomcat,就会跳到浏览器,在浏览器中输入:
http://localhost:8080/bbb/demo1就会访问你的类了(注意这里bbb是我定义的虚拟目录,你可以改的),然后IDEA就会输出:“第一个servlet” 在IDEA控制台上的。
如果你用浏览器访问的是html那么页面会显示在浏览器中,这里我们访问的资源是类,所以会在idea输出
下面我把箭头的两个demo1改为demo2,
在浏览器还是输入http://localhost:8080/bbb/demo1 (只要输入的是什么/的那个名就行) 还是可以访问到的
上面代码servlet执行原理
- 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
- 查找web.xml文件,是否有对应的标签体内容。
- 如果有,则在找到对应的全类名
- tomcat会将字节码文件加载进内存,并且创建其对象
- 调用其方法
可看图片:
三、编写Servlet小demo(使用注解)
不使用web.xml配置文件了,而是使用注解了
步骤:
-
创建JavaEE项目,选择Servlet的版本3.0以上,可以不创建web.xml
首先我们还是新建一个模块:
命名为day_25

tomcat的配置同上,虚拟目录还是定义为bbb -
定义一个类,实现Servlet接口
在src下建cn.it.web.servlet包再建个servler_test2类:

这里你写@WebServlet("/demo3"),其实你加前面几个user/目录也没事的就是@WebServlet("/user/demo3")也是可以,user是不存在真正的物理目录,只不过是你想加的,只不过在浏览器除了输入虚拟目录还要把你这个想的user加上,过滤器filter用的比较多。
package cn.it.web.servlet;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
/**
* @author QLBF
* @version 1.0
* @date 2020/11/21 19:47
*/
@WebServlet("/demo3")
public class servler_test2 implements Servlet{
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("使用注解的servlet");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
- 复写方法
- 在类上使用@WebServlet注解,进行配置 * @WebServlet(“资源路径”),eg:@WebServlet("/demo3")

就是在这个类的上一行写这行注释,然后打开浏览器输入:http://localhost:8080/bbb/demo3就可以访问到这个类输出到控制台上了。
四、Tomcat调试
调试过程类似https://blog.youkuaiyun.com/QLBFA/article/details/109518351
启动的时候按这个而已
servlet的dopost和doget方法都是要通过浏览器访问你这个servlet类才会执行里面的代码的,而doget记得要this.dopost(request,response);
本文详细介绍Servlet的基本概念及其实现方式,包括传统配置文件方法与现代注解配置方式,并演示如何通过Tomcat部署和调试Servlet。
487

被折叠的 条评论
为什么被折叠?



