zoukankan      html  css  js  c++  java
  • Servlet学习笔记

    在这里记录最重要的要点

    1,tomcat-->conf-->server.xml里面的东西是什么?(tomcat怎么知道“谁”去处理客户端来的请求?)

    最主要的是一个依赖的控制,换句话说什么servlet(比如某个继承了HttpServlet的类)要装配在这个tomcat容器(具体是Context容器)里面在这个文件里面添加代码就可以了。

    1 <Context debug="0" docBase="/Users/Davie/Documents/workspace/mySpring/WebContent" path="/chess" reloadable="true"/>

    这句代码就是把我写的一个servlet类装配在tomcat容器里面。装配了之后,每次tomcat启动的时候都会解析server.xml,从而得到一个“映射关系”。

    比如URL大致形式如下:http://hostname: port /contextpath/servletpath

    其中的contextpath就是在server.xml里面写的(在这里是/chess这个路径),就把这个URL映到:/Users/Davie/Documents/workspace/mySpring/WebContent

    这个地址。

    2,工程里面的web.xml是什么?有什么用?(这个项目到底谁去处理具体的httpRequest?)

    在工程里面有个很“著名”的xml文件:WebContent-->WEB-INF-->lib-->web.xml(具体操作系统,eclipse,tomcat版本不同会有不同)

    简单来说,之前的映射是告诉服务器,URL里面的contextpath指定了“那个工程”来处理我的request的话,接下来的问题是:一个工程可以里面有很多Servlet。那么,谁又去处理哪个servletpath呢?

    看一看典型的web.xml部署:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     4     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     5     id="WebApp_ID" version="3.1" metadata-complete="true">
     6     <display-name>mySpring</display-name>
     7     <servlet>
     8         <servlet-name>Foo</servlet-name>
     9         <servlet-class>code.MyServlet</servlet-class>
    10     </servlet>
    11     <servlet-mapping>
    12         <servlet-name>Foo</servlet-name>
    13         <url-pattern>/TheServlet</url-pattern>
    14     </servlet-mapping>
    15 </web-app>

    简单来说,第一个<servlet>标签是告诉tomcat,我有一个servlet叫Foo,它具体对应与我的code.MyServlet这个类(以后这个Servlet的消息都让这个类去处理)。第二个<servlet-mapping>标签是实现URL和servlet的映射:你URL里面写的servletpath(见上文)就可以映射到某个Servlet。这个地方要注意<servlet-name>必须一样。最终的效果是:URL中指定一个类来处理。也就是实现了浏览器写上某个地址,就找到了你写的类。

    以上两点一起构成了“找到你”这个问题

    --未完待续

  • 相关阅读:
    重启sqlserver服务命令
    k8s学习
    collection包1.1.0都升级了什么功能
    Golang项目的测试实践
    一个让业务开发效率提高10倍的golang库
    GopherChina第二天小结
    GopherChina第一天小结
    slice是什么时候决定要扩张?
    史上最快的后台搭建框架
    gorm的日志模块源码解析
  • 原文地址:https://www.cnblogs.com/dsj2016/p/5838665.html
Copyright © 2011-2022 走看看