sendRedirect & sendForward

 1 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 2 <!DOCTYPE html>
 3 <html>
 4     <head>
 5         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 6         <title>数据输入页面</title>
 7     </head>
 8     <body>
 9         <form action="servlet/Verify" method="post">
10             请输入一个实数:<input type="text" name="number">
11             <input Type="submit" value="确定">
12         </form>
13     </body>
14 </html>
 1 package servlet;
 2
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5
 6 import javax.servlet.RequestDispatcher;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 public class Verify extends HttpServlet {
13     public Verify() {
14         super();
15     }
16
17     public void destroy() {
18         super.destroy(); // Just puts "destroy" string in log
19     }
20
21     public void doGet(HttpServletRequest request, HttpServletResponse response)
22             throws ServletException, IOException {
23         doPost(request, response);
24     }
25
26     public void doPost(HttpServletRequest request, HttpServletResponse response)
27             throws ServletException, IOException {
28         String number = request.getParameter("number");
29         try {
30             // 把字符串转换为Double
31             double n = Double.parseDouble(number);
32             if (n > 6000 || n < -6000) {
33                 // 重定向到sendForward.jsp
34                 response.sendRedirect("sendForward.jsp");
35             } else {
36                 RequestDispatcher rd = request.getRequestDispatcher("ShowMessage");
37                 // 转发到另一个servlet文件
38                 rd.forward(request, response);
39             }
40         } catch (NumberFormatException ex) {
41             // 重定向到sendForward.jsp
42             response.sendRedirect("sendForward.jsp");
43         }
44     }
45
46     public void init() throws ServletException {
47     }
48 }
 1 package servlet;
 2
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 public class ShowMessage extends HttpServlet {
12     public ShowMessage() {
13         super();
14     }
15
16     public void init() throws ServletException {
17     }
18
19     public void doGet(HttpServletRequest request, HttpServletResponse response)
20             throws ServletException, IOException {
21         doPost(request, response);
22     }
23
24     public void doPost(HttpServletRequest request, HttpServletResponse response)
25             throws ServletException, IOException {
26         response.setContentType("text/html; charset=UTF8");
27         PrintWriter out = response.getWriter();
28         // 获取客户提交的信息
29         String number = request.getParameter("number");
30         double n = Double.parseDouble(number);
31         out.println(number + "的平方为:" + (n * n));
32     }
33
34     public void destroy() {
35         super.destroy(); // Just puts "destroy" string in log
36     }
37 }
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
 3 <web-app>
 4     <servlet>
 5         <servlet-name>Verify</servlet-name>
 6         <servlet-class>servlet.Verify</servlet-class>
 7     </servlet>
 8     <servlet>
 9         <servlet-name>ShowMessage</servlet-name>
10         <display-name>This is the display name of my J2EE component</display-name>
11         <description>This is the description of my J2EE component</description>
12         <servlet-class>servlet.ShowMessage</servlet-class>
13     </servlet>
14
15     <servlet-mapping>
16         <servlet-name>Verify</servlet-name>
17         <url-pattern>/servlet/Verify</url-pattern>
18     </servlet-mapping>
19     <servlet-mapping>
20         <servlet-name>ShowMessage</servlet-name>
21         <url-pattern>/servlet/ShowMessage</url-pattern>
22     </servlet-mapping>
23 </web-app>
时间: 2024-10-06 08:47:37

sendRedirect & sendForward的相关文章

第一个servlet小例子

1.sendForward.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose

页面跳转?sendRedirect()与forward()辨析

在JSP中,要实现页面的跳转,主要有两种方式实现:forward和sendRedirect. 一.forward forward实现页面跳转是通过转移请求实现的.客户端向服务器的页面1发出一个请求,页面1编译运行过程中发现处理不了,把这个请求转移(forward)给页面2来处理,这个请求对象封装了一开始客户端发送请求时封装的信息.参数等.页面2对通过这个请求对象提取数据并进行一系列的操作处理后,把结果通过response发回原客户端浏览器显示.整个过程中只发生了一次请求.一次响应.由于宏观上是客

Servlet课程0425(五) sendRedirect实现不同页面共享数据

Login.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class Login extends HttpServlet{ public void doGet(HttpServletRequest req, HttpServletResponse res) { //业务逻辑 try{ //中文乱码 //浏览器默认ISO-8859 res.setContentType(

JSP中页面跳转response.sendRedirect()和request.getRequestDispatcher()的区别

Java Web开发中,采用MVC模式的时候,在控制器完成模型的调用之后会选择界面对用户响应,用常有2种方式 1,通过response对象的sendRedirect方法重定向: response.sendRedirect("login.jsp"); 2,通过RequestDispatcher对象的forward方法: <!--请求转发--> RequestDispatcher rd = request.getRequestDispatcher("login.jsp

JSP的getRequestDispatcher()与sendRedirect()的区别

getRequestDispatcher()与sendRedirect()的区别 1.request.getRequestDispatcher()是请求转发,前后页面共享一个request ; response.sendRedirect()是重新定向,前后页面不是一个request. request.getRequestDispather();返回的是一个RequestDispatcher对象. 2.RequestDispatcher.forward()是在服务器端运行; HttpServlet

RequestDispatcher.forward() 方法和HttpServletResponse.sendRedirect()方法的区别

RequestDispatcher.forward()是服务器端跳转  response.sendRedirect()是客户端跳转 服务器端跳转的话,你的浏览器上的URL是不会改变的,比如你请求的是一个LoginServlet,要登入到main.jsp,这样的话,你的浏览器的url还是LoginServlet, 而客户端跳转的话,你的URL会是你要跳转去的页面地址:main.jsp: 服务器端跳转,同用一个request,而客户端跳转则不能共用一个request.

forward和sendRedirect的差别

HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实现获取相应URL资源.sendRedirect实现请求重定向,forward实现的是请求转发.在web服务器内部的处理机制也是不一样的.1.forward方法只能转发给同一个web站点的资源,而sendRedirect方法还可以定位到同一个web站点的其他应用,甚至可以通过传入绝对路径定位到别的web站点,这事forward的方法所不能比拟的优势.如果传给Request

图解sendRedirect和forward的区别

sendRedirect是HttpServletResponse的方法.他的工作原理是: 关键点:调用sendRedirect方法,会在响应中设置locaction响应报头,它告诉浏览器再访问一次directory的新资源. 这对于用户来说是透明的,一切都是有浏览器完成的.用户只是发现地址栏发生了变化. 整个过程有两次请求. 而forward的原理如下: 关键点:这个过程对于用户而言更透明,他并不知道服务端内部是哪个servlet处理了请求,甚至地址栏都没有任何变化. 这个过程只有一次请求.

servlet中同一用户不同页面共享数据(sendRedirect、session、隐藏表单)

SendRedirect(“url?parameter=value”); 通过SendRedirect()我们可以将一个页面的信息传递给另外的页面. 注意:1.url表示要跳转到的servlet的url 2.servlet url名和变量之间有?号 3.如果要传递两个以上的值,他们之间要用&号分开,比如: sendRedirect(“url?parameter1=”+val1+”&parameter2=”+val2); 4.传递中文:res.setContentType("tex