精华内容
下载资源
问答
  • servlet处理请求的方式
    千次阅读
    2019-09-24 06:36:26

    A、以进程的方式

     

    B、以程序的方式

     

    C、以线程的方式

     

    D、以响应的方式

     

    解答:C

    转载于:https://www.cnblogs.com/borter/p/9562347.html

    更多相关内容
  • servlet处理请求方式

    千次阅读 2019-09-28 14:41:08
  • servlet 请求处理方式

    千次阅读 2019-04-16 10:23:45
    servlet请求处理有以下几种方式: 1、直接处理:req.setAttribute("key","value"); 2、请求转发: req.getRequestDispatcher(uri/servlet别名).forword(req,resp); 特点:发一次请求,浏览器的地址不变; ...

    servlet的请求处理有以下几种方式:

    1、直接处理:req.setAttribute("key","value"); 

    2、请求转发:  req.getRequestDispatcher(uri/servlet别名).forword(req,resp);

          特点:发一次请求,浏览器的地址不变;

                     可以将一次请求的数据传递个下个servlet,通过req.setAttribute();

                     刷新页面的时候,请求重复发送,会导致表单数据重复提交;

    3、请求重定向:response.sendRedirect(uri);

         特点:发2次请求,浏览器的地址改变成第二个servlet的;

                    解决了页面刷新导致表单数据重复提交的问题;

                    无法将第一个的请求数据给第二个请求使用,需要配合cookie、session技术实现数据共享

     

    展开全文
  • Servlet如何处理请求

    千次阅读 2019-05-07 18:04:29
    servlet是如何处理传来的不同的请求的呢? 我们首先要对servlet的生命周期有一个了解! servlet生命周期 新建一个web项目,new一个servlet,这里叫做TestServlet. 在TestServlet中重写构造方法,init,service,...

    servlet是如何处理传来的不同的请求的呢?


    我们首先要对servlet的生命周期有一个了解!

    servlet生命周期

    新建一个web项目,new一个servlet,这里叫做TestServlet.

    TestServlet中重写构造方法initservicedoGetdoPostdestory等方法.

    package com.jd.servlet;
    
    import java.io.IOException;
    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;
    
    public class TestServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    
    	public TestServlet() {
    		System.out.println("构造方法");	
    	
    	}
    	
    	@Override
    	public void init() throws ServletException {
    		System.out.println("init");
    	}
    	
    	@Override
    	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
    		System.out.println("service");
    		super.service(arg0, arg1);
    	}
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		System.out.println("doGet");
    	}
    		
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		System.out.println("doPost");
    	}
    	
    	@Override
    	public void destroy() {
    		System.out.println("destory");
    	}
    }
    

    运行tomcat,观察控制台输出,发现在服务器完成运行前控制台都没有任何输出,也就是说,服务器运行,TestServlet并没有创建对象

    而当访问这个servlet时控制台才会输出(下图)。

    在这里插入图片描述
    即在请求这个TestServlet时,创建对象,初始化,并立即执行方法处理请求。

    我们多次访问TestServlet,控制台只会输出service和doGet,说明此servlet只会创建一次对象,之后再次接收到请求的时候只是这一个对象在执行方法。

    在这里插入图片描述

    那么,如何在服务器运行的时候就直接创建对象而不是等到请求的时候再创建呢?

    web.xml文件中这个TestServlet所在的< servlet >标签中加上一行代码:

    <load-on-startup>1</load-on-startup>
    

    这个数字1也可以是别的数字,不用深究。这行代码的作用就是在服务器运行的时候就创建此servlet对象
    在这里插入图片描述

    再次运行tomcat,果然这次控制台输出了代码,说明创建了对象。
    在这里插入图片描述

    总结serrvlet的生命周期:

    1.创建对象

    默认情况servlet不会随着服务器的启动而创建对象,第一次向此请求时候创建,之后请求不再创建对象,不管在哪个浏览器上发送请求。
    如果在web.xml文件中配置了< load-on-startup>1< /load-on-startup>,会随着服务器的启动而创建对象。

    2.初始化(init)

    在构造方法中会调用init方法,由于对象只创建一次,则在创建对象时执行构造函数,只会进行一次初始化,init只会执行一次。

    3.处理请求

    所有请求到达servlet后先执行service方法,在方法中根据请求方式决定执行doGet还是doPost方法。

    4.销毁(destory)

    重新发布项目,正常关闭tomcat时,会执行此方法,如果非正常关闭,相当于程序中断,不会执行方法。


    那么服务器如何知道把某个请求交给哪个servlet来处理呢?

    web.xml匹配

    当我们向服务器发送一个请求时:http://127.0.0.1:8080/servlet_re1/TestServlet

    服务器会先截掉前面项目名,只剩下后面的请求:/TestServlet

    接着在web.xml文件中的标签< url-pattern>< /url-pattern>内找到一个与上面请求匹配的字符串,记录上一行的< servlet-name>< /servlet-name>标签内的字符串。

    接着在各个< servlet>< /servlet>标签中的< servlet-name>< /servlet-name>内找到一个与上面记录下来的字符串相同的字符串,执行下一行地址所对应的servlet,至此匹配完毕。

    在这里插入图片描述

    如果没有发送任何请求怎么办?

    当我们只向服务器发送项目名:http://127.0.0.1:8080/servlet_re1
    怎么来处理它呢?

    首先在web.xml中我们会发现这段代码:

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    

    联想到我们的网页主页一般都是index.html,是不是非常熟悉呢,当我们访问这个网页名称,后面没有跟任何请求时,服务器将会按照上面顺序,如何有相匹配的请求,就会请求那个servlet,返回请求的页面,这也是我们大多数网页的主页都是index.html的原因。

    WebContent匹配

    如果发送的请求在web.xml文件中找不到一个匹配的怎么办?

    这时候服务器将会把请求与自己的静态资源匹配:
    在这里插入图片描述
    若请求为:http://127.0.0.1:8080/servlet_re1/index.jsp

    截取后为:/index.jsp,在web.xml中找不到匹配的,将会与项目中的WebContent中的文件进行匹配,匹配了根目录下的index.jsp,显示此文件中的内容。


    SpringMVC匹配

    如果我们使用的是Spring框架,那么又是如何进行匹配的呢?

    首先看一下spring在web.xml中的配置(spring配置文件为application.xml

    <servlet>
    	<servlet-name>DispatcherServlet</servlet-name>	<!-- 代码3 -->
    	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    	<init-param>
    		<param-name>contextConfigLocation</param-name>		<!-- 代码4 -->
    		<param-value>classpath:application.xml</param-value>
    	</init-param>
    	<load-on-startup>1</load-on-startup>	<!-- 代码1 -->
    </servlet>
    <servlet-mapping>
    		<servlet-name>DispatcherServlet</servlet-name>	<!-- 代码2 -->
    		<url-pattern>/</url-pattern>
    </servlet-mapping>  
    

    代码1:在服务器运行的时候就创建对象。
    代码2:接收所有请求,并记录servlet-name标签中的字符串
    代码3:在这里匹配到标签中字符串于刚才保存的字符串相同,运行下一行的类文件
    代码4:在代码3运行的servlet中加载spring配置文件

    也就是说,所有请求都将使这个DispatcherServlet执行

    那么它是如何匹配不同的请求的呢?

    在这里插入图片描述
    这是一个Controller注解类,当容器spring扫描类并创建对象时,会将带有@RequestMapping注解的方法中的注解值添加到一个map集合中。

    当请求传来的时候,与map集合中的字符串匹配,若匹配到,执行对应的方法处理请求。

    如何map集合中没有与请求匹配的字符串呢?

    如果没有相匹配的,我们可以在spring配置文件application.xml中添加这两行代码:

    <mvc:default-servlet-handler/>
    <mvc:annotation-driven></mvc:annotation-driven>
    

    作用就是,当没有与请求相匹配的字符串时,使用服务器默认的servlet响应,按照地址匹配,也就是上面提到的 WebContent匹配


    展开全文
  • Servlet客户端请求的步骤及处理流程

    千次阅读 2019-05-19 12:18:09
    (2)Web服务器接收到请求之后,会把该请求交给相应的容器进行处理,此时容器会创建两个对象:HttpServletResponse和HttpServletRequest。 (3)容器根据请求的url信息找到对应的Servlet,然后针对该请求创建一个...
  • servlet请求方式

    2016-08-19 09:05:48
    测试servlet请求方式默认是get请求方式: 1.新建一个GetAndPost的测试类,代码如下: package eduask; import java.io.IOException; import javax.servlet.ServletException; import javax....
  • servlet异步请求

    万次阅读 2020-12-12 13:02:56
    1、什么是servlet异步请求 ...其中第二步处理业务逻辑时候很可以碰到比较耗时的任务,此时servlet主线程会阻塞等待完成业务处理,对于并发比较大的请求可能会产生性能瓶颈,则servlet3.0之后再此处做了调整,引入了...
  • 详细介绍了Java Web 的Servlet3.0 中提供的异步请求处理机制的原理,并提供了使用案例!
  • Servlet获取请求参数

    千次阅读 2022-03-29 17:17:43
    Servlet获取请求参数 index.jsp <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <!DOCTYPE html> <html> <head> <title>Title</title> </head...
  • Servlet处理客户端请求过程

    千次阅读 2019-06-13 15:35:56
    前言 由于Servlet没有main函数,运行在容器中,所以整个生命周期由容器控制。具体可以分为5个状态: ... 处理客户端请求。容器在接到客户端请求时,都会创建一个新的线程,通过调用Servlet的serv...
  • Servlet如何处理请求及生命周期

    千次阅读 2016-04-07 17:59:28
    一、servlet容器如何处理请求资源路径?  比如,在浏览器地址栏输入  http://ip:port/web04_2/abc.html  浏览器会将请求资源路径("/web04_2/abc.html")放到请求数据包里面,发送给容器。容器收到之后,会依据应用...
  • Servlet处理请求和响应

    千次阅读 2016-10-14 22:37:30
    Servlet处理请求的流程:  1) 客户端在浏览器的地址栏中输入一个请求的URL,按回车后就向服务器端发起一个http request(由浏览器生成)。  2) 服务器端的Web Server首先接受到请求,并将请求转交给容器,容器会根据...
  • Servlet Java Servlet 是运行在Web 服务器或应用服务器上的程序. 其主要功能在于交互式地浏览和修改数据,生成动态Web内容. 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet...
  • 请求servlet的几种方式

    千次阅读 2019-06-05 20:13:18
    form表单 ajax a标签 servlet请求servlet js location.href 请求 地址栏直接请求 1.通过URL调用
  • 文章目录HTTP协议http请求两种http请求方式GET方式POST方式GET请求和POST请求的区别http响应Servlet处理接收和响应请求HttpServletRequestHttpServletResponse HTTP协议 1、HTTP协议属于应用层协议; OSI七层网络...
  • 这只需要我们在jsp页面向servlet发送请求时候,并传递一个参数,这个参数值是用来标记此请求,进入BeanServlet类我们只需要对这个参数值进行判断,然后创建对应的处理请求的方法即可! 具体实现 jsp页面 <%@ ...
  • servlet处理方式

    千次阅读 2018-05-25 17:26:03
    Servlet容器默认是采用单实例多线程的方式处理多个请求的: 1.当web服务器启动的时候(或客户端发送请求到服务器时),Servlet就被加载并实例化(只存在一个Servlet实例); 2.容器初始化化Servlet主要就是读取配置...
  • 一、Web服务器 二、Servlet 三、Web服务器确定Servlet处理请求过程
  • Servlet代码 package project0816; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.htt....
  • servlet容器会根据请求的url-pattern找到对应的Servlet类,执行对应的doPost或doGet方法,再将响应信息返回给浏览器,这种情况下,一个具体的Servlet类只能处理对应的web.xml中配置的url-pattern请求,一个Servlet类...
  • Servlet之tomcat处理Http请求的流程

    千次阅读 2016-09-08 14:56:17
    1.问题描述:
  • Servlet容器请求处理

    千次阅读 2017-07-31 18:05:23
    本篇文章将给大家讲述Servlet容器中请求处理的过程,在给本篇文章起标题时,一直在“应用服务器”与“Servlet容器”这两者之间拿捏不定,主要是因为要清晰的区分开这两者的关系:Servlet容器可以说是应用服务器的一...
  • Servlet处理GET和POST请求

    千次阅读 2019-09-27 23:29:33
     doGet()表示,当客户端是使用get方式请求servlet时,那么就会触发执行doGet()方法中的代码。  doPost()表示,当客户端是使用post方式请求servlet时,那么就会触发执行doPost()方法中的代码。  而service()...
  • Servlet GET和POST请求

    千次阅读 2018-12-15 15:41:55
    一、HTTP协议的GET和POST请求 1、HTTP简介:  HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。  HTTP协议工作...
  • 一个Servlet处理多个请求

    千次阅读 2018-09-21 17:24:19
    普通的Servlet一个Servlet只能处理一个请求,可以仿Struts1中的DispatchAction让一个Servlet处理多个请求。 做法是: 让普通处理请求的Servlet继承父类的BaseServlet,然后让父类单独继承HttpServlet.然后再在处理...
  • servlet异常处理Today we will look into Servlet Exception and Error Handling. Sometime back I wrote a post about Exception Handling in Java but when it comes to web application, we need more than ...
  • servlet获取get和post请求数据方式

    千次阅读 2018-07-11 14:16:54
    get请求和post请求 都可以通过request.getParameter("age")方法获取;   get请求request.getQueryString() get请求可以通过request.getQueryString()获取url后面的字符串。 示例:...
  • 导入Java包放在这个目录下 ... 创建Servlet进行登录页面请求处理 2、点击登录完成登录操作 浏览器发送请求到服务器(用户信息+其他数据) 服务器调用对应的servlet进行处理 设置响应编码格式 获取请求信息 ...
  • 文章目录 Tomcat中的NIO模型 Servlet 请求处理分析 Servlet请求处理流程示意图 Servlet请求处理源码剖析 Mapper 组件体系结构 Tomcat中的NIO模型 Tomcat : 8.5.55 Servlet 请求处理分析 一个servlet请求 --> 最终...
  • Servlet处理客户端HTTP请求

    千次阅读 2016-01-28 10:26:55
    本篇博客将在上一篇博客《Servlet第一个示例》的基础上继续介绍,Servlet如何处理客户端的请求,获得客户端的请求消息。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 351,296
精华内容 140,518
关键字:

servlet处理请求的方式