大学jsp实验6session
1、session对象的使用
(1)设计一个简单的在线问卷调查程序,共有3个页面,分别是one.jsp、two.jsp、three.jsp。
其中,shiyan6_1_one.jsp页面效果如下图所示:
例如:输入“九寨沟”,单击下一题按钮,即可进入shiyan6_1_two.jsp页面,two.jsp页面效果如下图所示:
例如:输入“三国演义”,单击提交按钮后,进入shiyan6_1_three.jsp页面,three.jsp页面效果如下图所示:
请写出相应代码:
shiyan6_1_one.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>问题一</h3>
<hr>
<form action="shiyan6_1_two.jsp" method="post" name="one">
你最想去的旅游胜地:<input type="text" name="trap">
<input type="submit" value="下一题">
</form> </body>
</html>
shiyan6_1_two.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>问题二</h3>
<hr>
<form action="shiyan6_1_three.jsp" method="post" name="one">
你最喜欢的一本书:<input type="text" name="book">
<input type="submit" value="提交">
</form>
<%
request.setCharacterEncoding("utf-8");
session.setAttribute("trap",request.getParameter("trap"));
%> </body>
</html>
shiyan6_1_three.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>感谢您的参与!你提交的信息如下:</h3>
<hr>
<%
request.setCharacterEncoding("utf-8");
out.print("你最想去的旅游胜地:"+session.getAttribute("trap")+"<br>");
out.print("你最喜欢的一本书:"+request.getParameter("book"));
%> </body>
</html>
(2)编写3个JSP页面login.jsp、show.jsp和exit.jsp。
login.jsp页面效果图如下所示:
用户输入姓名提交给login.jsp页面,login.jsp页面将用户的姓名存放到用户的session中。
show.jsp的效果图如下图所示:
用户登录后,单击“看图”超链接,可以显示show.jsp页面。若用户没有登录,无法看到图像,且被重新定向到login.jsp页面。
当用户单击“退出”超链接时,请求exit.jsp页面,用户的sesion对象将被销毁,用户必须重新登录才能继续看图。exit.jsp页面效果图如下图所示:
请写出相应代码实现上述效果:
login.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="login.jsp">登录</a>
<a href="show.jsp">看图</a>
<a href="exit.jsp">退出</a>
<br>
<p>输入名子就算登录了:</p>
<form action="login.jsp" method="post" name="login">
<input type="text" name="username">
<input type="submit" value="提交">
</form>
<%
String username = request.getParameter("username");
if(username==null||username.length()==0) {
username="";
}else{
session.setAttribute("username",username); //将名字存入用户的session中
}
%>
</body>
</html>
show.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>show</title>
</head>
<body>
<a href="login.jsp">登录</a>
<a href="show.jsp">看图</a>
<a href="exit.jsp">退出</a>
<%
request.setCharacterEncoding("UTF-8");
String username=(String)session.getAttribute("username");
if(username==null||username.length()== 0) {
response.sendRedirect("login.jsp");
}else{
%>
<br><img src="data:images/hua.jpg"/>
<%
}
%>
</body>
</html>
exit.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="login.jsp">登录</a>
<a href="show.jsp">看图</a>
<a href="exit.jsp">退出</a>
<%
session.invalidate();
out.print("session会话失效,若想看图请重新登录!");
%>
</body>
</html>
大学jsp实验6session的更多相关文章
- 大学jsp实验4include,forword
一.实验目的与要求 1.掌握常用JSP动作标记的使用. 二.实验内容 1.include动作标记的使用 编写一个名为shiyan4_1.jsp的JSP页面,页面内容自定,但要求使用include动作标 ...
- 大学jsp实验七--JavaBean在JSP中的应用
值bean的应用 (1)若有如下图所示的两个JSP页面,在第一个的页面的表单中填写相应内容,提交后再显示用户的提交信息.使用JavaBean的方式实现上述效果,请写出相应的代码. bean文件:Tes ...
- 大学jsp实验3include指令的使用
1.include指令的使用 (1)编写一个名为includeCopyRight.jsp的页面,页面的浏览效果如下: 要求“2016”这个值可以实现动态更新.请写出页面代码: <%@ page ...
- 大学jsp实验5request,response
1.request对象的使用 (1)编写一个包含有表单的JSP页面form.jsp,其中包含可以输入姓名和出生地的文本框,提交表单后在另一个页面中显示用户提交的姓名和出生地.请写出相应代码: form ...
- jsp实验一
1.熟悉MyEclipse开发环境,熟悉菜单,修改代码的字体和显示行号. 2.动手做第一个输出hello World的实例. 3.定义一个jsp页面,在其中定义个变量,该变量随机产生,数据范围是[0- ...
- jsp实验二
1.编写一个简单的留言薄,写入留言提交后,显示留言内容 2.编写一个实现页面计数的计数器.思考,如果要求当刷新页面时,不增加计数. 3.编写一个简易购物车,实现向购物车添加商品.思考,如果增加清空购物 ...
- JSP实验报告
- 【大学物理实验】01 单摆测重力加速度 的 g 计算代码
单摆测重力加速度 传统摆 (代码没保存,就截了个图) 研究单摆周期与摆长之间的关系 (依旧是g的计算) 我还不太会数据拟合
- SEED实验系列文章目录
美国雪城大学SEEDLabs实验列表 SEEDLabs是一套完整的信息安全实验,涵盖本科信息安全教学中的大部分基本原理.项目组2002年由杜文亮教授创建,目前开发了30个实验,几百所大学已采用.实验楼 ...
随机推荐
- python--递归(附利用栈和队列模拟递归)
博客地址:http://www.cnblogs.com/yudanqu/ 一.递归 递归调用:一个函数,调用的自身,称为递归调用 递归函数:一个可以调用自身的函数称为递归函数 凡是循环能干的事,递归都 ...
- Glad to see you! CodeForces - 810D (交互+二分)
This is an interactive problem. In the output section below you will see the information about flush ...
- pandas数据的分组与分列
读入数据: 数据分组:我们可以看到num这列它的数字在0-20之间变化,我们可以对其增加一列,用来对其分组 df['新增一列的名称']=pd.cut(df['要分组的列'],要分组的区间,新增一列后 ...
- Day6 Pyhton基础之文件操作(五)
能调用方法的一定是对象 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 #-*-codeing-*-:UTF-8 #author:Weina Pang # ...
- Elasticsearch--Aggregation详细总结(聚合统计)
Elasticsearch的Aggregation功能也异常强悍. Aggregation共分为三种:Metric Aggregations.Bucket Aggregations. Pipeline ...
- Vue2 实现树形菜单(多级菜单)功能模块
结构示意图 ├── index.html ├── main.js ├── router │ └── index.js # 路由配置文件 ├── components # 组件目录 │ ├── App. ...
- 模拟银行ATM系统(基础版)
Account类 package ATM; public class Account {//定义Account类 private String accountID;//用于存储学生的用户账号(由八位数 ...
- semantic-ui 下拉框
注意:在使用semantic的下拉框的时候,不仅需要引入semantic.css,还要引入semantic.js,最重要的是引入jquery.否则下拉效果不会显示. 并且,jquery必须先于sema ...
- Tomcat connecttimeout sessiontimeout
IIS中的会话超时和连接超时之间有什么区别? | Adept Technologies Inc.https://www.adepttech.com/blog/?p=825 IIS中的会话超时和连接超时 ...
- mysql 5.7:show_compatibility_56
show_compatibility_56 - rudy gao - CSDN博客 https://blog.csdn.net/rudygao/article/details/50403107 [SO ...