jsp上机实验4Word格式.docx
《jsp上机实验4Word格式.docx》由会员分享,可在线阅读,更多相关《jsp上机实验4Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
![jsp上机实验4Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/28/3aa7cdf7-d0d6-40ec-b3e2-71a966ffbde6/3aa7cdf7-d0d6-40ec-b3e2-71a966ffbde61.gif)
境
Tomcat7.0.
myeclipse2013
内
容
编写一个JavaWeb项目,实现依据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浏览器,重新打开地址
8080/LessionSelectionProj/welcome.jsp,直接出现以上界面,不再需要登录。
d)查看一下IE生成的cookie文件的内容,位置在:
XP:
C:
/DocumentsandSettings/用户名/Cookies/
WIN7:
\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.登录界面代码
<
body>
<
formaction="
cookieServlet"
method="
post"
>
用户名:
inputname="
name"
type="
text"
/>
br>
密&
nbsp;
码:
password"
inputtype="
checkbox"
name="
check"
value="
1"
一周之内不用登录
submit"
Submit"
<
/form>
/body>
2.欢迎界面代码
c:
choose>
<
whentest="
${cookie.name!
=null}"
欢迎${cookie.name.value}访问我们的简易登录系统
/c:
when>
otherwise>
<
redirecturl="
login.jsp"
redirect>
ahref="
showCourse"
开始选课<
/a>
3.选课界面代码
iftest="
${requestScope.message!
${sessionScope.name},${requestScope.message}
if>
${sessionScope.name}请选择你要选修的课程:
table>
forEachitems="
${sessionScope.courseData}"
var="
course"
tr>
<
td>
${course.value}&
&
/td>
addCourse?
course=${course.key}"
添加<
deleteCourse?
删除<
/tr>
forEach>
/table>
hr>
${sessionScope.name}你已经选择了下面的课程:
${sessionScope.checkedCourse!
=null}"
${sessionScope.checkedCourse}"
${course.value}
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("
name);
response.sendRedirect("
welcome.jsp"
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
doGet(request,response);
}
增加
privateList<
CourseData>
courses;
Map<
String,String>
selected;
Stringid=request.getParameter("
id"
intcourseid=Integer.valueOf(id);
System.out.println("
+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<
)request.getSession().getAttribute("
selected"
if(selected==null){
selected=newHashMap<
for(Stringkey:
selected.keySet()){
if(key.equals(id)){
System.out.println("