Servlet 网页重定向

TestServletRedirect.java

// 文件路径 D:\ApacheServer\web_java\HelloWorld\src\com\test\TestServletRedirect.java
package com.test;

import java.io.IOException;

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

public class TestServletRedirect {

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

        // 浏览器重新请求的新地址,URL会变,生成一个 302 响应,暂时性重定向到后面的网址
        String location = "https://www.baidu.cn" ;
        // 方法一
        //response.sendRedirect(location);
        // 方法二
        //response.setStatus(response.SC_MOVED_TEMPORARILY);
        //response.setHeader("Location", location);
        
        
        //请求转发到本地的一个 jsp 或 servlet 例如 /TestServlet2 ,网页 url 不变,返回状态码不变,页面改变,并把当前页面请求信息转发到新地址。index.jsp 路径为 D:\ApacheServer\web_java\HelloWorld\WebContent\index.jsp 与 WEB-INF 同级目录下
        request.getRequestDispatcher("/index.jsp").forward(request, response);
    
    }
}

index.jsp

<% // 文件路径 D:\ApacheServer\web_java\HelloWorld\WebContent\index.jsp %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
    request.setCharacterEncoding("UTF-8");
    //get 或者 application/x-www-form-urlencoded post 方式
    String username = request.getParameter("username");//获取 username 值
    String password = request.getParameter("password");//获取 password 值
    if ("admin".equals(username) && "admin".equals(password)) { // 用户名密码都为 admin
        //session.setAttribute("username", username);//在会话中保留 username 值供之后的页面调用
        request.getRequestDispatcher("login_success.jsp").forward(request, response);//请求转发,网页url不变,页面内容改变
    } else {
        response.sendRedirect("login_failure.jsp");//重定向请求,网页url变
    }
%>

 

posted @ 2019-09-08 15:32  风吹屁股凉冰冰  阅读(360)  评论(0编辑  收藏  举报