jsp课程设计.docx
- 文档编号:11897582
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:12
- 大小:19.21KB
jsp课程设计.docx
《jsp课程设计.docx》由会员分享,可在线阅读,更多相关《jsp课程设计.docx(12页珍藏版)》请在冰点文库上搜索。
jsp课程设计
滨州学院
课程设计(学年论文)
题目:
NCRE考试报名系统设计与实现
系院
专业
班级
姓名
学号
指导教师
职称
年月日
滨州学院课程设计(学年论文)任务书
学生姓名
指导教师
题目
NCRE考试报名系统设计与实现
主要
内容
编写一个用于接收NCRE考试报名网站系统,系统分为前台和后台两个部分,前台用于接收考生的报名信息,包括了所选的考试类型、考生的基本信息,报名后使用密码和报名号(或姓名)查看自己的报名,修改报名信息,后台用于管理考试类型信息、管理报名需知信息、查看所有的报名信息等。
研究方法
1.文献调研法——在学校图书馆查阅与课题相关的文献资料
2.分析比较法——对现存的成熟系统进行分析和比较,学习研究各个系统的特点
3.团队协作法——采用团队合作的方式对所遇到的问题进行集中学习处理
4.编程实验法——通过编写程序对设计思路和目标进行检验
主要任务
及目标
加深对JSP动态网页开发技术中的基本知识的理解,通过对所选项目的分析、程序算法的设计、运行与调试过程的分析,掌握动态网页基础知识、Tomcat服务器管理知识、JSP基础、JSP指令和脚本元素、JDBC、JSP处理客户端请求、会话和访问控制等,以及上机操作的各种技巧,培养逻辑思维能力、团队合作精神、创新能力、动手操作能力等,为本专业后续课程的学习打下一定的基础。
主要参
考文献
[1]郭克华等.JavaWeb开发与应用[M].清华大学出版社.2012.
[2]刘京华等.JavaWeb整合开发王者归来[M].清华大学出版社.2011.
[3]方振宇.JavaWeb开发从初学到精通[M].电子工业出版社.2010.
[4]张峰,李慧丽.JavaWeb2.0架构开发与项目实战[M].清华大学出版社.2010.
进度安排
各阶段任务
日期
项目分析与设计
第1次集中编码
第2次集中编码
完成项目并撰写设计报告
指导教师签字:
系(院)负责人签字:
滨州学院课程设计(学年论文)成绩评定表
系(院):
学生姓名
专业班级
题目
NCRE考试报名系统设计与实现
内容提要
此课程设计的网址是http:
//localhost:
8080/NCRE
进入之后是网址的首页,存在一个进入链接
点击链接后进入主页,主页存在课程设计的两方面,分别是管理员和用户
在管理员中,管理员有登陆,修改密码,显示、修改用户信息的能力
在用户中,用户具有登陆,报名考试,修改密码,修改个人信息的能力
指导教师评语
成绩:
指导教师(签名):
年月日
一、课程设计的目的及要求
加深对JSP动态网页开发技术中的基本知识的理解,通过对所选项目的分析、程序算法的设计、运行与调试过程的分析,掌握动态网页基础知识、Tomcat服务器管理知识、JSP基础、JSP指令和脚本元素、JDBC、JSP处理客户端请求、会话和访问控制等,以及上机操作的各种技巧,培养逻辑思维能力、团队合作精神、创新能力、动手操作能力等,为本专业后续课程的学习打下一定的基础。
二、系统开发环境及运行环境
操作系统:
windowsxp
数据库系统:
MySQL
开发工具:
MyEclipse
三、设计正文
此课程设计的网址是http:
//localhost:
8080/NCRE
进入之后是网址的首页,存在一个进入链接
点击链接后进入主页,主页存在课程设计的两方面,分别是管理员和用户
在管理员中,管理员有登陆,修改密码,显示、修改用户信息的能力
管理员的部分代码
<一>用户名和密码不能为空的验证
functioncheckzhi(){
if(form1.text1.value==null||form1.text1.value==""){
alert("请输入账号");
returnfalse;
}
if(form1.pw.value==null||form1.pw.value==""){
alert("请输入密码");
returnfalse;
}
if(form1.text2.value==null||form1.text2.value==""){
alert("请输入验证码");
returnfalse;
}
}
<二>验证码验证代码
publicclassCheckServletextendsHttpServlet{
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
HttpSessionsession=request.getSession();
StringrequestCaptcha=request.getParameter("captcha");
StringsessionCaptcha=(String)session.getAttribute("captcha");
if(sessionCaptcha!
=null&&sessionCaptcha.equals(requestCaptcha)){
session.removeAttribute("captcha");
request.getRequestDispatcher("/jsp/gl.jsp").forward(request,response);
}else{
request.setAttribute("message","验证码输入错误");
request.getRequestDispatcher("/jsp/gly.jsp").forward(request,response);
}
}
}
publicclassEncodingFilterimplementsFilter{
publicvoidinit(FilterConfigconfig)throwsServletException{
}
publicvoiddestroy(){
}
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsIOException,ServletException{
request.setCharacterEncoding("utf-8");
chain.doFilter(request,response);
}
}
<三>验证码绘制
<%!
ColorgetRandColor(intfc,intbc){
Randomrandom=newRandom();
if(fc>255){
fc=255;
}
if(bc>255){
bc=255;
}
intr=fc+random.nextInt(bc-fc);
intg=fc+random.nextInt(bc-fc);
intb=fc+random.nextInt(bc-fc);
returnnewColor(r,g,b);
}
%>
<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires",0);
intwidth=60,height=20;
BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphicsg=image.getGraphics();
Randomrandom=newRandom();
g.setColor(getRandColor(200,250));
g.fillRect(0,0,width,height);
g.setFont(newFont("TimesNewRoman",Font.PLAIN,18));
//g.setColor(newColor());
//g.drawRect(0,0,width-1,height-1);
g.setColor(getRandColor(160,200));
for(inti=0;i<155;i++){
intx=random.nextInt(width);
inty=random.nextInt(height);
intxl=random.nextInt(12);
intyl=random.nextInt(12);
g.drawLine(x,y,x+xl,y+yl);
}
StringsRand="";
for(inti=0;i<4;i++){
Stringrand=String.valueOf(random.nextInt(10));
sRand+=rand;
g.setColor(newColor(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));
g.drawString(rand,13*i+6,16);
}
session.setAttribute("captcha",sRand);
g.dispose();
ImageIO.write(image,"JPEG",response.getOutputStream());
out.clear();
out=pageContext.pushBody();
%>
<四>数据库链接代码
publicclassDb{
privatefinalStringQD="com.mysql.jdbc.Driver";
privatefinalStringURL="jdbc:
mysql:
//localhost:
3306/test?
useUnicode=true&characterEncoding=utf-8";
privatefinalStringUSER="root";
privatefinalStringPWD="zxy910121";
privateConnectioncon=null;//数据库连接
privatePreparedStatementpre=null;//预编译指令集
privateResultSetresult=null;//结果集
publicvoidconnect(){
try{
Class.forName(QD);
con=DriverManager.getConnection(URL,USER,PWD);
}catch(Exceptionex){
ex.printStackTrace();
}
}
publicConnectiongetCon(){
returncon;
}
publicvoidsetCon(Connectioncon){
this.con=con;
}
publicPreparedStatementgetPre(){
returnpre;
}
publicvoidsetPre(PreparedStatementpre){
this.pre=pre;
}
publicResultSetgetResult(){
returnresult;
}
publicvoidsetResult(ResultSetresult){
this.result=result;
}
}
<五>数据修改代码
try{
Dbdb=newDb();
db.connect();
Stringsql="updateyonghusetshenfenzhenghao=?
ybukao=?
yminzu=?
ywenhua=?
yzhiye=?
kemu=?
yphone=?
yaddress=?
whereyname=?
";
db.setPre(db.getCon().prepareStatement(sql));
db.getPre().setString(1,shenfen);
db.getPre().setString(2,bukao);
db.getPre().setString(3,minzu);
db.getPre().setString(4,wenhua);
db.getPre().setString(5,zhiye);
db.getPre().setString(6,kemu);
db.getPre().setString(7,phone);
db.getPre().setString(8,address);
db.getPre().setString(9,yname);
db.getPre().executeUpdate();
db.getCon().close();
request.getRequestDispatcher("login.jsp").forward(request,response);
}catch(Exceptionex){
ex.printStackTrace();
}
<六>数据库添加代码
try{
Dbdb=newDb();
db.connect();
Stringsql="select*fromyonghuwhereyname=?
";
db.setPre(db.getCon().prepareStatement(sql));
db.getPre().setString(1,yname);
db.setResult(db.getPre().executeQuery());
if(db.getResult().next()){
request.setAttribute("message","用户名已经存在");
request.getRequestDispatcher("yhzc.jsp").forward(request,response);
}else{
sql="insertintoyonghu(yname,ypass,ysex,yschool,yzhuanye,ybukao)values(?
?
?
?
?
?
)";
db.setPre(db.getCon().prepareStatement(sql));
db.getPre().setString(1,yname);
db.getPre().setString(2,ypass);
db.getPre().setString(3,ysex);
db.getPre().setString(4,yschool);
db.getPre().setString(5,yzhuanye);
db.getPre().setString(6,ybukao);
db.getPre().executeUpdate();
request.getRequestDispatcher("zhuye.jsp").forward(request,response);
}
if(db.getResult()!
=null){
db.getResult().close();
db.setResult(null);
}
if(db.getPre()!
=null){
db.getPre().close();
db.setPre(null);
}
if(db.getCon()!
=null){
db.getCon().close();
db.setCon(null);
}
}catch(Exceptionex){
ex.printStackTrace();
}
四、程序调试过程中出现的问题
1、数据库都连接好了,但是验证用户名和其他有关数据库的东西时候总是出错
错误原因:
finalStringURL="jdbc:
mysql:
//localhost:
3306/studentssystem?
useUnicode=true&characterEncoding=GB2312";
这句话里面讲路径写成SQLServer的路径
finalStringUSER="root";
这里是用户名,写成了连接名
finalStringPWD="123";
2、连接数据库的时候点击登录按钮没有反应
错误原因:
finalStringsql="select*fromUSERInfoWhereuid=?
andpwd=?
";与之有关联的uid和pwd在MySQL中写的是用户名和密码
五总结
通过实验,我学到了很多的jsp的知识,同时使自己对于面向对象的思想更加的理解,虽然期间出现了很多的问题,但是通过团队的努力,都解决了,增加了自己的知识总结,并且使自己的记忆更加的深刻。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 课程设计