JSP笔记
response
response对象概念
response对象包含了响应客户端请求的有关信息,主要将JSP处理数据后的结果传回到客户端。
response对象实现使用javax.Servlet.http.HttpServletResponse接口,他是HttpServletResponse类的实例。
response内置对象的常用方法:
方法 | 描述 |
---|---|
String grtCharacterEncoding() | 返回响应用的是何种字符编码 |
ServletOutputStream getOutputStream() | 返回响应的一个二进制输出流 |
PrintWriter getWriter() | 返回可以向客户端输出字符的一个对象 |
void setContentLength(int len) | 设置响应头长度 |
void setContentType(String type) | 设置响应的MIME类型 |
sendRedirect(java.lang.String location) | 重新定向客户的请求 |
void setHeader(String name,String value) | 指定String类型的值到名为name的http头部 |
这次学习主要使用response对象的sendRedirect方法实现页面的重定向。response1.jsp页面设置一个下拉选项框控件,通过下拉选值向handle2.jsp页面提交数据。handle.jsp根据提交的数据重定向页面的内容。
新建一个jsp文件(response1.jsp),用来提交数据。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>response内置对象的使用</title>
</head>
<body>
<form action="handle2.jsp" method="post">
<select name="opt">
<option value="taobao">淘宝</option>
<option value="jingdong">京东</option>
<option value="pdd">拼多多</option>
</select>
<input type="submit" value="go">
</form>
</body>
</html>
新建一个JSP文件(handle2),实现页面的重定向。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>response内置对象的使用</title>
</head>
<body>
<%
String opt = request.getParameter("opt");
if(opt.equals("taobao")){
response.sendRedirect("https://www.taobao.com");
}else if(opt.equals("jingdong")){
response.sendRedirect("https://www.jd.com");
}else
{
response.sendRedirect("https://www.pinduoduo.com");
}
%>
</body>
</html>
运行结果:
可以看到,当我们选择好后,网页重定向到了我们指定的网站。
新建一个JSP文件(response2.jsp),实现response.setHeader()方法
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>response内置对象的使用</title>
</head>
<body>
<%
response.setHeader("refresh", "1");
//一秒刷新一次页面
out.println((new Date()).toString());
//打印当前时间
%>
</body>
</html>
运行结果:
可以看到这个页面在每秒钟刷新一次。
session
session对象概念
session对象在第一个JSP页面被装载时自动创建,从客户端连到服务器开始,直到客户端与服务器断开连接为止,被称为一个会话。session是javax.Servlet.http.HttpSession接口的实例化对象。
session内置对象的常用方法
方法 | 描述 |
---|---|
long getCreation Time() | 返回session创建时间 |
public String getId() | 返回session创建时JSP引擎为它设的唯一ID号 |
long getLastAccessedTime() | 返回此session里客户端最近一次请求时间 |
int getMaxInactiveInterval() | 返回两次请求间隔多长时间此session被取消 |
String getValueNames() | 返回一个包含此session中所有可用属性的数组 |
void invalidate() | 取消session,使session不可用 |
boolcan isNew() | 返回服务器创建的一个session,客户端是否已经加入 |
Void remove Value(String name) | 删除session中指定的属性 |
void setMaxInactiveInterval() | 设置两次请求间隔多长时间此session被取消 |
setAttribute(String key, Object value) | 使用指定的名称和值来产生一个对象并绑定到session中 |
getAttribute(String key) | 返回session对象中与指定名称绑定的对象,如果不存在则返回null |
本次学习主要通过session实现登录判断。
新建一个JSP文件(longin)作为登录页面。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<%
String infoMsg=(String)session.getAttribute("infoMsg");
if(infoMsg!=null)
{
session.setAttribute("infoMsg",null);
%>
<%=infoMsg %>
<%} %>
<form action="do_login.jsp" method="post">
<input type="text" name="username"><br>
<input type="password" name="password"><br>
<input type="submit" name="登录">
</form>
</body>
</html>
新建一个JSP文件(do_login.jsp)作为登录的业务处理页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录处理</title>
</head>
<body>
<%
String username=request.getParameter("username");
String password=request.getParameter("password");
//获得用户输入的用户名和密码
if(username!=null&&password!=null)
{
if(username.equals("star")&&password.equals("star"))
{
session.setAttribute("u", username);
//设置标志位,如果flag的值为ok,说明登录成功
session.setAttribute("flag", "ok");
response.sendRedirect("index.jsp");
}else
{
session.setAttribute("infoMsg", "用户名或者密码错误,请重新登录");
response.sendRedirect("login.jsp");
}
}
%>
</body>
</html>
新建JSP文件(index.jsp)作为首页,只有登录成功才可以到达首页
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<%
String flag = (String)session.getAttribute("flag");
if(flag!=null)
{
String username = (String)session.getAttribute("u");
out.println("欢迎您:"+username+"的到来");
}
else
{
session.setAttribute("infoMsg","你还没有登录,请登录");
response.sendRedirect("login.jsp");
//如果没有登录直接进到该页面提示未登录,并跳回login页面
}
%>
</body>
</html>
运行结果:
当我们跳过login,直接进入index页面
提示未登录,并回到login页面
当我们输入错误的用户名或密码
提示密码或用户名错误,并跳转回login
点击刷新
错误提示消失
输入正确的用户名和密码
进入正确的页面,index.jsp