精华内容
下载资源
问答
  • Servlet转发

    2019-09-28 05:45:37
    可以使用ServletContext中的getRequestDispatcher(url).forward(request, response)方法进行转发 myservlet2.java public class myservlet2 extends HttpServlet { public void doGet(HttpServletRequest ...

    可以使用ServletContext中的getRequestDispatcher(url).forward(request, response)方法进行转发

    myservlet2.java

    public class myservlet2 extends HttpServlet {
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		System.out.println("我要办事");
    		System.out.println("你的事我办不了");
    		System.out.println("你的事我找人帮你办");
    		ServletContext application=this.getServletContext();
    		//将请求向下传递
    		application.getRequestDispatcher("/demo3").forward(request, response);
    		System.out.println("事办完了");
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request,response);
    	}
    
    }
    

     myservlet3.java

    public class myservlet3 extends HttpServlet {
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		System.out.println("这个事我能办");
    	}
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request,response);
    	}
    
    }
    

      web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	xmlns="http://java.sun.com/xml/ns/javaee" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name></display-name>
    
       <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>myservlet2</servlet-name>
        <servlet-class>com.zk.myservlet.myservlet2</servlet-class>
      </servlet>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>myservlet3</servlet-name>
        <servlet-class>com.zk.myservlet.myservlet3</servlet-class>
      </servlet>
    
       <servlet-mapping>
        <servlet-name>myservlet2</servlet-name>
        <url-pattern>/demo2</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>myservlet3</servlet-name>
        <url-pattern>/demo3</url-pattern>
      </servlet-mapping>	
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    </web-app>
    

    运行效果:此案例从myservlet2.java中间转发至myservlet3.java

    程序结构

     

     

     

    转载于:https://www.cnblogs.com/longlyseul/p/9948302.html

    展开全文
  • servlet转发

    2009-12-12 17:00:34
    Servlet可以将发送给自己的请求转发给另一...Servlet中的请求转发有三种形式,主要是通过HttpServletRequest对象和HttpServletResponse对象实现。       public void service(HttpServletRequest request,...

        Servlet可以将发送给自己的请求转发给另一个URL地址,这个URL地址可以是html、jsp、servlet或其他的http地址。Servlet中的请求转发有三种形式,主要是通过HttpServletRequest对象和HttpServletResponse对象实现。

     

     

     

    public void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    //......
    1.request.getRequestDispatcher("/url").include(request,response);
    2.request.getRequestDispatcher("/url").forward(request,response);
    3.request.sendRedirect("/url");
    //......
    }

        三种方式的区别是:

    include:将url中的内容包含到当前的servlet输出当中,在服务器端完成,一般叫做包含;

    forward:将当前的Request和response对象交给指定的url处理,一般称作转发请求;在服务器端完成,客户端

                  地址栏看到的路径还是当前请求的servlet路径;

    sendRedirect:指示客户端重新发起一次请求,第二次请求指向其参数的url,一般称作重定向;客户端的地址栏将

                  改变为url值,是由客户端发起的第二次请求。

     

    include与forward的区别:

     include是把别人包含进来,forward则是丢掉自己

    include是把另一个servlet/jsp处理过后的内容拿过来与本身的servlet的内容一起输出;

    forward是把请求的内容转发到另一个servlet/jsp中。在forward之前,在原始的servlet中不能对输出做flush。最终只有被被forward去的servlet的内容被输出。

     

    在原始servlet中设置的响应状态码和响应头会被include的servlet忽略。include的servlet在处理的时候只会保留进入include的servlet之后的状态码和状态头。

    对于forward,在两个servlet设置的状态码和状态头都会被用到。

     

    使用include转发时,response的编码格式不是UTF-8,所以请求时会出现乱码现象,因此需要显示的response的编码修改为UTF-8/GBK/GB2312。

     

    不管是include、forward还是sendRedirect,在该行代码执行之后的语句仍然被执行,只是输出到response的内容没有作用了。

     

    总结:

    sendRedirect与include、forward的区别在于是不是同一个Request,sendRedirect会有两次交互;

    include与forward的区别在于输出的内容,include包含两者的结果,而forward只有forward一个,以及响应头。

     

    展开全文
  • Servlet转发与重定向

    2020-08-18 12:13:09
    Servlet转发与重定向 跳转的方式 转发 forward 重定向 redirect 转发和重定向代码怎么完成 转发 //请求转发到/b对应的Servlet request.getRequestDispatcher("/b").forward(request,response); 重定向 ...

    Servlet转发与重定向

    跳转的方式

    • 转发 forward
    • 重定向 redirect

    转发和重定向代码怎么完成

    • 转发

      //请求转发到/b对应的Servlet
      request.getRequestDispatcher("/b").forward(request,response);
      
    • 重定向

      response.sendRedirect(request.getContextPath() + "/b");
      

    转发和重定向的区别?

    • 相同点:都可以完成资源的跳转
    • 不同点:
      • 转发是request对象触发的,服务器内部进行转发
      • 重定向是response对象触发的,要将重定向的路径相应给浏览器
      • 转发是一次请求,浏览器地址栏上地址不变
      • 重定向是两次请求,浏览器地址栏上的地址发生变化
      • 重定向路径需要加项目名(webapp跟路径web目录)
      • 转发是在本项目内部完成资源的跳转
      • 重定向可以完成跨app跳转,例如可以跳转到https://www.baidu.com

    跳转的下一个资源可以是什么?

    跳转的下一个资源可以是web服务器中任何一种资源:Servlet、HTML、JSP …

    什么时候采用转发,什么时候采用重定向?

    大部分情况下都使用重定向

    • 若想完成跨app跳转,必须采用重定向
    • 若在上一个资源中向request范围中存储了数据,希望在下一个资源中从request范围中取出,必须使用转发
    • 重定向可以解决浏览器的刷新问题

    重定向原理是什么?

    response.sendRedirect("/jd/login");
    

    程序执行到以上代码,将请求路径/jd/login反馈给浏览器,

    浏览器又向web服务器发送了一次全新的请求:/jd/login

    浏览器地址栏上最终显示的地址是:/jd/login

    展开全文
  • Servlet转发不了

    2019-12-26 22:09:25
    今天在 学 servlet转发技术的时候 代码看了 好久 没问题 就是转发不了 原来 我在第一个 servlet1 里面转发的是 在 do get 方法里面进行的 但是。。。。 转发的对象servlet2是 默认 do post方法 所以接受不到我的 ...

    今天在 学 servlet转发技术的时候

    代码看了 好久 没问题 就是转发不了

    原来 我在第一个 servlet1 里面转发的是 在 do get 方法里面进行的

    但是。。。。 转发的对象servlet2是 默认 do post方法

    所以接受不到我的 转发 自然也不会在控制台打印我所得到的值了

    在这里插入图片描述转发一定要记住 转发后使用的方法要一致

    在这里插入图片描述

    servlet 默认情况下调用 的是 do post 方法

    展开全文
  • Servlet--Servlet转发和重定向 一、Servlet请求转发三种方式 servlet中的请求转发主要有三种方式 forward转发原理: 1、浏览器向第一个servlet(FirstServlet)发送请求,tomcat接到请求后调用...
  • 主要为大家详细介绍了servlet转发、包含的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java servlet 转发问题

    2015-12-23 14:04:15
    从一个servlet转发到另一个servlet的时候直接把第二个servlet的代码打出来了没有执行,第二个servlet单独运行的时候是没问题的。。不知道是哪里写错了。。求指教。。附上第一个servlet转发的代码 public void ...
  • 122 Servlet_5 _Servlet转发与重定向 一、转发与重定向 1.1现有问题 在之前案例中,调用业务逻辑和显示结果页面都在同一个Servlet里,就会产生设计问题 不符合单一职能原则、各司其职的思想 不利于后续的维护 ...
  • Servlet转发、包含、重定向 一、转发 首先创建两个Servlet,RequestServlet1 、RequestServlet2 RequestServlet1 @WebServlet("/request1.do") public class RequestServlet1 extends HttpServlet { @Override ...
  • servlet转发与重定向

    2016-11-08 13:19:32
    servlet转发与重定向 转发:request.getRequestDispatcher("SecondServlet").forward(request, response); 重定向:response.sendRedirect("ThirdServlet"); 区别1: 转发的地址栏无变化,还是用户请求的地址 ...
  • Servlet转发与重定向的区别定义转发重定向区别 定义 转发 1、页面发出的请求发送到Servlet,经过处理后将request和response对象发送到当前项目下的某个页面。 2、一次转发过程中有一次请求相应,request域中的数据...
  • 1.什么是servlet转发?  servlet将用户的请求通过一组servlet来处理,每个servlet都有自己特定的职责,当该servlet完成自己的工作后将请求转发到下一个servlet来处理,这种通过不同servelet相互转发请求来完成对...
  • 下面小编就为大家带来一篇浅谈Servlet转发到JSP页面的路径问题(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • servlet转发与重定向  HttpServletRequest:  表示浏览器向服务器发送的请求报文,由Tomcat创建然后作为参数传递给我们doget,dopost方法。  功能:getParameter()获取请求参数  getContextPath()获取...
  • Servlet转发页面到iframe

    千次阅读 2016-11-29 14:33:03
    在练习中,想把经过servlet转发的页面显示到指定的iframe中,但是发现经过servlet转发后都直接更改了地址栏的地址,使得页面不能按理想方式显示。 其实问题很简单,只要我们在form表单中添加一个target属性就可以...
  • Servlet 转发、包含、重定向对比 1、转发 在index.jsp页面中有一个form表单,提交到TestASerlvet处理,在TestASerlvet我们将请求转发到TestBSerlvet 示例代码: index.jsp ; charset=UTF-8" pageEncodi
  • Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同一个文件夹下时,则会出现路径混乱问题。 2. 绝对路径概念 相...
  • servlet 转发与重定向

    2020-11-02 22:14:35
    客户首先发送一个请求到服务器端,服务器端发现匹配的servlet,并指定它去执行,当这个servlet执行完之后,它要调用getRequestDispacther()方法,把请求转发给指定的student_list.jsp,整个流程都是在服务器端完成的...
  • 所有推荐Servlet转发与重定向和JSP都使用绝对路径 一、JSP路径 假如当前项目名为JavaWeb,所有页面上的绝对路径,/都是代表从服务器根开始,http://localhost:8080 栗:<a href="/hello.jsp"></a>...
  • Java servlet转发

    2018-07-27 15:43:14
    com.edu.test类 ... import java.io.IOException; import java.io.PrintWriter; ...import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpS...
  • Servlet转发会让转发后页面相对路径以Servlet根路径为基础 所以可以在jsp页面头部加入 &lt;% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + ...
  • 新建AServlet通过转发转发到BServlet @WebServlet(name = "AServlet", urlPatterns = "/AServlet") public class AServlet extends HttpServlet { protected void doPost(HttpServletRequest request, ...
  • 深入理解Servlet转发和重定向 分类: Java 精华文章 2013-10-31 00:14 1582人阅读 评论(1) 收藏 举报 一、转发  转发的原理,可以通过下图展示:  浏览器的请求发送给组件1,组件1经过一些处理之后,将...
  • 关于servlet转发到另一个servlet时,页面无响应,控制台无报错信息时 问题描述: //跳转页面---用户登录成功返回主页 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ...
  • servlet转发导致的页面路径失效问题解决 在jsp页面加入图片所示代码。解释如下 jsp文件里通常有以下代码: 如:页面内部有一个连接,完整的路径应该是 http://localhost:80/myblog/authen/login.do 则: 1...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,158
精华内容 2,863
关键字:

servlet转发