Servlet中include方法和forward方法的区别

Servlet的forward与include方法 原文链接:http://www.yiidian.com/servlet/servlet-dispatcher.html 使用Servlet请求转发与包含 RequestDispatcher接口提供了将请求转发到另一个资源的功能,该资源可能是Html,Servlet或Jsp。该接口还可以用于包含其他资源的内容。 1 RequestDispatcher接口的方法 RequestDispatcher接口... 阅读详情

/*login.jsp*/

<%@ page contentType="text/html;charset=GBK" language="java" pageEncoding="GBK"%>

<html>
<head>
<%
 request.setCharacterEncoding("GBK");
%>

<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
<title></title>
</head>

<body>

<form action="login.do" name="LoginForm" method="get">
用户名:<input type="text" name="uname"><br>
密  码:<input type="password" name="upwd"><br>
<input type="hidden" name="uid" value="432022199008081888">
<input type="submit" value="登陆">
<input type="reset" value="重置">
</form>
</body>
</html>

/*LoginServlet*/

package com.session;

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

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html; charset=GBK");
  request.setCharacterEncoding("GBK");
  response.setCharacterEncoding("GBK");
  
  String uname = request.getParameter("uname");
  String upwd = request.getParameter("upwd");
  String uid = request.getParameter("uid");
  RequestDispatcher rd = request.getRequestDispatcher("forward.do");
 
  if ("".equals(uname) || "".equals(upwd)) {
   response.sendRedirect("bad.html");
  } else {
   rd.forward(request, response);
  }

 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }
}

/*ForwardServlet*/

package com.session;

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

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ForwardServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  
  request.setCharacterEncoding("GBK");  
  String uname = request.getParameter("uname");
  String upwd = request.getParameter("upwd");
  String uid = request.getParameter("uid");
  
  out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  
  out.println("uname: " + uname + "<br>");
  out.println("upwd: " + upwd + "<br>");
  out.println("uid: " + uid + "<br>");  
  RequestDispatcher rd = request.getRequestDispatcher("include.do");
  rd.include(request, response);

  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
  doGet(request, response);
  
 }

}

 

/*IncludeServlet*/

package com.session;

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

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class IncludeServlet extends HttpServlet {

 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  out.println("<!DOCTYPE HTML PUBLIC /"-//W3C//DTD HTML 4.01 Transitional//EN/">");
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  out.print("    This is a forward servlet");
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 }

 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doGet(request, response);
 }
}

/*

其实Servlet的forward方法就是将请求继续往下传,因此在这个过程中,传递的参数一直都是可以访问到的

include的方法其实是将另一个servlet中的输出内容包含进来

*/

Servlet之forward、sendRedirect、 include区别与使用实例 Servlet之forward、sendRedirect、 include区别与使用实例 ,具体效果和过程看博文http://blog.youkuaiyun.com/evankaka/article/details/45169569 立即下载

相关推荐

ubuntu 20.04系统离线安装nfs

ubuntu环境下,离线安装nfs

m0_62464865的博客 2240

Servlet跳转之转向(Forward)

Servlet跳转之转向(Forward)          Servlet之间可以相互跳转,从一个Servlet跳转到另一个Servlet。利用Serlvet跳转可以很容易地把一个大的任务按模块分成较小的任务。比如我们用一个Servlet接收用户提交的数据,然后跳转到另一个Servlet中根据提交的数据读取数据库并进行业务处理,然后跳到另一个Servlet把处理结果显示出来。Servlet的跳

han360096710的博客 9779

Excel药品说明书数据库:从零开始搭建医药数据查询系统(附完整模板)

本文详细介绍了如何从零开始搭建Excel药品说明书数据库,提供完整的医药数据查询系统模板。涵盖数据库架构设计、数据清洗标准化、智能查询系统搭建及维护优化,帮助医药从业者高效管理药品信息,提升查询速度和准确性。

weixin_28327051的博客 231

servlet转发

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

zjc85878482的专栏 419

异次元发卡最新漏洞0day(XSS组合拳)

异次元商店头像上传处存在存储型XSS注入(user、admin均存在)。其中,user处有过滤,admin无。 将恶意脚本插入后,管理员访问用户管理页面即可执行恶意脚本。 恶意脚本执行后,会新增一个管理员用户,进而获得权限。鉴于漏洞还没有泛滥,而且很多站都有漏洞。EXP暂时不公开。需要学习可以加入知识星球

白昼小丑的博客 4584

PDPS16.0单机版与SPLMLicenseServer授权避坑指南:从安装到冲突解决

本文详细解析了PDPS16.0单机版的安装与授权流程,重点阐述了如何正确配置SPLMLicenseServer本地许可证服务器以实现软件激活。针对安装过程中常见的许可证冲突问题,提供了清晰的排查思路和解决方案,并介绍了通过设置环境变量等替代授权方法,帮助用户高效避坑,确保Tecnomatix Process Simulate顺利运行。

weixin_29231221的博客 559

sendRedirect和forword的区别

以下内容来自API文档:public interface RequestDispatcherDefines an object that receives requests from the client and sends them to any resource (such as a servlet, HTML file, or JSP file) on the server. The serv

helloworlddm的博客 956

Isaac Sim 6 利用Replicator实现高效语义分割与实例分割(实践指南5.10)

本文详细介绍了如何利用Isaac Sim 6的Replicator工具高效生成语义分割和实例分割数据集。通过虚拟环境自动标注,效率提升20倍以上,特别适用于农业机器人等计算机视觉项目。文章包含环境配置、场景构建、批量标注技巧及实例分割处理等实战指南,帮助开发者快速掌握合成数据生成技术。

weixin_42526415的博客 265

Servlet-forword(转发)

用户发送数据请求到服务器,服务器接收当前请求,会调用内部方式(转发)处理该请求,最终把响应给客户端。③转发可以带有数据 request对象中。②浏览器在这个过程中只有一次行为。④url不会发生任何的变化。①转发是服务器的行为。

qq_65142821的博客 615

物联网开发131 - Micropython ESP32 C3连接TB6600驱动42BYGH39步进电机

如何使用合宙ESP32 C3连接TB6600驱动42BYGH39步进电机,实现控制步进电机正反转和旋转指定角度等

zhusongziye的博客 2369

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 334

浅谈Servlet 中 forward()方法 和 include()方法的区别

在学习Servlet 中或者在面试过程中 往往会接触到这个问题,就是forward()方法 和 include()方法有什么区别 下面我来简单的描述下: forward方法是把请求的内容转发到另外的一个servlet.   include是把另一个servlet处理过后的内容调用过来.  举例: 比如在 servlet1打out.print("1111"),

白璐 | 产品经理 1252

iStoreOS等软路由插件卸载的残留?分享一款软路由高级卸载工具,自定义卸载,轻松解决卸载残留问题

iStoreOS用户看过来!👀 还在被插件包残留困扰吗?本文分享一款“高级卸载”的插件,助你深度清理iStoreOS系统,彻底解决软件卸载不净的痛点,告别频繁恢复出厂设置的烦恼!🚀

XiaoqiangClub的博客 1533

Servlet请求重定向与请求转发 以及RequestDispatcher接口中的include()方法和forward()方法的区别...

在Servlet程序中 有时需要调用另外一个资源来对浏览器的请求进行响应,则可以通过两种方式来实现:1.调用RequestDispatcher.forward方法来实现,2,调用HttpServletResponse.sendRedirect方法实现的请求重定向。 RequestDispatcher接口 Servlet API中定义了一个RequestDispatcher接口,它定义了...

zxzlzqqf的专栏 738

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Servlet中forward和include的区别

forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来. 举例来说比如在servlet1打一句out.print("aaaa"),servlet2打上out.print("bbbb"),在servlet1中用forward命令会转到servlet2中,显示bbbb. 而在servlet1中使用include方法会依然在ser...

编程资料大全 209

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Servlet中的forword和include的区别

forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来. 举例来说比如在servlet1打一句out.print("1111"),servlet2打上out.print("22222"),在servlet1中用forward命令会转到servlet2中,显示22222. 而在servlet1中使用include方法会依然在s

563

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

include和forword的区别

include和forword的区别 include方法: 1)RequestDispatcher.include方法用于将RequestDispatcher对象封装的资源内容作为当前响应内容的一部分包含进来,从而实现可编程的服务器端包含功能。 2)        被包含的Servlet程序不能改变响应消息的状态码和响应头,如果它里面存在这样的语句,这些语句的执行结果将被忽略。 forwa

wangyanping1234的专栏 904

Servlet中forward和include的区别是什么?

forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.举例来说比如在servlet1打一句out.print("1111"),servlet2打上out.print("22222"),在servlet1中用forward命令会转到servlet2中,显示22222.而在servlet1中使用include方法会依然在servl

bamboo_cqh的博客 412

RequestDispatcher接口的include()方法与forward()方法的区别

RequestDispatcher接口的include()方法与forward()方法的区别RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servlet、JSP或HTML)进行处理,并产生HTTP回应。RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用in...

ampc81214的博客 1105

Servlet中的forwar和include的区别

forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来. 举例来说比如在servlet1打一句out.print("1111"),servlet2打上out.print("22222"),在servlet1中

任海丽(3G/移动开发) 925

javax.servlet.RequestDispatcher接口 两种方法forward()和include()方法

javax.servlet.RequestDispatcher接口    RequestDispatcher接口有两种方法, 一种是forward,用于讲请求从一个Servlet传递到服务器上的另外的Servlet、JSP页面或者是HTML文件。 另外一种是include,该方法用于在响应中包含其它资源的内容。 include和forward区别在于: 利用include方法将请求

平平淡淡的专栏 3506

forward和include的区别

forward: RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servlet、JSP或HTML)进行处理,并产生HTTP回应。 forward方法是把请求的内容转发到另外的一个servlet/jsp. 调用了forward()方法后,原先对象中的内容就会被清除 include: 利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在原来的Ser

weixin_58915328的博客 1247

Servlet中请求转发时forward()和include()的区别

1 定义 forward()和include()都是RequestDispatcher类中的方法。一般通过ServletRequest的getRequestDispatcher(String var1)获取RequestDispatcher。 forward():表示在服务器端从一个Servlet中将请求转发到另一个资源(Servlet、Jsp或Html等),本意是让第一个组件对请求做些预处理...

Cloud-Future的博客 1614
上一篇: 选班长的C语言实现
下一篇: C语言结构的用法
csuliky
博客等级 码龄19年 77粉丝 57原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值