IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Servlet学习之Response和Request -> 正文阅读

[Java知识库]Servlet学习之Response和Request

Servlet学习之Response和Request

这个放在前面说,说一下请求转发重定向的的异同

相同点:

  • 都会是页面发生跳转

不同点:

  • 请求转发:url的地址不会发生变化
  • 重定向:url的地址跳转到需要转发的页面

Response(重定向)

下边看一个具体的例子

 <servlet>
        <servlet-name>request</servlet-name>
        <servlet-class>com.wu.response.RequestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>request</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
<%--index.jsp页面--%>
<html>
<body>
<h2>Hello World!</h2>
    
<%--这里提交的路径需要找到项目路径--%>
<%--pageContext.request.contextPath 代表当前的项目--%>
<form action="${pageContext.request.contextPath}/login" method="post">
    用户名:<input type="text" name="username:"><br>
    密&nbsp;&nbsp码:<input type="password" name="password:" ><br>
    <input type="submit" name="提&nbsp;&nbsp交">

</form>
</body>
</html>

<%--success.jsp页面--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>Success</h1>
</body>
</html>
package com.wu.response;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class RequestServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //重定向时候一定要注意 路径问题
        resp.sendRedirect("/rsp/success.jsp");
    }
}

启动之后进入到index.jsp页面,之后输入名字和密码之后点击提交按钮,此时页面就会跳转到success.jsp这个页面,而上边的url也会发生变化,此时的url地址是success.jsp的地址,而不是RequestServlet.java的地址。

在这里插入图片描述

Request(请求转发)

这个使用的方法是req.getRequestDispatcher("想要装发到的地址").forward(req,resp);

看一个具体的例子

 <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>com.zkw.request.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>

<body>
    <div>
        <form action="${pageContext.request.contextPath}/login" method="post">
            用户名:<input type="text" name="username"><br>
            密&nbsp;&nbsp;码:<input type="password" name="pwd"><br>
            爱&nbsp;&nbsp;好:
            <input type="checkbox" name="hobbys" value="Python">Python
            <input type="checkbox" name="hobbys" value="Java">Java
            <input type="checkbox" name="hobbys" value="C">C
            <input type="checkbox" name="hobbys" value="C++">C++

            <br><br>
          <input type="submit">

        </for>
    </div>
</body>
</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Success</title>
</head>
<body>
<h1>登陆成功了!!!!</h1>
</body>
</html>

package com.zkw.request;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;

public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String pwd = req.getParameter("pwd");
        String[] hobbys = req.getParameterValues("hobbys");

        System.out.println(username);
        System.out.println(pwd);
        System.out.println(Arrays.toString(hobbys));

        //通过请求转发
        // 解释 / 代表当前的web应用
        req.getRequestDispatcher("/success.jsp").forward(req,resp);
    }
}

运行之后先进入到index.jsp这个文件,再点击提交后页面跳转到success.jsp页面但是我们可以发现url还是LoginServlet.java的地址,而不是success.jsp的地址。

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:46:11  更:2021-07-17 11:46:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 4:49:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码