码迷,mamicode.com
首页 > 编程语言 > 详细

JavaWeb-Servlet(一)

时间:2018-07-22 19:23:45      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:host   col   javaweb   实现原理   --   应用   jsp   splay   package   

 一 Servlet(Server Applet)是Java Servlet的简称,是服务器小应用程序
  1)用来完成B/S架构下,客户端请求的响应处理
 
技术分享图片

 

  2)平台独立,性能优良,能以线程方式运行
  3)Servlet API为Servlet提供了通用的编程接口
  4)Servlet一般在容器中运行,对外统一接口,由容器来调用。
    常见的Servlet容器:Tomcat
       
 二  TomcatServlet的关系
  上面说过,Servlet需要对外统一接口,那么谁来统一这些接口呢?这个时候就需要容器来调用。
  Tomcat是一个Web应用轻量级服务器,同时也是一个Servlet\JSP容器。其作为Servlet容器,有三种工作模式:独立的Servlet容器、进程内的Servlet容器和进程外的Servlet容器。
技术分享图片

    web服务器收到客户端的Servlet访问请求后,若是服务器装载并创建了Servlet的实列对象

  1) Tomcat将http请求文本进行解析,然后封装称为HttpServletRequest类型的Requset对象

  2) Tomcat将要响应的信息封装为HttpServletResponse类型的response对象进行返回

 
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
     request;
    HttpServletResponse response;
    try {
        request = (HttpServletRequest)req;
        response = (HttpServletResponse)res;
    } catch (ClassCastException var6) {
        throw new ServletException("non-HTTP request or response");
    }

    this.service(request, response);
}

 

 三  创建一个Servlet

  3.1 Servlet的执行流程

    首先,如果浏览器由这样一个输入:http://localhost:8080/demo/MyServlet

  http:http协议 

      统一资源定位符URL。

        格式:<协议>://<主机>:<端口>/<路径>

  localhost:域名

  8080:Tomcat端口号

            技术分享图片

  demo:   web应用的名称,在webapps下找是否存在demo的目录。

  MyServlet:web资源,在demoweb的应用的应用下查找是否存在此资源。

    /MyServlet资源就是我们的一个Servlet 

        ->   得到/MyServlet字符串

        ->   使用/MyServlet到web.xml文件中查找每一个<servlet-mapping>下的<url-pattern>标签里的内容,然后得到sevlet-name

        ->   使用sevlet-name去servlet标签中找到对应的相同名称的servlet配置。

        ->   得到servlet配置中的servlet-class内容。     

<servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

 

   3.2 DIEA开发Servlet

    1 新建JAVA EE Web Appication工程。

    2 新建一个Servlet类。

    3 导入需要依赖的tomcat目录下的servlet-api.jar包

        技术分享图片  

  4  编写FirstServlet的代码.

  

package javademo;

import java.io.IOException;
import java.io.PrintWriter;

public class FirstrServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {

    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        pw.write("<h1> hello first servlet!</h1>");
    }
}

 

   

    5 编写web,xml配置文件 dom4j才能正确解析

 

<servlet>
    <servlet-name>FirstrServlet</servlet-name>
    <servlet-class>javademo.FirstrServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>FirstrServlet</servlet-name>
    <!-- 响应所有请求-->
    <url-pattern>/FirstrServlet</url-pattern>
</servlet-mapping>

 


 

技术分享图片

  3.3 详解Servlet实现原理

 

 

 

 

JavaWeb-Servlet(一)

标签:host   col   javaweb   实现原理   --   应用   jsp   splay   package   

原文地址:https://www.cnblogs.com/zqoceean/p/9343491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!