jsp上机实验4.docx
- 文档编号:25499328
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:14
- 大小:421.06KB
jsp上机实验4.docx
《jsp上机实验4.docx》由会员分享,可在线阅读,更多相关《jsp上机实验4.docx(14页珍藏版)》请在冰豆网上搜索。
jsp上机实验4
课程实验报告
课程名称
JSP开发技术
班级
软件132
实验日期
2016.5.23
玉东
学号
201307217
实验成绩
实验名称
实验3简易选课系统
实
验
目
的
及
要
求
学习使用Myeclipse开发Web项目,综合使用JavaBean、Servlet、Cookie和Session。
实
验
环
境
Tomcat7.0.
myeclipse2013
实
验
容
编写一个JavaWeb项目,实现依据Cookie自动登录,登录后可以进行课程的简单选课和退课。
在第一次登录页面时,需要输入用户名和密码,并可选择一周不用登录。
第二次时可以直接显示欢迎界面。
开始选课后,会列出所有备选课程,之后有添加和删除的超,点击对应的超可以实现课程的添加与删除。
算
法
描
述
及
实
验
步
骤
1、创建的项目名称为LessionSelectionProj
2、将附件中给的welcome.jsp,login.jsp添加到项目中的合适位置,阅读调试修改其中的代码,依据给的CookieLoginServlet.java创建CookieLoginServlet,阅读调试修改其中的代码,以上三个文件实现cookie保留登录信息的功能。
实现后如下:
a)首此在IE地址栏中输入:
localhost:
8080/LessionSelectionProj/welcome.jsp,出现界面
b)输入用户名2222(由于Cookie限制,用户名只能是英文与数字),密码任意(为简便起见CookieLoginServlet并不对用户密码进行判断),选择“一周之不用登录”后,点击登录按钮,显示:
c)关闭IE浏览器,重新打开地址
localhost:
8080/LessionSelectionProj/welcome.jsp,直接出现以上界面,不再需要登录。
d)查看一下IE生成的cookie文件的容,位置在:
XP:
C:
/DocumentsandSettings/用户名/Cookies/
WIN7:
C:
\Users\用户名\AppData\Roaming\Microsoft\Windows\Cookies\Low
3、创建JavaBean,beans.CoursesData,包含三个字段:
字符串courseId,courseName和HashMap类型的courseData,以及对应的get/set方法,courseData中存放以下数据:
4、创建ServletShowCourse.java点击上图的开始选课,显示:
5、创建添加课程的Servlet:
AddCourse.Java,点击某个课程(如JSP程序设计)后面的添加,则显示:
多选几门课,显示:
6、如果选择已经选过的课,则会显示如下界面:
7、创建删除课程的Servlet:
DeleteCourse.Java,点击某个课程(如JSP程序设计)后面的删除,则显示:
调
试
过
程
及
实
验
结
果
1.登录界面
2.欢迎界面
3.选课界面
4.添加课程
5.删除课程
总
结
通过这次实验重新复习了对Cookie以及Session的使用对于利用cookie保存用户信息,第一次使用的时候觉得有点不习惯,但在做出了这个实验之后,就感到熟练了许多了。
附
录
1.登录界面代码
用户名:
密 码:
2.欢迎界面代码
choose> whentest="${cookie.name! =null}"> 欢迎${cookie.name.value}访问我们的简易登录系统 when> otherwise> redirecturl="login.jsp"> redirect> otherwise>
choose>
3.选课界面代码
iftest="${requestScope.message! =null}"> ${sessionScope.name},${requestScope.message}
if>
${sessionScope.name}请选择你要选修的课程:
${course.value} | course=${course.key}">添加 | course=${course.key}">删除 |
${sessionScope.name}你已经选择了下面的课程:
iftest="${sessionScope.checkedCourse! =null}"> forEachitems="${sessionScope.checkedCourse}"var="course"> ${course.value} forEach>
if>
publicclassCookieLoginServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
Stringname=request.getParameter("username");
Stringpassword=request.getParameter("userpwd");
//记住用户
Stringremember=request.getParameter("remember");
if("on".equals(remember)){
//向客户端发送Cookie
Cookiec=newCookie("user",name);
//设置Cookie的存活时间(只要设置了存活时间,那么此Cookie就将存储到客户端的硬盘上,不会在缓存中存储)
c.setMaxAge(Integer.MAX_VALUE);
//设置浏览器携带Cookie的路径
c.setPath("/");
//设置路径如果是/,那就意味着你访问服务器上的任意工程资源都会携带此Cookie
//c.setPath("/");//设置路径是服务器的根路径协议+主机名+端口号
//发送到客户端
response.addCookie(c);
}
request.getSession().setAttribute("username",name);
response.sendRedirect("welcome.jsp");
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
增加
privateList
Map
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
Stringname=request.getParameter("name");
Stringid=request.getParameter("id");
intcourseid=Integer.valueOf(id);
System.out.println("id"+courseid);
courses=newArrayList
for(inti=0;i<5;i++){
CourseDatac=newCourseData();
c.setCourseId(String.valueOf(i+1));
c.setCourseName(c.getCoursedata().get(i+1+""));
courses.add(c);
}
request.setAttribute("courses",courses);
booleanflag=false;
//用hashmap来做
selected=(Map
if(selected==null){
selected=newHashMap
}
for(Stringkey:
selected.keySet()){
if(key.equals(id)){
System.out.println("存在");
flag=true;
}
}
if(flag){
System.out.println("存在1");
}else{
selected.put(id,courses.get(courseid-1).getCoursedata().get(id));
System.out.println(courses.get(courseid-1).getCoursedata().get(id));
}
request.getSession().setAttribute("selected",selected);
request.setAttribute("name",name);
request.getRequestDispatcher("ShowCourse.jsp").forward(request,response);
删除
List
Map
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
Stringid=request.getParameter("id");
intcourseid=Integer.valueOf(id);
Stringname=request.getParameter("name");
List
for(inti=0;i<5;i++){
CourseDatac=newCourseData();
c.setCourseId(String.valueOf(i+1));
c.setCourseName(c.getCoursedata().get(i+1+""));
courses.add(c);
}
request.setAttribute("courses",courses);
selected=(Map
if(selected==null){
selected=newHashMap
}
selected.remove(id);
request.getSession().setAttribute("selected",selected);
request.setAttribute("name",name);
request.setAttribute("selectcourse",selectedCouser);
request.getRequestDispatcher("ShowCourse.jsp").forward(request,response);
}
显示代码
throwsServletException,IOException{
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
Stringname=request.getParameter("name");
List
for(inti=0;i<5;i++){
CourseDatac=newCourseData();
c.setCourseId(String.valueOf(i+1));
c.setCourseName(c.getCoursedata().get(i+1+""));
courses.add(c);
//System.out.println(c.toString());
}
request.setAttribute("courses",courses);
for(CourseDatac:
courses){
System.out.println(c.toString());
}
request.setAttribute("name",name);
System.out.println(name);
//request.getRequestDispatcher("ShowCourse.jsp");
//response.sendRedirect("ShowCourse.jsp");
request.getRequestDispatcher("ShowCourse.jsp").forward(request,response);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 上机 实验