jsp实验四 session对象及cookie
文章目录
- jsp实验四 session对象及cookie
- 一、实验题目及要求
- 实验1 session对象
- 实验要求
- inputGuess.jsp
- result.jsp
- small.jsp和large.jsp
- success.jsp
- 效果示例
- inputGuess.jsp
- small.jsp和large.jsp
- success.jsp
- 实验2 用户登录简单实现
- 实验要求
- 效果示例
- 二、实验代码和效果
- 1.session对象
- inputguess.jsp
- result.jsp
- large.jsp
- small.jsp
- success.jsp
- 效果展示
- 2.简易用户登录
- login.jsp
- welcome.jsp
- 效果展示
- 总结
一、实验题目及要求
实验1 session对象
实验要求
编写四个JSP 页面inputGuess.jsp、result.jsp、small.jsp、large.jsp和success.jsp,实现猜数字游戏。具体要求如下
inputGuess.jsp
用户请求inputGuess.jsp时,随机分配给该用户一个1到100之间的数。该页面同时负责将这个数字存在用户的session对象中。该页面提供表单,用户可以使用该表单输入自己的猜测,并提交给result.jsp页面。
result.jsp
result.jsp页面负责判断inputGuess.jsp提交的猜测是否和用户的session对象中存放的那个数字相同,如果相同就将用户重定向到success.jsp;如果不相同就将用户重定向到large.jsp或small.jsp。
small.jsp和large.jsp
small.jsp和large.jsp页面提供表单,用户可以使用该表单继续输入自己的猜测,并提交给result.jsp页面。
success.jsp
success.jsp页面负责负责显示用户成功的消息,并负责输出用户session对象中的数据。
效果示例
inputGuess.jsp
small.jsp和large.jsp
success.jsp
实验2 用户登录简单实现
实验要求
编写登录页面login.jsp和登录成功页面welcome.jsp。用户在登录页面通过表单提交账号和密码;在进入登录成功页面时,对用户提交的用户名和密码进行验证,如果验证成功则提示欢迎词,否则重定向至登录页面。
效果示例
二、实验代码和效果
1.session对象
inputguess.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/11/2
Time: 10:23
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>inputguess</title>
</head>
<body>
<p>随机分给你一个1到100的数,猜猜看</p>
<form action="resultg.jsp" method="post">
输入你的猜测:
<input type="text" name="sideA" />
<input type="submit" value="提交"/></form>
<% int num=(int)(Math.random()*100)+1;
session.setAttribute("guessTime",0);
session.setAttribute("number",num);
%>
</body>
</html>
result.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/11/2
Time: 10:25
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>result</title>
</head>
<body>
<% int c=(int)session.getAttribute("number");
int b = (int)session.getAttribute("guessTime");
int guess = Integer.parseInt( request.getParameter("sideA"));
if(guess<c)
{ b++;
session.setAttribute("guessTime",b);
response.sendRedirect("small.jsp");}
else if (guess>c)
{ b++;
session.setAttribute("guessTime",b);
response.sendRedirect("large.jsp");}
else if(guess==c)
{ b++;
session.setAttribute("guessTime",b);
response.sendRedirect("success.jsp");}
%>
</body>
</html>
large.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/11/2
Time: 10:23
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int a=(int) session.getAttribute("number");
int b = (int) session.getAttribute("guessTime");%>
<form action="resultg.jsp" method="post">
猜大了,请再猜:
<input type="text" name="sideA" />
<input type="submit" value="提交"/></form>
</body>
</html>
small.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/11/2
Time: 10:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
int a=(int) session.getAttribute("number");
int b = (int) session.getAttribute("guessTime");%>
<form action="resultg.jsp" method="post">
猜小了,请再猜:
<input type="text" name="sideA" />
<input type="submit" value="提交"/></form>
</body>
</html>
success.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/11/2
Time: 10:24
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%int b = (int) session.getAttribute("guessTime");
int a=(int) session.getAttribute("number");%>
<p>恭喜你猜对了</p>
<p>您共猜了<%=b%>次,这个数字是<%=a%></p>
<p>单击超链接返回</p>
<a href="inputguess.jsp">inputguess</a>
</body>
</html>
效果展示
2.简易用户登录
login.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/11/2
Time: 10:59
To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<pre>
<form>
会员登录
用户名:<input type="text" name="user" placeholder="邮箱号"/>
密 码:<input type="password" name="password"/>
<input type="submit" value="登录" />
</form>
<%
Cookie []cks = request.getCookies();
for(int i = 0;i<cks.length;++i){
if(cks[i].getName().equals("user")){
response.sendRedirect("welcomo.jsp");
return ;
}
}
String user = request.getParameter("user");
String passwd = request.getParameter("password");
if(user == null || passwd == null){
}
else if(user == "" || passwd == "" ){
out.print("请输入用户名和密码");
}
else if(user.equals("626487036@qq.com") && passwd.equals("123456")){
Cookie ck = new Cookie("user",user);
ck.setMaxAge(180);
response.addCookie(ck);
response.sendRedirect("welcomo.jsp");
}
else{
out.print("请输入正确的用户名或密码");
}
%>
</pre>
</body>
<html>
welcome.jsp
<%--
Created by IntelliJ IDEA.
User: ruochen
Date: 2020/11/2
Time: 10:59
To change this template use File | Settings | File Templates.
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>welcome</title>
</head>
<body>
<P>登录成功</P>
<%
Cookie []cks = request.getCookies();
String user = null;
for(int i = 0;i<cks.length;++i){
if(cks[i].getName().equals("user")){
user = cks[i].getValue();
break;
}
}
%>
<p><%=user %>欢迎你</p>
</body>
<html>
效果展示
在180秒内,再次打开login页面会自动跳转到welcome页面
总结
- cookie很难用,到现在也没用搞清楚
- session.setAttribute(“guessTime”,0);session.getAttribute(“guessTime”,0);来实现数据的传递