美文网首页
Web服务器 Tomcat,Servlet

Web服务器 Tomcat,Servlet

作者: 扶光_ | 来源:发表于2023-10-20 19:53 被阅读0次

    web服务器是一个软件,对HTTP协议的操作进行封装,使程序员不必直接对协议进行操作,更加便捷
    也就是可以将web项目部署到服务器中,对外提供网上浏览服务

    Tomcat

    是一个开源免费的,支持servlet /jsp少量的JavaEE规范
    javaee(企业版) 里面包含很多规范如,jdbc,xml,jsp等等
    tomcat官网

    1.1 tomcat的基本使用

    安装 直接将压缩包解压即可
    卸载 直接删除对应的安装包
    启动 apache-tomcat-8.5.68\bin\startup.bat 双击启动


    image.png

    关闭的话用ctrl+c 正常关闭

    1.2 tomcat的配置

    1. 端口号被占用的情况,使用win+r命令打开命令窗口输入cmd,在黑窗口命令输入netstat -ano | findstr :8080,最后一列是pid ,记住这个pid去任务管理器关闭掉次端口号
    2. 更改tomcat端口号,在conf目录下的server.xml配置文件下,找到
    <Connector port="65534" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
    

    更改端口号,1-65535

    1. 控制台乱码问题,因为tomcat是采用utf-8的编码格式,而windows下的命令窗口是GBK的编码格式.

    1.3 tomcat部署项目

    将项目放在webapps目录下即可完成部署
    javaweb项目一般会被打包成war包,然后将war包放在webapps目录下,tomcat会自动解压该文件


    webapps IDEA部署Maven Web项目

    IEDA创建Maven Web项目的两种方式

    • 1 使用IDEA模板来进行创建


      image.png
    web.xml文件信息
    最后需要补全一下缺失的目录 java和resources
    • 2 不使用模板创建


      image.png

    1.4在IDEA中使用tomcat

    正常情况我们在tomcat上部署项目需要将打包好的war包放在tomcat的webapps这个目录下进行部署,但是每次这样都是一个非常麻烦的过程
    所以我们将本地的tomcat集成到idea中,在idea中进行部署

    第一步 第二步
    第三步
    第四步
    启动 运行
    • 还有第二种方法使用tomcat-maven插件的方式
      第一步
      第二步
      image.png

    二,Servlet

    是java提供的一门动态web资源开发的技术
    在服务器中分为两类,一种为静态资源(html css js),另一种为动态资源(jsp)
    静态资源不管哪个用户访问他展示的始终如一,不会变
    动态资源不同用户访问或参数不一致,看到的效果不一样

    就像管理员登录我们/adminlogin 登录显示管理员页面
    普通用户/user登录我们显示普通用户页面

    Servlet是javaEE的一种规范(接口),奖励需要定义Servlet类来实现Servlet接口,并有服务器来运行Servlet

    image.png
    然后启动tomcat,向浏览器输入url访问该路径,http://localhost:65534/tomcatDemo1/demo1
    demo1就是servlet配置的访问路径 执行流程

    2.1 Servlet生命周期

    是指一个对象从创建到销毁的整个过程


    生命周期

    1 .init 加载和实例化

     /**
         *1.初始化的方法
         * 调用次数:servlet被第一次访问时调用,只调用一次
         * 可以通过LoadOnStartup改变调用时机,默认-1 是指第一次被访问的时候调用
         * @param servletConfig
         * @throws ServletException
         */
        public void init(ServletConfig servletConfig) throws ServletException {
            //这里只会被执行一次
        }
    

    0或正整数是服务器启动时创建servlet对象,数字小优先级高
    @WebServlet(urlPatterns="/demo1",LoadOnStartup = 1)

    1. service 提供服务
       /**
         * 调用时机和次数 每一次servlet被访问时,调用
         * @param servletRequest
         * @param servletResponse
         * @throws ServletException
         * @throws IOException
         */
        public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
            System.out.println("欢迎来到servlet");
        }
    

    3.destroy 销毁

     /**
         * 调用时机和次数 在servlet被销毁(内存释放或关闭)的时候被调用,只会被调用一次
         */
        public void destroy() {
          System.out.println("destroy");
        }
    
    image.png

    mvn tomcat7:run 启动命令

    在这里输入ctrl+c 正常关闭,才会执行destroy

    2.2 servlet方法

        /**
         * 这个方法用于获取信息
         * @return
         */
        public String getServletInfo() {
            return null;
        }
    
        /**
         * 获取servlet配置对象的  
         * @return
         */
        public ServletConfig getServletConfig() {
            return null;
        }
    

    三,Servlet体系结构

    简化servlet的开发


    image.png
    @WebServlet("/demo2")
    public class ServletDemo2 extends HttpServlet{
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("get..................");
        }
      
        @Override 
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("post..................");
    
        }
    }
    

    使用url路径的形式访问会触发get方法
    使用表单明确post请求 会触发post方法

    因为这样会比传统的servlet处理更方便,在传统servlet中是使用service这个方法去处理方法逻辑的
    get提交的请求参数在请求行中,也就是url地址栏
    post提交的请求参数在请求体里面 body
    所以不同请求方式请求参数位置不一样,所以写不同的处理逻辑
    所以需求根据请求方式的不同分别处理

    3.2 Servlet urlParttern配置

    • 1@WebServlet("/demo2")可以配置多个url
      例如:@WebServlet(urlParttern={"/demo2","/demo3"})
    • 2 urlParttern匹配规则
      精确匹配:配置路径和访问路径一模一样 @WebServlet(urlParttern={"/user/demo2"})
      目录匹配:@WebServlet(urlParttern={"/user/"})
      访问路径 localhost:8080/user/aaa , localhost:8080/user/bbb 都可以访问
      扩展名匹配:@WebServlet(urlParttern={"/user/
      .txt"})
      localhost:8080/user/aaa.txt localhost:8080/user/xyz.txt都可以访问
      任意匹配 :@WebServlet(urlParttern={"/*"})
      后面写什么都可以访问
      xml配置

    相关文章

      网友评论

          本文标题:Web服务器 Tomcat,Servlet

          本文链接:https://www.haomeiwen.com/subject/hodkidtx.html