Servlet(一)

04-14 1397阅读

文章目录

    • 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购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]