package action.exam;

 import java.util.Map;

 import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport; import dao.exam.StudentDAO;
import dao.exam.TeacherDAO;
import dao.exam.AdministratorDAO;
import entity.exam.Student;
import entity.exam.Administrator;
import entity.exam.Teacher;
public class LoginAction extends ActionSupport
{
private String id; // 接受用户编号
private String password; // 接受用户密码
private String role;
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getRole()
{
return role;
}
public void setRole(String role)
{
this.role = role;
}
public String execute() throws Exception
{
Map session = ActionContext.getContext().getSession();//非IoC方式的另外一种
if("student".equals(role))
{
//如果以学生身份登录
StudentDAO sdao=new StudentDAO();
Student st=sdao.selectStudent(id);
if(st==null)
{
addActionError("该学生编号不存在!");
return "input";
}
else if(!st.getPassword().equals(password))
{
addActionError("该学生密码不正确!");
return "input";
}
else
{
session.put("student",st);
return "studentSuccess";
}
}
else if("administrator".equals(role))
{
AdministratorDAO adao=new AdministratorDAO();
Administrator ad=adao.selectAdministrator(id);
if(ad==null)
{
addActionError("该管理员编号不存在!");
return "input";
}
else if(!ad.getPassword().equals(password))
{
addActionError("该管理员密码不正确!");
return "input";
}
else
{
session.put("administrator",ad);
return "administratorSuccess";
}
}
else
{
TeacherDAO tdao=new TeacherDAO();
Teacher te=tdao.selectTeacher(id);
if(te==null)
{
addActionError("该教师编号不存在!");
return "input";
}
else if(!te.getPassword().equals(password))
{
addActionError("该教师密码不正确!");
return "input";
}
else
{
session.put("teacher",te);
return "teacherSuccess";
}
}
}
}

在index.jsp页面如何取得参数

 <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>开始考试</title>
<link href="student/images/css2.css" rel="stylesheet" type="text/css"/>
<style type="text/css">
<!--
.STYLE3 {font-size: 18px; }
.STYLE4 {font-size: 18px; font-weight: bold; }
.STYLE5 {color: #FF0000}
-->
</style>
<script type="text/javascript">
var ksTime; //定义考试时间以分钟计算
ksTime = 60;//设置时间 这里设置为0.1代表是6秒,测试用
if(readCookie("ss")=="")
{
setCookie("ss",new Date(),ksTime/60);
}
function sT()
{
var tti = new Date();
var lt = parseInt((tti-new Date(readCookie("ss")))/1000)
if((ksTime*60-lt)<0)
{
setCookie("ss",new Date(),0);
alert("考试时间到!\n即将提交试卷!");
document.forms[0].submit();
}
else
{
lm = Math.floor(lt / 60);
ls = lt % 60;
allY = ksTime*60-lt;
ym = Math.floor(allY / 60);
ys = allY % 60;
document.getElementById("tTime").innerHTML = "考试已经开始了" + lm + "分" + ls + "秒" + ",剩余" + ym + "分" + ys + "秒";
var ttt = setTimeout("sT()",1000);
}
}
function readCookie(name)
{
var cookieValue = "";
var search = name + "=";
if(document.cookie.length > 0)
{
offset = document.cookie.indexOf(search);
if (offset != -1)
{
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1)
end = document.cookie.length;
cookieValue = document.cookie.substring(offset, end)
}
}
return cookieValue;
}
function setCookie(name, value, hours)
{
var expire = "";
if(hours != null) {
expire = new Date((new Date()).getTime() + hours * 3600000);
expire = "; expires=" + expire.toGMTString();
}
document.cookie = name + "=" + value + expire;
}
</script>
</head> <body onload="sT()">
<table width="1003" height="485" border="0" cellpadding="0" cellspacing="0" class="centerbg">
<tr>
<td width="149" height="485">&nbsp;</td>
<td width="741" valign="top" class="rightbian">
<form action="submitExam.action" method="post">
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="10">
<tr>
<td><div align="center" class="STYLE3">考试时间:60 分钟</div></td>
<td><div align="center" class="STYLE3">考生:${sessionScope.student.name}</div></td>
<td><div align="center" class="STYLE3">总分 :100 分</div></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><div id="tTime"></div></td>
<td>&nbsp;</td>
</tr>
<tr>
<td colspan="3" bgcolor="#999999" class="STYLE4">选择题(每小题5分,共10个)</td>
</tr>
<!--题目开始--> <s:iterator value="#request.ChoiceQuestion" var="cq" status="sta">
<tr>
<td colspan="3"><strong>第<span class="STYLE5">${sta.index + 1}</span>题&nbsp;${cq.c_question}</strong> </td>
</tr>
<tr>
<td colspan="3"><strong>A.</strong>${cq.c_choiceA}</td>
</tr>
<tr>
<td colspan="3"><strong>B.</strong>${cq.c_choiceB}</td>
</tr>
<tr>
<td colspan="3"><strong>C.</strong>${cq.c_choiceC}</td>
</tr>
<tr>
<td colspan="3"><strong>D.</strong>${cq.c_choiceD}</td>
</tr>
<tr>
<td height="32" colspan="3" bgcolor="#CCCCCC">选择答案:
<input type="hidden" name="c_answer1${sta.index}" value="${cq.c_answer}"/>
<input type="radio" name="c_answer${sta.index}" value="A" checked="checked"/>
A
<input type="radio" name="c_answer${sta.index}" value="B" />
B
<input type="radio" name="c_answer${sta.index}" value="C" />
C
<input type="radio" name="c_answer${sta.index}" value="D" />
D</td>
</tr>
</s:iterator>
<tr>
<td colspan="3" bgcolor="#999999" class="STYLE4">填空题(每小题5分,共10个)</td>
</tr>
<s:iterator value="#request.FillQuestion" var="fq" status="stf">
<tr>
<td colspan="3"><strong>第<span class="STYLE5">${stf.index + 11}</span>题&nbsp;${fq.f_question}</strong> </td>
</tr> <tr>
<td height="32" colspan="3" bgcolor="#CCCCCC">输入答案:
<input type="hidden" name="f_answer1${stf.index}" value="${fq.f_answer}"/>
<input type="text" name="f_answer${stf.index}" size="40"/></td>
</tr>
</s:iterator>
<!--题目结束-->
<tr>
<td colspan="3"><div align="center">
<input type="submit" value=" 提交答卷 " name="Submit" />
</div></td>
</tr>
</table>
</form>
</td>
<td width="113">&nbsp;</td>
</tr>
</table>
</body>
</html>

session在登录中的使用的更多相关文章

  1. TP框架中如何使用SESSION限制登录?

    TP框架中如何使用SESSION限制登录? 之前总是被问题今天才明白,最高效的来做页面访问限制问题. OOP思想中的继承特性,实现验证,是否已经登录,不必每个页面都进行判断. 实现如下: 继承Cont ...

  2. Express + Session 实现登录验证

    1. 写在前面 当我们登录了一个网站,在没有退出登录的情况下,我们关闭了这个网站 ,过一段时间,再次打开这个网站,依然还会是登录状态.这是因为,当我们登录了一个网站,服务器会保存我们的登录状态,直到我 ...

  3. 使用COOKIE实现登录 VS 使用SESSION实现登录

    注:本文使用的代码基于PHP,其他语言逻辑同理. 一:使用COOKIE实现登录验证 使用cookie实现登录的方式,主要通过一些单向的加密信息进行验证.比如admin用户登录了之后,服务端生成一个co ...

  4. cookie和session 以及Django中应用

    cookie和session 以及Django中应用   cookie和session机制 cookie和session机制 cookie机制采用的是在客户端保持状态的方案.作用就是为了解决HTTP协 ...

  5. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  6. [转]Web登录中的信心安全问题

    1. 一个简单的HTML例子看看用户信息安全 标准的HTML语法中,支持在form表单中使用<input></input>标签来创建一个HTTP提交的属性,现代的WEB登录中, ...

  7. 解决跨域POST登录中IE不能正常工作的bug

    结合我的这篇blog <简单实用的跨域表单POST提交> 文章,这篇blog中的思路是解决在www.a.com站中登录 同时要把关联站www.b.com登录状态也设置成登录状态,在a中获取 ...

  8. Shiro登录中遇到了问题

    Shiro登录中遇到了问题 记录二次开发中遇到的问题, 如果系统学习Shiro, 推荐跟我学Shrio. 问题 项目是要将验证从本地改为LDAP验证, 但是因为jeecms的验证和授权中, 用户和角色 ...

  9. Session保存用户名到Session域对象中

    Session保存用户名 1.构造登录界面 用户名: 密   码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <!DOCTYPE html> < ...

随机推荐

  1. JSP 表单request内容

    1. 表单request内容的获取 2. request.setCharacterEncoding("utf-8")对request内容进行编码 3. fullformreques ...

  2. BZOJ 3223 文艺平衡树

    Description   您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2  ...

  3. Unity3d场景合并

    Unity3d场景合并 一.Unity3d场景合并,有一次的情况是这样的,就是我们是每个人都在开发,每个人有不同的场景,那么合并的时候,有些会出问题,那么我有一个好的方案,就是首先弄一个公共的资源库, ...

  4. Dll方式的线程,需要引用这个

    {== D6DLLSynchronizer =================================================} {: This unit handles the D6 ...

  5. 分页SQL技术1-COUNT STOPKEY.

    条件有rownum的时候出现 扫描表,到前n行停止

  6. 【线段树】HDU 5493 Queue (2015 ACM/ICPC Asia Regional Hefei Online)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5493 题目大意: N个人,每个人有一个唯一的高度h,还有一个排名r,表示它前面或后面比它高的人的个数 ...

  7. [Locked] Missing Ranges

    Missing Ranges Given a sorted integer array where the range of elements are [lower, upper] inclusive ...

  8. I - Fire Game

    题目大意: 火焰游戏 在一个];][] = { {,},{,},{-,},{,-} };; i<M; i++)    ; j<N; j++)    {        )           ...

  9. mac上charels抓包工具使用技巧

    有这俩技巧就足够了 http://www.jianshu.com/p/18449f5f9d1c http://blog.csdn.net/u010187139/article/details/5198 ...

  10. redmine安装插件流程

    1.redmine用一键安装即可2.进入C:\Bitnami\redmine-3.1.1-1\,执行use_redmine.exe,进入dos系统 不能用cmd进入.3.把文件拷贝到C:\Bitnam ...