JSP课程设计实验一.docx
- 文档编号:28000115
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:29
- 大小:497.60KB
JSP课程设计实验一.docx
《JSP课程设计实验一.docx》由会员分享,可在线阅读,更多相关《JSP课程设计实验一.docx(29页珍藏版)》请在冰豆网上搜索。
JSP课程设计实验一
JSP课程设计
实验
(1)
项目名称:
JSP常用服务器控件网站开发
姓名:
周天琪
学号:
41112198
班级:
2011级软件工程1班
日期:
20年月日
前言
java服务器页面[1]是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。
用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP全名为JavaServerPages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以<%,%>形式)。
JSP与Servlet一样,是在服务器端执行的。
通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
JSP(JavaServerPages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
一、课程设计的目的
课程设计是“JSP动态网页设计”课程的一个重要的实践性环节,其目的是使我们:
1进一步巩固和加深“JSP动态网页设计”课程的基本知识,了解JSP动态网页设计知识在实际中的应用。
2学习JSP动态网页设计的一般方法,了解和掌握网站的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是网站功能规划的能力和实现相关功能的能力。
3综合运用“JSP动态网页设计”课程中常用服务器控件,并进行的相关训练。
二、课程设计的内容
课程设计是选择与本课程的主要教学内容相结合的设计课题。
本次课程设计的课题是“用户登陆与注册”,旨在进一步掌握ASP.NET常用服务器控件的使用方法,并深刻理解用户与网页之间交互的实现。
其具体内容如下:
1.本实验中需要设计3个网页:
登陆、回答问题和注册网页;
2.登陆界面,采用用户名和密码验证登陆到回答问题网页,用户名为user,密码为user;此外设计注册按钮,进入到注册网页;
3.回答问题界面,需要设计5个选择题,其中3个单选,2个多选。
通过用户选择每一道题的答案,可以在题目的最后显示出用户的选择;设计提交按钮,对用户的答案进行评分,总分100分;
4.注册界面,要求参考现有论坛或网上商城的用户注册界面,尽可能在当前网页用上所有的服务器控件;设计提交按钮,显示用户的注册信息;
5.编写相关代码、在课程设计内容展示中附设计界面、相关代码、运行结果,以及在网页设计中的主要思路。
6.在总结中填写本次实验中遇到的问题、如何解决、得到的启发等内容。
三、课程设计内容展示
1.数据库
2.网页展示
3.2.1主页面
3.2.2登陆界面
3.2.3答题界面
3.2.4得分提示界面
3.2.5得分主界面
3.2.6用户注册界面
3.代码部分
//获取数据库答案
publicclassGetAnswer{
publicmyAnswergetmy(Connectioncon)throwsException{
myAnswercurrentAnswer=newmyAnswer();
Stringsql="select*frommyanswer";
PreparedStatementprst=con.prepareStatement(sql);
ResultSetrs=prst.executeQuery();
while(rs.next()){
currentAnswer.setNum1(rs.getString
(1));
currentAnswer.setNum2(rs.getString
(2));
currentAnswer.setNum3(rs.getString(3));
currentAnswer.setNum4(rs.getString(4));
currentAnswer.setNum5(rs.getString(5));
}
returncurrentAnswer;
}
}
//***************登陆验证******************
publicclassUserDao{
/**
*登录验证
*@paramcon
*@paramuser
*@return
*@throwsException
*/
publicUserlogin(Connectioncon,Useruser)throwsException{
UserresultUser=null;
Stringsql="select*fromuserwherename=?
andpwd=?
";
System.out.println(sql);
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,user.getUserName());
pstmt.setString(2,user.getPassword());
ResultSetrs=pstmt.executeQuery();
if(rs.next()){
resultUser=newUser();
resultUser.setUserName(rs.getString("name"));
resultUser.setPassword(rs.getString("pwd"));
}
returnresultUser;
}
publicintRegisterUser(Connectioncon,Useruser)throwsException{
Stringsql="insertintouser(name,pwd)values('"+user.getUserName()+"','"+user.getPassword()+"')";
System.out.println(sql);
PreparedStatementpstmt=con.prepareStatement(sql);
returnpstmt.executeUpdate();
}
}
//***************模型******************
publicclassUser{
privateintid;
privateStringuserName;
privateStringpassword;
publicUser(){
super();
//TODOAuto-generatedconstructorstub
}
publicUser(StringuserName,Stringpassword){
super();
this.userName=userName;
this.password=password;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetUserName(){
returnuserName;
}
publicvoidsetUserName(StringuserName){
this.userName=userName;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
//***************submitServlet******************
publicclassLoginServletextendsHttpServlet{
DbUtildbUtil=newDbUtil();
UserDaouserDao=newUserDao();
@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doPost(request,response);
}
@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
StringuserName=request.getParameter("myName");
Stringpassword=request.getParameter("myPwd");
request.setAttribute("myName",userName);
request.setAttribute("myPwd",password);
if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(password)){
request.setAttribute("error","用户名或密码为空!
");
request.getRequestDispatcher("Login.jsp").forward(request,response);
return;
}
Useruser=newUser(userName,password);
Connectioncon=null;
try{
con=dbUtil.getCon();
UsercurrentUser=userDao.login(con,user);
if(currentUser==null){
request.setAttribute("error","用户名或密码错误!
");
//服务器跳转
request.getRequestDispatcher("Login.jsp").forward(request,response);
}else{
//获取Session
HttpSessionsession=request.getSession();
session.setAttribute("currentUser",currentUser);
//客户端跳转
response.sendRedirect("MainForm.jsp");
}
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}finally{
try{
dbUtil.closeCon(con);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
}
}
publicclasssubmitServletextendsHttpServlet{
DbUtildbUtil=newDbUtil();
GetAnswergetAnswer=newGetAnswer();
myAnswermyanswer=newmyAnswer();
@Override
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doPost(request,response);
}
@Override
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriterout=response.getWriter();
/*
Enumerationenu=request.getParameterNames();
Stringgetvalues="";
while(enu.hasMoreElements()){
StringparameterName=(String)enu.nextElement();
myanswer.setNum1(request.getParameter("parameterName"));
if(parameterName.startsWith("***")){
StringmyValues[]=request.getParameterValues("parameterName");
for(inti=0;i getvalues+=myValues[i]; } myanswer.setNum4(getvalues); getvalues=""; } if(parameterName.startsWith("**")){ StringmyValues[]=request.getParameterValues("parameterName"); for(inti=0;i getvalues+=myValues[i]; } myanswer.setNum5(getvalues); getvalues=""; } } */ Strings_releaseDateStr_1=newString(request.getParameter("myselect").getBytes("ISO-8859-1"),"UTF-8"); myanswer.setNum1(s_releaseDateStr_1); Strings_releaseDateStr_2=newString(request.getParameter("secondSelect").getBytes("ISO-8859-1"),"UTF-8"); myanswer.setNum2(s_releaseDateStr_2); Strings_releaseDateStr_3=newString(request.getParameter("thirdSelect").getBytes("ISO-8859-1"),"UTF-8"); myanswer.setNum3(s_releaseDateStr_3); Strings_releaseDateStr_4=newString(request.getParameter("mycheckbox").getBytes("ISO-8859-1"),"UTF-8"); myanswer.setNum4(s_releaseDateStr_4); Strings_releaseDateStr_5=newString(request.getParameter("youcheckbox").getBytes("ISO-8859-1"),"UTF-8"); myanswer.setNum5(s_releaseDateStr_5); Connectioncon=null; try{ con=dbUtil.getCon(); myAnswergotAnswer=getAnswer.getmy(con); if(gotAnswer==null){ request.setAttribute("error","答案获取失败! "); //服务器跳转 request.getRequestDispatcher("MainForm.jsp").forward(request,response); }else{ intsum=0; if(myanswer.getNum1().equals(gotAnswer.getNum1())){sum=sum+1;} if(myanswer.getNum2().equals(gotAnswer.getNum2())){sum=sum+1;} if(myanswer.getNum3().equals(gotAnswer.getNum3())){sum=sum+1;} if(myanswer.getNum4().equals(gotAnswer.getNum4())){sum=sum+1;} if(myanswer.getNum5().equals(gotAnswer.getNum5())){sum=sum+1;} System.out.println(gotAnswer.getNum1()); System.out.println(gotAnswer.getNum2()); System.out.println(gotAnswer.getNum3()); System.out.println(gotAnswer.getNum4()); System.out.println(gotAnswer.getNum5()); System.out.println(myanswer.getNum1()); System.out.println(myanswer.getNum2()); System.out.println(myanswer.getNum3()); System.out.println(myanswer.getNum4()); System.out.println(myanswer.getNum5()); intresult=sum*20; out.println("您的得分为: "+result); out.flush(); out.close(); request.setAttribute("error","您的得分是: "+result); //服务器跳转 request.getRequestDispatcher("MainForm.jsp").forward(request,response); } }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }finally{ try{ dbUtil.closeCon(con); }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } } } //***************LoginServlet****************** publicclassLoginServletextendsHttpServlet{ DbUtildbUtil=newDbUtil(); UserDaouserDao=newUserDao(); @Override protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ this.doPost(request,response); } @Override protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ StringuserName=request.getPara
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSP 课程设计 实验