什么是转发?
转发在服务器端发挥作用,指在服务器内部控制权的转移,通过forward( )方法将提交信息在多个页面间进行传递。浏览器的地址栏不会显示出转向后的地址,可以共享上一次请求中的request内的数据 (url地址不变,请求一次,不允许站外链接)
什么事重定向?
重定向在客户端发挥作用,通过浏览器重新请求地址,通过新的地址实现页面转向,在地址栏中可以显示转向后的地址,不能共享上一次请求中的request内的数据。
(url地址改变,请求两次,允许站外链接)
什么是会话对象?
会话对象session可以保持每个用户的会话信息,为不同的用户保存自己的数据,主要通过一个唯一的标识sessionid来区分每个用户,而sessionid存储在客户端
JSP提供了文件引用指令include。可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件,从而降低代码的冗余问题,并且修改也更加方便。
作用域:作用范围:
request 一次请求
session N次请求
--------------------------------------------------与页面------------------------------------
<body>
<form action="dy002/two.jsp" method="post">
用户名:<input type="text" name="uname" />
密码:<input type="password" name="pwd" />
<input type="submit" value="提交" />
</form>
</body>
-------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
//1.解决乱码
request.setCharacterEncoding("utf-8");
//2.接受数据
String name=request.getParameter("uname");
String pwd=request.getParameter("pwd");
//3.跳转
if("1".equals(name)&&"1".equals(pwd)){
//记录session ,用Session记录登录身份
session.setAttribute("uname", name);
//记录cookie
Cookie cook=new Cookie("uname",name);
Cookie cookpwd=new Cookie("pwd",pwd);
//response 添加
response.addCookie(cook);
response.addCookie(cookpwd);
request.getRequestDispatcher("/dy002/there.jsp").forward(request, response);
}else{
response.sendRedirect("/Day002/dy002/one.jsp");
}
%>
---------------------------------------------------------------------------------------------------
<body>
欢迎您:<%=session.getAttribute("uname") %>
<hr/>
<a href="<%=path %>/dy002/clear.jsp">注销</a>
</body>
--------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
//1.清除session
session.removeAttribute("uname");
//2.跳转到登陆
response.sendRedirect("/Day002/dy002/one.jsp");
%>
--------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<title>图书列表</title>
</head>
<body>
<%@ include file="have.jsp" %>
<h1>图书列表----必须登陆</h1>
</body>
</html>
---------------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<title>添加图书</title>
</head>
<body>
<%@include file="have.jsp" %>
<h1>添加图书</h1>
</body>
</html>
-------------------------------------------------------------------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
//判定session是否有值
Object name=session.getAttribute("uname");
if(name==null){
response.sendRedirect(path+"/dy002/one.jsp");
}
%>