您的位置:首页 > Web前端 > JavaScript

将实体存入到session对象和实现同一功能的jsp页面复用技术——学生管理系统心得体会

2013-11-25 16:13 671 查看
本系列文章主要介绍的是我在开发学生管理系统系统时的一些问题进行总结,这一篇对于我开发中的两个问题进行解释。

第一个问题:将对象保存到Session中

问题描述:如何将我需要的一些在数据库中的查询出来的名字或者是其他的信息保存到合适的实体当中。

问题的解决:既然涉及到保存的问题,首先就要了解JSP中的3种对象的不同在哪。

application对象

application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。

application对象用的最多的地方就是来判断这个网站有多少人来访问了,或者告诉用户,您是第XX名的访问者。application对象的生存时间是最长的一个,它会在服务器开启之后就存在,直到服务器关闭它才会消失。所以application对象也是最占用服务器资源的一种对象。

session对象
session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。

session对象简单介绍就是,当一个用户登录了之后,就创建了一个session对象,直到这个用户退出这个session对象对象才被清除。

request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。

request对象的生存时间最短,只有一次的页面的跳转周期,但是这样的好处就是可以大大的节省服务器的资源。

在了解了我需要用到的对象之后,就是创建我的对象实例了Student

然后在登录成功之后将返回的数据放入一个Student对象当中,并将这个对象返回。

Student s=null;

while(rs.next()){
s=new Student();
String name=rs.getString("name");
。。。

s.setName(name);
。。。

}
return s;

在得到这个Student对象后将其保存到Sesson中,
Student student=login.login(username,password);
if (student != null) {
HttpSession session=request.getSession();
session.setAttribute("user",student);

这样我的登录的用户就可以被保存到Sesson当中了。
在调用的时候也是十分的方便

当前登陆用户:<%=((cn.edu.bzu.entity.Student)session.getAttribute("user")).getName() %>

这是我页面上显示的一个登录用户的姓名的小功能,这个就是调用Session中的对象进行获取的名字。

第二个问题:实现同一功能的jsp页面复用技术

问题描述:我在增加用户或者增加课程的时候都要先进行选择用户的的系别和专业信息的一个功能,因为是要实现数据库的动态刷新,所以不能将这些页面写死。但因为学的东西比较少,不会使用ajax的技术,所以只能通过两个页面来进行实现。



如果不能实现复用的技术的话,前两步的简单功能在不同的功能里面可能要很多个页面来实现才能行,在网上搜了很多都没有搜出来这种问题的解决办法(我感觉是这个问题太小白了,大家都懒得记录)所以在这我将我的解决方案给大家说一下。

其实也是很简单,只需设置一个标准变量flag就可以解决

<strong><a  href="../Student/selectInstitution.jsp?flag=0"  target="mainFrame" class="Text1"> <img src="../images/fubiaoti.gif" width="34px" height="20px"/>增加学生</a></strong><br/>
<strong><a  href="../Student/selectInstitution.jsp?flag=1"  target="mainFrame" class="Text1"> <img src="../images/fubiaoti.gif" width="34px" height="20px"/>增加课程</a></strong><br/>

在Servlet内进行判定,flag的值是多少就行了

判断的方法如下:

String flag = request.getParameter("flag");
if(flag.equals("0")){
response.sendRedirect("Student/addStudent.jsp");
}
if(flag.equals("1")){
response.sendRedirect("Student/addLesson.jsp");
}

这样就可以自认为很好的解决了这个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐