java web请求转发

可以让请求从服务器端跳转到客户端或跳转到其它Servlet类。

地址栏不发生改变

先编写一个index.jsp文件,用户输入文本信息以后提交到Servlet_02类。

假如用户从浏览器上输入的是:注册,就转发到Servlet_03类去处理

假如用户从浏览器上输入的是:登录,就转发到Servlet_03类去处理

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>JSP - Hello World</title>
</head>
<body>
<h1><%= "Hello World!" %>
</h1>
<br/>
<a href="servlet_02">Hello Servlet</a>

<%--将表单数据转到servlet_02类的service方法去处理这个请求--%>

<form action="servlet_02" method="get">

<%--    这里的name的参数名称要和需要提交到Servlet_02类里的变量名一样--%>
<%--    String str = req.getParameter("string");  --%>


    <input type="text" name="string">
    <input type="submit">
<%--    <button>登录</button>--%>
</form>
</body>
</html>

编写Servlet_02类:

package com.servlet.example;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/servlet_02")
public class servlet_02 extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");                  // 设置从浏览器传过来的参数的编码格式
        String str = req.getParameter("string");          // 接收从浏览器传送过来的参数值
        System.out.println("Servlet_02已执行:   " + str);
        /*
        假如收到的str的值为:注册,则转发给 servlet_03类,输出:用户想注册
        假如收到的str的值为:登录,则转发给 servlet_04类,输出:用户想登录
         */

        if(str.equals("注册")){

            // 将请求转发到 Servlet_03类去处理
            req.getRequestDispatcher("servlet_03").forward(req,resp);
        }

        else if(str.equals("登录")){
            // 将请求转发到 Servlet_04类去处理
            req.getRequestDispatcher("servlet_04").forward(req,resp);
        }

    }
}

输出结果:

也可以跳转到客户端( 前段,相关的web界面)

        else if(str.equals("登录")){
//             将请求转发到 Servlet_04类去处理
//            req.getRequestDispatcher("servlet_04").forward(req,resp);

            // 将请求转发到客户端( login.html )
            req.getRequestDispatcher("/login.html").forward(req,resp);
        }

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值