Servlet(一)

2024-04-14 1399阅读

文章目录

    • 1.Servlet整体框架
    • 2.Servlet快速入门
        • 1.创建项目配置基本环境
        • 2.添加jar包
          • 1.在WEB-INF下创建目录lib,添加文件
          • 2.添加到项目中
          • 3.配置代码提示
          • 3.src下创建文件
          • 4.实现Servlet接口
          • 5.在web.xml配置HelloServlet
          • 6.通过浏览器访问HelloServlet
          • 3.浏览器访问Servlet的流程分析
              • 一共有三个容器
                • url-name
                • name-全类名
                • name-实例
                • Servlet的生命周期
                  • 初始化阶段
                  • 处理浏览器请求阶段
                  • 终止阶段
                  • 4.GET和POST的分发处理
                        • 代码示例
                        • 5.继承HttpServlet来开发Servlet
                            • 1.创建文件
                            • 2.配置web.xml
                            • 3.实现doGet和doPost方法并编写
                            • 4.浏览器访问
                            • 5.过程解析
                              • 1.http://localhost:8080/servlet/hiServlet发送请求到Tomcat服务
                              • 2.Tomcat服务根据资源路径/hiServlet,找到HelloServlet.HiServlet
                              • 3.创建HiServlet的实例,并调用它的init()方法和service()方法
                              • 4.init()方法就是个空的,重点看service()方法,是它的父类HttpServlet的
                              • 6.debug方法
                                • 1.打断点
                                • 2.debug
                                • 3.输入网址
                                • 4.此时由于是get方式,所以程序会停在断点处
                                • 5.查看运行类型的确是HiServlet
                                • 6.Servlet注意事项
                                      • 最简化的浏览器访问Servlet过程
                                      • 7.Servlet注解方式
                                          • 1.快速入门
                                            • 1.代码实例
                                            • 2.结果
                                            • 2.Servlet注解方式解密
                                            • 1.与xml方式的区别
                                              • 简要介绍
                                              • 2.Servlet注解的参数说明
                                              • 3.注解URL的4种匹配方式
                                                • 1.精确匹配
                                                • 2.目录匹配
                                                • 3.扩展名匹配
                                                • 4.任意匹配
                                                • 4.URL配置注意事项
                                                • 8.课后练习
                                                    • 1.练习一
                                                      • login.html
                                                      • CatServlet.java
                                                      • web.xml
                                                      • 结果
                                                      • 2.练习二
                                                        • login.html
                                                        • DogServlet.java
                                                        • web.xml
                                                        • 结果
                                                        • 3.练习三
                                                          • PigServlet.java
                                                          • 结果

                                                            1.Servlet整体框架

                                                            Servlet(一)

                                                            Servlet(一)

                                                            2.Servlet快速入门

                                                            Servlet(一)

                                                            1.创建项目配置基本环境

                                                            上个文件有详细介绍

                                                            2.添加jar包
                                                            1.在WEB-INF下创建目录lib,添加文件

                                                            Servlet(一)

                                                            2.添加到项目中

                                                            Servlet(一)

                                                            Servlet(一)

                                                            3.配置代码提示

                                                            Servlet(一)

                                                            3.src下创建文件

                                                            Servlet(一)

                                                            4.实现Servlet接口
                                                            package HelloServlet;
                                                            import javax.servlet.*;
                                                            import java.io.IOException;
                                                            /**
                                                             * @author 孙显圣
                                                             * @version 1.0
                                                             */
                                                            public class HelloServlet implements Servlet {
                                                                /**
                                                                 * 当创建HelloServlet会调用,且只会调用一次
                                                                 * @param servletConfig
                                                                 * @throws ServletException
                                                                 */
                                                                @Override
                                                                public void init(ServletConfig servletConfig) throws ServletException {
                                                                    System.out.println("init()");
                                                                }
                                                                /**
                                                                 * 返回ServletConfig,也就是servlet的配置
                                                                 * @return
                                                                 */
                                                                @Override
                                                                public ServletConfig getServletConfig() {
                                                                    return null;
                                                                }
                                                                /**
                                                                 * 1.该方法处理浏览器的请求
                                                                 * 2.当浏览器每次请求一次servlet时,就会调用一次
                                                                 * 3.当tomcat调用该方法时,会把http请求的数据封装成实现ServletRequest接口的request对象
                                                                 * 4.通过servletRequest对象,可以得到用户提交的数据
                                                                 * 5.ServletResponsed对象可以用于返回数据给tomcat服务器
                                                                 * @param servletRequest
                                                                 * @param servletResponse
                                                                 * @throws ServletException
                                                                 * @throws IOException
                                                                 */
                                                                @Override
                                                                public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
                                                                    System.out.println("hi, helloServlet");
                                                                }
                                                                /**
                                                                 * 返回servlet的信息,使用较少
                                                                 * @return
                                                                 */
                                                                @Override
                                                                public String getServletInfo() {
                                                                    return null;
                                                                }
                                                                /**
                                                                 * 1.该方法是servlet销毁时调用的
                                                                 * 2.只会调用一次
                                                                 */
                                                                @Override
                                                                public void destroy() {
                                                                }
                                                            }
                                                            
                                                            5.在web.xml配置HelloServlet

                                                            Servlet(一)

                                                            6.通过浏览器访问HelloServlet

                                                            Servlet(一)

                                                            Servlet(一)

                                                            3.浏览器访问Servlet的流程分析

                                                            Servlet(一)

                                                            一共有三个容器
                                                            url-name
                                                            name-全类名
                                                            name-实例
                                                            Servlet的生命周期
                                                            初始化阶段

                                                            Servlet(一)

                                                            处理浏览器请求阶段

                                                            Servlet(一)

                                                            终止阶段

                                                            Servlet(一)

                                                            4.GET和POST的分发处理

                                                            代码示例
                                                                @Override
                                                                public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
                                                                    //GET和POST的分发处理
                                                                    //1.首先需要知道,ServletRequest的运行类型其实是它的子类HttpServletRequest的实现类,而getMethod方法是这个子接口的,所以需要将这个父接口转换为子接口的类型
                                                                    HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; //现在就是他的子接口,指向它的实现类,封装了请求的方法
                                                                    String method = httpServletRequest.getMethod();
                                                                    if (method.equals("GET")) {
                                                                        doGet();
                                                                    }
                                                                    else if (method.equals("POST")) {
                                                                        doPost();
                                                                    }
                                                                }
                                                                //编写doGet和doPost方法,用于分发处理
                                                                public void doGet() {
                                                                    System.out.println("doGet被调用");
                                                                }
                                                                public void doPost() {
                                                                    System.out.println("doPost被调用");
                                                                }
                                                            
                                                            
                                                              
                                                                $Title$
                                                              
                                                              
                                                              
                                                                username: 
                                                              
                                                              
                                                            
                                                            

                                                            5.继承HttpServlet来开发Servlet

                                                            Servlet(一)

                                                            1.创建文件

                                                            Servlet(一)

                                                            2.配置web.xml

                                                            Servlet(一)

                                                            3.实现doGet和doPost方法并编写
                                                            package HelloServlet;
                                                            import javax.servlet.ServletException;
                                                            import javax.servlet.ServletRequest;
                                                            import javax.servlet.ServletResponse;
                                                            import javax.servlet.http.HttpServlet;
                                                            import javax.servlet.http.HttpServletRequest;
                                                            import javax.servlet.http.HttpServletResponse;
                                                            import java.io.IOException;
                                                            /**
                                                             * @author 孙显圣
                                                             * @version 1.0
                                                             */
                                                            public class HiServlet extends HttpServlet {
                                                                @Override
                                                                protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    System.out.println("hi HiServlet");
                                                                }
                                                                @Override
                                                                protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    super.doPost(req, resp);
                                                                }
                                                            }
                                                            
                                                            4.浏览器访问

                                                            Servlet(一)

                                                            Servlet(一)

                                                            5.过程解析
                                                            1.http://localhost:8080/servlet/hiServlet发送请求到Tomcat服务
                                                            2.Tomcat服务根据资源路径/hiServlet,找到HelloServlet.HiServlet

                                                            Servlet(一)

                                                            3.创建HiServlet的实例,并调用它的init()方法和service()方法
                                                            4.init()方法就是个空的,重点看service()方法,是它的父类HttpServlet的

                                                            Servlet(一)

                                                            6.debug方法
                                                            1.打断点

                                                            Servlet(一)

                                                            2.debug

                                                            Servlet(一)

                                                            3.输入网址

                                                            Servlet(一)

                                                            4.此时由于是get方式,所以程序会停在断点处

                                                            Servlet(一)

                                                            5.查看运行类型的确是HiServlet

                                                            Servlet(一)

                                                            6.Servlet注意事项

                                                            Servlet(一)

                                                            Servlet(一)

                                                            最简化的浏览器访问Servlet过程
                                                            1. 浏览器向Tomcat服务发送请求
                                                            2. Tomcat服务根据浏览器地址最后的路由/xxx去web.xml中找到对应的类并创建一个对象
                                                            3. 调用init()方法和service()方法
                                                            4. 第二次则直接调用service()方法

                                                            7.Servlet注解方式

                                                            1.快速入门

                                                            Servlet(一)

                                                            1.代码实例
                                                            package annotation;
                                                            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 java.io.IOException;
                                                            /**
                                                             * @author 孙显圣
                                                             * @version 1.0
                                                             */
                                                            //使用注解配置路由,一个servlet可以有多个路由,访问网址为http://localhost:8080/servlet/ok1 或者http://localhost:8080/servlet/ok2
                                                            @WebServlet(urlPatterns = {"/ok1", "/ok2"})
                                                            public class OkServlet extends HttpServlet {
                                                                @Override
                                                                protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    System.out.println("注解的doGet");
                                                                }
                                                                @Override
                                                                protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    System.out.println("注解的doPost");
                                                                }
                                                            }
                                                            
                                                            2.结果

                                                            Servlet(一)

                                                            Servlet(一)

                                                            2.Servlet注解方式解密
                                                            1.与xml方式的区别

                                                            Servlet(一)

                                                            简要介绍
                                                            1. 浏览器向Tomcat服务发送请求
                                                            2. 服务扫描所有类的全路径并且通过反射获取注解对象,从而得到urlPatterns(路由)
                                                            3. 将其与浏览器地址最后的/xxx比对,如果比对成功则调用init()方法和service()方法
                                                            4. 第二次就直接调用service()方法
                                                            2.Servlet注解的参数说明

                                                            Servlet(一)

                                                            3.注解URL的4种匹配方式
                                                            1.精确匹配

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            2.目录匹配

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            3.扩展名匹配

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            4.任意匹配

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

                                                            4.URL配置注意事项

                                                            Servlet(一)

                                                            Servlet(一)

                                                            8.课后练习

                                                            1.练习一

                                                            Servlet(一)

                                                            login.html
                                                            
                                                                
                                                                Title
                                                            
                                                            
                                                            
                                                              username:
                                                            
                                                            
                                                            
                                                            
                                                            CatServlet.java
                                                            package HomeWork;
                                                            import javax.servlet.*;
                                                            import javax.servlet.http.HttpServletRequest;
                                                            import java.io.IOException;
                                                            /**
                                                             * @author 孙显圣
                                                             * @version 1.0
                                                             */
                                                            public class CatServlet implements Servlet {
                                                                private int num = 0; //统计次数
                                                                @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("访问次数:" + (++num));
                                                                    //向下转型获取请求方式
                                                                    HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
                                                                    String method = httpServletRequest.getMethod();
                                                                    if (method.equals("GET")) {
                                                                        System.out.println("GET");
                                                                    }
                                                                    else if (method.equals("POST")) {
                                                                        System.out.println("POST");
                                                                    }
                                                                }
                                                                @Override
                                                                public String getServletInfo() {
                                                                    return null;
                                                                }
                                                                @Override
                                                                public void destroy() {
                                                                }
                                                            }
                                                            
                                                            web.xml

                                                            Servlet(一)

                                                            结果

                                                            Servlet(一)

                                                            Servlet(一)

                                                            2.练习二

                                                            Servlet(一)

                                                            login.html
                                                            
                                                                
                                                                Title
                                                            
                                                            
                                                            
                                                              username:
                                                            
                                                            
                                                            
                                                            
                                                            DogServlet.java
                                                            package HomeWork;
                                                            import javax.servlet.ServletException;
                                                            import javax.servlet.http.HttpServlet;
                                                            import javax.servlet.http.HttpServletRequest;
                                                            import javax.servlet.http.HttpServletResponse;
                                                            import java.io.IOException;
                                                            /**
                                                             * @author 孙显圣
                                                             * @version 1.0
                                                             */
                                                            public class DogServlet extends HttpServlet {
                                                                //统计次数
                                                                private int get = 0;
                                                                private int post = 0;
                                                                @Override
                                                                protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    System.out.println("GET:" + (++get));
                                                                }
                                                                @Override
                                                                protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    System.out.println("POST:" + (++post));
                                                                }
                                                            }
                                                            
                                                            web.xml

                                                            Servlet(一)

                                                            结果

                                                            Servlet(一)

                                                            Servlet(一)

                                                            3.练习三

                                                            Servlet(一)

                                                            PigServlet.java
                                                            package HomeWork;
                                                            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 java.io.IOException;
                                                            import java.net.InetAddress;
                                                            /**
                                                             * @author 孙显圣
                                                             * @version 1.0
                                                             */
                                                            @WebServlet(urlPatterns = {"/pig1", "/pig2"})
                                                            public class PigServlet extends HttpServlet {
                                                                //统计次数
                                                                private int get = 0;
                                                                private int post = 0;
                                                                @Override
                                                                protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    System.out.println("发出请求的浏览器的ip:" + req.getRemoteAddr());
                                                                    System.out.println("GET:" + (++get));
                                                                }
                                                                @Override
                                                                protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                                                                    System.out.println("发出请求的浏览器的ip:" + req.getRemoteAddr());
                                                                    System.out.println("POST:" + (++post));
                                                                }
                                                            }
                                                            
                                                            结果

                                                            Servlet(一)

                                                            Servlet(一)

                                                            Servlet(一)

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]