精华内容
下载资源
问答
  • servlet请求方式
    千次阅读
    2019-06-05 20:13:18

    1.通过URL调用(以GET方式进行提交)
    (1)在浏览器地址栏内输入

    http://localhost:8080/servlet/TestServlet?id=1&name=zhangsan
    

    即可请求TestServlet并将id=1和name=zhangsan以GET的方式提交上去。
    (2)可以将上面的内容作为a标签的href值。
    (3)在js中,也可以将上面的内容作为window.location.href的值。


    2.通过表单提交(以GET/POST方式进行提交)

    <form action="TestServlet" method="post">
    	账号:<input type="text" name="account" />
    	密码:<input type="password" name="pwd" />
    	<input type="submit" value="登录" />
    </form> 
    

    通过form表单可以通过GET或POST两种方式进行提交,如果以GET方式进行提交,account和pwd的值将显示在地址栏中;以POST的方式这些值将不能显式看到。


    3.通过ajax方式提交
    在引入jquery.js后,可在< script >< /script >标签内填入以下内容:
    (1)在指定提交请求类型为GET后,可以在属性url后通过方式一进行请求;也可以通过在data属性后输入键值对形式提交数据。

    $.ajax({
    		type: 'GET',
    		url: 'TestServlet',
    //		data: {"account":account,"pwd":pwd},//上传数据
    		dataType:"JSON",//要求返回的数据格式要求
    		success: function(data,msg){//data指服务器返回的数据
    			//请求成功触发
    		},
    		error:function(xhr,errorMsg,error){
    			//请求失败触发
    		}
    	});
    

    (2)在指定提交类型为POST后,只能通过在data属性后输入键值对形式提交数据。


    4.通过一个servlet请求另外一个servlet
    在一个servlet的doGet()/doPOST()方法中输入以下内容:
    目的servlet将使用doGet接收该请求,不会用doPOST方法接收。

    request.setAttribute("account", "张三");//在请求中以属性形式设置要传送的数据
    request.getRequestDispatcher("TestServlet").forward(request, response);//将请求分发到TestServlet
    
    更多相关内容
  • servlet请求方式

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

    测试servlet的请求方式默认是get请求方式:

    1.新建一个GetAndPost的测试类,代码如下:

    package eduask;

    import java.io.IOException;

    import javax.servlet.ServletException;

    import javax.servlet.http.HttpServlet;

    import javax.servlet.http.HttpServletRequest;

    import javax.servlet.http.HttpServletResponse;

    //测试默认的请求方式为get请求方式;

    public class GetAndPost extends HttpServlet{

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {

    System.out.println("doGet");

    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException ,IOException {

    System.out.println("doPost");

    }

    }

    2.在web.xml文件中配置相关属性,配置结果如下:

    <!--测试get和post的请求方式  -->

    <servlet>

    <servlet-name>getAndPost</servlet-name>

    <servlet-class>eduask.GetAndPost</servlet-class>

    </servlet>

    <servlet-mapping>

    <servlet-name>getAndPost</servlet-name>

    <url-pattern>/getAndPost</url-pattern>

    </servlet-mapping>

    3.启动tomcat在浏览器中输入:

    http://localhost:8080/webDemo/getAndPost

    4.在控制台下可以看到“doGet”

    展开全文
  • Servlet请求方式

    千次阅读 2011-09-14 22:47:14
    Http协议下请求和响应的格式: 请求格式:请求行、请求头、请求正文部分 响应格式:响应状态行、响应头、响应内容 Post请求与Get请求区别:与get请求不同,地址栏没有变化,...请求中参数的组装方式: Get方式
     
    Http协议下请求和响应的格式:
    请求格式:请求行、请求头、请求正文部分
    响应格式:响应状态行、响应头、响应内容
    
    Post请求与Get请求区别:与get请求不同,地址栏没有变化,数据在地址栏不可见,安全。理论上没有长度限制。
    
    请求中参数的组装方式:
    Get方式:在请求行中组装,附加在URL后
    格式:?参数1名=参数1值&...参数1名=参数1值
    Post方式:组装在请求正文中
    格式:参数1名=参数1值&...参数1名=参数1值
    说明:提交表单时,参数名为表单中html标签的name属性的值,参数值为表单中Html标签的value属性的值,要将value值与页面所呈现的值区分开。
    
    doGet():处理Get方式发出的请求:
    超链接
    Js脚本:location.replace()等
    表单的method设定为get
    
    doPost():处理Post方式发出的请求
    表单的emthod设定为post
    Js脚本:form.submit();
    
    doGet,doPost与service方法的联系:
    请求首先交由service方法,然后service根据其请求的类型调用doGet或doPost处理请求。
    在自定义的Servlet中,假设要重写service方法,建议先通过super调用父类的service方法,否则,重写的doGet与doPost可能不会被正确调用。
    
    实例:
    新建login.html页面
     <form name="f1" id="f1" action="/Web01/LoginServlet" method="post">
          <table border="0" width="30px">
            <tr>
              <td>Login:</td>
              <td colspan="3"><input type="text" name="login" id="login"></td>
            </tr>
            <tr>
              <td>sex:</td>
              <td><input type="radio" name="sex" value="0" id="man"><label for="man">man</label></td>
         	  <td colspan="2"><input type="radio" name="sex" value="1" id="woman"><label for="woman">woman</label></td>
            </tr> 
            <tr>
            <td>like:</td>
            <td><input type="checkbox" name="like" value="palying">paly</td>
            <td><input type="checkbox" name="like" value="studing">study</td>
            <td><input type="checkbox" name="like" value="reading">read</td>
            </tr>
            <tr>
              <td colspan="2" align="center"><input type="submit" value="提交"></td>
            </tr>
          </table>
        </form>
    
    创建servlet服务
    public void process(HttpServletRequest request, HttpServletResponse response)
    	throws ServletException, IOException {
    		response.setContentType("text/html;charset=GB2312");//在页面上显示简体中文
    		PrintWriter out = response.getWriter();
    		String login = request.getParameter("login");//得到文本框中的value
    		String sex = request.getParameter("sex");//得到单选按钮的value
    		String[] like = request.getParameterValues("like");//得到多选按钮的name数组
    		out.print("login:"+login+"<br/>");
    		out.print("sex:"+sex+"<br/>");
    		out.print("like:");
    		if(like!=null){
    			for(Object obj:like){//增强for循环
    				out.print(obj);
    			}
    		}
    		out.flush();
    		out.close();
    	}
    	
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		process(request,response);
    	}
    
    	/**
    	 * The doPost method of the servlet. <br>
    	 *
    	 * This method is called when a form has its tag value method equals to post.
    	 * 
    	 * @param request the request send by the client to the server
    	 * @param response the response send by the server to the client
    	 * @throws ServletException if an error occurred
    	 * @throws IOException if an error occurred
    	 */
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		process(request,response);
    	}
    
    配置xml文件:
    <servlet-mapping>
    	<servlet-name>hello</servlet-name>
    	<url-pattern>/helloworlds</url-pattern>
    	</servlet-mapping>
      <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>//配置访问路径
      </servlet-mapping>

    展开全文
  • 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-04-16 10:23:45
    servlet请求处理有以下几种方式: 1、直接处理:req.setAttribute("key","value"); 2、请求转发: req.getRequestDispatcher(uri/servlet别名).forword(req,resp); 特点:发一次请求,浏览器的地址不变; ...
  • servlet获取get和post请求数据方式

    千次阅读 2018-07-11 14:16:54
    get请求和post请求 都可以通过request.getParameter("age")方法获取;   get请求request.getQueryString() get请求可以通过request.getQueryString()获取url后面的字符串。 示例:...
  • servlet处理请求方式

    千次阅读 2019-09-28 14:41:08
  • 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异步请求

    万次阅读 2020-12-12 13:02:56
    1、什么是servlet异步请求 Servlet 3.0 之前,一个普通 Servlet 的主要工作流程大致如下: (1)、Servlet 接收到请求之后,可能需要对请求携带的数据进行一些预处理; (2)、调用业务接口的某些方法,以完成...
  • Servlet 获取请求数据

    千次阅读 2022-05-04 20:54:38
    servlet中获取请求中的数据
  • Servlet请求转发与重定向

    千次阅读 2021-02-14 19:51:29
    辨析请求转发与重定向
  • A、以进程的方式 B、以程序的方式 C、以线程的方式 D、以响应的方式 解答:C 转载于:https://www.cnblogs.com/borter/p/9562347.html
  • Java中向Servlet发送请求的几种方式

    千次阅读 2019-06-05 23:07:50
    在Java中,一个Servlet类继承了HttpServlet类,而对于一个Servlet来说,最重要的就是重写父类的两个方法,doGet()和doPost()方法.HTML的form表单有两种提交方式(method),分别为get和post,前者会导致请求地址的改变并且将...
  • 关于Servlet请求转发到html界面中文乱码问题

    千次阅读 热门讨论 2019-10-30 20:16:47
    Servlet请求转发(requst.getRequestDispatcher("url").forward(req,resp);)到html界面出现浏览器前台数据乱码。。。emmm。。真让人头大。。。然后把请求转发到jsp界面毫无任何问题。。。哈???我裂开了!!! ...
  • Tomcat servlet 请求的资源不可用

    千次阅读 2021-07-01 21:02:39
    出现结果如图 web.xml文件里的配置也没有出错 死活找不出来,照着课本jsp实验书打出来的,没有代码错误,浪费了我一个下午各种查和修改。 最后发现是路径,web.xml文件是放在web服务目录\WEB-INF\ 下面就可以了...
  • SpringBoot里使用Servlet进行请求

    万次阅读 2020-07-05 18:58:50
    @ServletComponentScan(basePackages = "application.servlet") 示例代码: package application; import io.seata.spring.annotation.datasource.EnableAutoDataSourceProxy; import javafx.application....
  • servlet请求转发的三种方式   servlet中的请求转发主要有三种方式: 1、 forward:是指转发,将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。...
  • 详细介绍了Java Web 的Servlet3.0 中提供的异步请求处理机制的原理,并提供了使用案例!
  • servlet请求转发

    千次阅读 2019-01-31 16:02:28
    请求转发   一个servlet负责一个功能 比如一个servlet只是负责登陆界面的展示 另一个负责登陆状态的判断,则登陆状态判断为 否则就要回到登陆界面 即需要转发会负责登陆界面展示的servlet   req....
  • 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两种注解方式

    千次阅读 2022-04-24 15:39:04
    1、 web.xml部署servlet 注意:如果有form表单和servlet有关联,<url-pattern>后面应填入与action参数相同,例如 ...从浏览器发送请求时,会直接寻找@WebServlet后对应的url地址,调用并执行.
  • 请求头:请求方式、请求的地址和HTTP 协议版本 请求行:消息报头,一般用来说明客户端要使用的一些附加信息 空行: 位于请求行和请求数据之间,空行是必须的。 请求数据:非必须。 HTTP 协议之请求方式 根据...
  • Servlet工作过程 图示: 文字: 客户端向服务器端发送HTTP请求 服务器端容器解析该请求 容器去创建Servlet实例 调用Servlet实例的 init() 方法 调用Servlet实例的 service() 方法 Servlet实例向容器输出响应信息 ...
  • Servlet处理客户端请求过程

    千次阅读 2019-06-13 15:35:56
    前言 由于Servlet没有main函数,运行在容器中,所以整个生命周期由容器控制。具体可以分为5个状态: 加载,容器通过类加载器来加载...容器在接到客户端请求时,都会创建一个新的线程,通过调用Servlet的serv...
  • Servlet Java Servlet 是运行在Web 服务器或应用服务器上的程序. 其主要功能在于交互式地浏览和修改数据,生成动态Web内容. 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet...
  • 我在创建之前创建了一个Filter文件,删除文件后,没有清除XML中的Filter的配置,此时创建任意Servlet都出现了请求资源不可用的情况,如下图 删除XML中的Filter的配置后,即可成功显示页面
  • 访问Servlet方式介绍 服务器中转发访问Servlet 浏览器地址栏输入URL访问Servlet 重定向访问Servlet jsp对应的网页上发出请求(重点)超链接访问window.location.href访问 伪连接事件表单提交(get,post)理其它...
  • servlet类放在一个package首先,把这个servlet类放在一个Java package 。 您应该始终在一个包中公开可重用的Java类,否则它们对于包中的类(如服务器本身)是不可见的。 这样可以消除潜在的环境特定问题。 无包...
  • 其实,我们只需要一个Servlet就可以处理多个请求,这只需要我们在jsp页面向servlet发送请求时候,并传递一个参数,这个参数值是用来标记此请求,进入BeanServlet类我们只需要对这个参数值进行判断,然后创建对应的...
  • 在项目中或平时学习中,经常会遇到要使用ajax与servlet进行通信的需求,比如登录或其他的表单提交,最简单的想法是ajax把...好吧,想法很好,实际上,servlet在判断正确后进行跳转,我们会发现,不管用请求转发( request.get

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 537,045
精华内容 214,818
关键字:

servlet请求方式