分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

idea创建简单web项目分析Servlet的请求转发与重定向的区别

发布时间:2023-09-06 01:51责任编辑:沈小雨关键词:暂无标签
 注:如需转载,请附上原文链接,如有建议或意见,欢迎批评指正!

需求说明:

// index.jsp页面 1 <% 2 ??String basePath = request.getScheme()+":"+"//"+request.getServerName()+":"+request.getServerPort()+"/" 3 ??????????+request.getServletContext().getContextPath()+"/"; 4 %> 5 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 6 <html> 7 ??<head> 8 ????<title>ServletDemo加法运算</title> 9 ??</head>10 ??<body>11 ????<%--action: 表示访问的servlet路径--%>12 ????<%out.print("basePath意味着:" + basePath);%>13 ????<form action="<%=basePath%>ServletDemo1" method="post">14 ??????a: <input type="text" name="a"><br>15 ??????b: <input type="text" name="b"><br>16 ??????<input type="submit" value="计算"/><br>17 ????</form>18 ??</body>19 </html>
// ServletDemo1.java
 1 import javax.servlet.ServletContext; 2 import javax.servlet.ServletException; 3 import javax.servlet.annotation.WebServlet; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 import java.io.IOException; 8 ?9 @WebServlet("/ServletDemo1")10 public class ServletDemo1 extends HttpServlet {11 ????@Override12 ????public void init() throws ServletException {13 ????????System.out.println("init()方法");14 ????}15 16 ????protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {17 ????????System.out.println("doPost()方法");18 ????????doGet(request, response);19 ????}20 21 ????protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {22 ????????String a = request.getParameter("a");23 ????????String b = request.getParameter("b");24 ????????int sum = Integer.valueOf(a) + Integer.valueOf(b);25 ????????request.setAttribute("sum", sum);26 ????????// 方式一:PrintWriter对象写入27 // ???????response.getWriter().print(sum);28 ????????// 方式二:请求转发29 // ???????request.getRequestDispatcher("sum.jsp").forward(request, response);30 ????????// 方式三:重定向31 ????????ServletContext sc = request.getServletContext();32 ????????sc.setAttribute("sum2", sum);33 ????????response.sendRedirect("sum2.jsp");34 ????????System.out.println("doGet()方法");35 ????}36 37 ????@Override38 ????public void destroy() {39 ????????System.out.println("destroy()方法");40 ????}41 }

// sum.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
???<title>请求跳转求和</title>
</head>
<body>
a + b = <%=request.getAttribute("sum")%>
</body>
</html>

// sum2.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
???<title>重定向跳转求和</title>
</head>
<body>
a + b = <%=application.getAttribute("sum2")%>
</body>
</html>

index.jsp页面效果图展示:

1. 方式一:PrintWriter对象写入效果图:

2. 方式二:请求转发效果图:

3. 重定向效果图:

idea创建简单web项目分析Servlet的请求转发与重定向的区别

原文地址:https://www.cnblogs.com/chris0710/p/8970543.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved