请求重定向与请求转发的区别
来源:互联网 发布:短信轰炸源码 编辑:程序博客网 时间:2024/06/05 21:59
一 请求重定向与请求转发的区别
二 生活小案例
三 请求转发实例(reg.jsp->response.jsp->request.jsp)
1、reg.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>用户注册</h1>
<hr>
<%
int number=-1;
//说明用户第一次访问页面,计数器对象还未创建
if(application.getAttribute("counter")==null)
{
application.setAttribute("counter", 0);
}
number = Integer.parseInt(application.getAttribute("counter").toString());
number++;
application.setAttribute("counter", number);
%>
<!-- <form name="regForm" action="request.jsp" method="post"> -->
<form name="regForm" action="response.jsp" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="favorite" value="read">读书
<input type="checkbox" name="favorite" value="music">音乐
<input type="checkbox" name="favorite" value="movie">电影
<input type="checkbox" name="favorite" value="internet">上网
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="提交"/></td>
</tr>
</table>
</form>
<br>
<br>
<a href="request.jsp?username=李四">测试URL传参数</a>
<br>
<br>
<center>
您是第<%=number %>位访问本页面的用户。
</center>
</body>
</html>
2、response.jsp
<%@ page language="java" import="java.util.*,java.io.*" contentType="text/html; charset=utf-8"%>
<%
response.setContentType("text/html;charset=utf-8"); //设置响应的MIMI类型
out.println("<h1>response内置对象</h1>");
out.println("<hr>");
//out.flush(); //解决PrintWrite对象的浏览器输出总是先于out对象输出这一问题
PrintWriter outer = response.getWriter(); //获得输出流对象
outer.println("大家好,我是response对象生成的输出流outer对象");
//response.sendRedirect("reg.jsp");//请求重定向
//请求重定向
//response.sendRedirect("request.jsp");
//请求转发
request.getRequestDispatcher("request.jsp").forward(request, response);
%>
3、request.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>request内置对象</h1>
<%
request.setCharacterEncoding("utf-8"); //解决中文乱码问题,无法解决URL传递中文出现的乱码问题。
request.setAttribute("password", "123456");
%>
用户名:<%=request.getParameter("username") %><br>
爱好 :<%
if(request.getParameterValues("favorite")!=null)
{
String[] favorites = request.getParameterValues("favorite");
for(int i=0;i<favorites.length;i++)
{
out.println(favorites[i]+" ");
}
}
%> <br>
密码:<%=request.getAttribute("password") %><br>
请求体的MIME类型:<%=request.getContentType() %><br>
协议类型及版本号: <%=request.getProtocol() %><br>
服务器主机名 :<%=request.getServerName() %><br>
服务器端口号:<%=request.getServerPort() %><BR>
请求文件的长度 :<%=request.getContentLength() %><BR>
请求客户端的IP地址:<%=request.getRemoteAddr() %><BR>
请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
请求的上下文路径:<%=request.getContextPath() %><BR>
</body>
</html>
四 运行结果
阅读全文
0 0
- 请求转发与重定向的区别
- 请求转发与重定向的区别:
- 请求转发与重定向的区别
- 请求重定向与转发的区别
- 《请求转发与重定向的区别》
- 请求转发与重定向的区别:
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 重定向与请求转发的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 请求转发与重定向的区别
- 配置tomcat,访问端口改为80
- JSP的request对象
- C 语言标准演进历程
- JSP的response对象
- 提取操作系统信息脚本
- 请求重定向与请求转发的区别
- 分析系统运行状态脚本
- session简介
- vue
- 分析系统运行状态
- JSP的session对象
- Go面向对象编程之初始化
- session的生命周期
- JSP的page对象