课程实验报告 课程名称 JSP开发技术 班级 软件 实验日期 2016 姓名 学号 实验成绩 实验名称 实验3 简易选课系统 实 验 目 的 及 要 求 学习使用Myeclipse开发Web项目,综合使用JavaBean、Servlet、Cookie和Session。
实 验 环 境 Tomcat7.0.myeclipse2013 实 验 内 容 编写一个Java Web项目,实现依据Cookie自动登录,登录后可以进行课程的简单选课和退课。在第一次登录页面时,需要输入用户名和密码,并可选择一周内不用登录。第二次时可以直接显示欢迎界面。开始选课后,会列出所有备选课程,之后有添加和删除的超链接,点击对应的超链接可以实现课程的添加与删除。
算 法 描 述 及 实 验 步 骤 1、创建的项目名称为LessionSelectionProj 2、将附件中给的welcome.jsp,login.jsp添加到项目中的合适位置,阅读调试修改其中的代码, 依据给的CookieLoginServlet.java创建CookieLoginServlet,阅读调试修改其中的代码,以上三个文件实现cookie保留登录信息的功能。实现后如下:
a)首此在IE地址栏中输入:
http://localhost:8080/LessionSelectionProj/welcome.jsp,出现界面 b)输入用户名2222(由于Cookie限制,用户名只能是英文与数字),密码任意(为简便起见CookieLoginServlet并不对用户密码进行判断),选择“一周之内不用登录”后,点击登录按钮,显示:
c)关闭IE浏览器,重新打开地址 http://localhost:8080/LessionSelectionProj/welcome.jsp,直接出现以上界面,不再需要登录。
d)查看一下IE生成的cookie文件的内容,位置在:
XP: C:/Documents and Settings/用户名/Cookies/ WIN7: C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Cookies\Low 3、创建JavaBean, beans.CoursesData,包含三个字段:字符串courseId,courseName和HashMap类型的courseData,以及对应的get/set方法,courseData中存放以下数据:
4、创建Servlet ShowCourse.java点击上图的开始选课链接,显示:
5、创建添加课程的Servlet:
AddCourse.Java,点击某个课程(如JSP程序设计)后面的添加链接,则显示:
多选几门课,显示:
6、如果选择已经选过的课,则会显示如下界面:
7、创建删除课程的Servlet:DeleteCourse.Java,点击某个课程(如JSP程序设计)后面的删除链接,则显示:
调 试 过 程 及 实 验 结 果 1.登录界面 2.欢迎界面 3.选课界面 4.添加课程 5.删除课程 总 结 通过这次实验重新复习了对Cookie以及Session的使用 对于利用cookie保存用户信息,第一次使用的时候觉得有点不习惯,但在做出了这个实验之后,就感到熟练了许多了。
附 录 1.登录界面代码
2.欢迎界面代码
欢迎${cookie.name.value }访问我们的简易登录系统 开始选课 3.选课界面代码
${sessionScope.name },${requestScope.message }
${sessionScope.name }请选择你要选修的课程:
${sessionScope.name }你已经选择了下面的课程:
${course.value }
public class CookieLoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { request.setCharacterEncoding(“UTF-8“);response.setContentType(“text/html;charset=UTF-8“);String name=request.getParameter(“username“);String password=request.getParameter(“userpwd“);// 记住用户 String remember = request.getParameter(“remember“);if(“on“.equals(remember)){ //向客户端发送Cookie Cookie c = new Cookie(“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“);} public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { doGet(request, response);} } 增加 private List courses;Map selected;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { request.setCharacterEncoding(“UTF-8“);response.setContentType(“text/html;charset=UTF-8“);String name=request.getParameter(“name“);String id=request.getParameter(“id“);int courseid=Integer.valueOf(id);System.out.println(“id“+courseid);courses=new ArrayList();for(int i=0;i<5;i++){ CourseData c=new CourseData();c.setCourseId(String.valueOf(i+1));c.setCourseName(c.getCoursedata().get(i+1+““));courses.add(c);} request.setAttribute(“courses“, courses);boolean flag=false;//用hashmap来做 selected=(Map)request.getSession().getAttribute(“selected“);if(selected==null){ selected =new HashMap();} for(String key : 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 selectedCouser;Map selected;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { request.setCharacterEncoding(“UTF-8“);response.setContentType(“text/html;charset=UTF-8“);String id=request.getParameter(“id“);int courseid=Integer.valueOf(id);String name=request.getParameter(“name“);List courses=new ArrayList();for(int i=0;i<5;i++){ CourseData c=new CourseData();c.setCourseId(String.valueOf(i+1));c.setCourseName(c.getCoursedata().get(i+1+““));courses.add(c);} request.setAttribute(“courses“, courses);selected=(Map)request.getSession().getAttribute(“selected“);if(selected==null){ selected =new HashMap();} selected.remove(id);request.getSession().setAttribute(“selected“, selected);request.setAttribute(“name“, name);request.setAttribute(“selectcourse“, selectedCouser);request.getRequestDispatcher(“ShowCourse.jsp“).forward(request, response);} 显示代码 throws ServletException, IOException { request.setCharacterEncoding(“UTF-8“);response.setContentType(“text/html;charset=UTF-8“);String name=request.getParameter(“name“);List courses=new ArrayList();for(int i=0;i<5;i++){ CourseData c=new CourseData();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(CourseData c: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);}
实验代码3
实验3:RIP
实验3,FTP
统计实验3
实验3报告