简单的JavaWeb开发.docx
《简单的JavaWeb开发.docx》由会员分享,可在线阅读,更多相关《简单的JavaWeb开发.docx(23页珍藏版)》请在冰点文库上搜索。
简单的JavaWeb开发
计算机科学与技术学院
课程设计
题目:
《用户信息管理系统》
学生姓名:
陈卓学号:
123821060
专业:
计算机科学与技术
2014年6月29日
1.所用到相关技术和知识点
1.1JSP技术........................................................................................3
1.2Servlet技术................................................................................................................3
1.3HTML技术....................................................................................4
1.4JavaScript技术......................................................................................................5
1.5开发工具Eclispe简介.......................................................................................5
2.实现步骤
2.1用户管路系统整体分析..................................................................6
2.2系统数据分析.................................................................................6
2.3数据流图......................................................................................7
2.4功能模块的核心代码........................................................................................8
3.具体实现
4.系统界面展示12
5.总结14
1.所用到相关技术和知识点
用户信息管理系统主要采用JSP,Servlet,HTML,JavaScript等相关技术、采用SQLServer数据库、ApacheTomcat6.0作为web服务器、开发工具为Eclipse集成软件开发环境。
整体设计遵循软件工程的方法,经过需求分析、系统设计、详细设计、文档和代码的编制、模块测试和系统实现这几个阶段,下面就对这几种技术和方法做一个概述。
1.1JSP技术
JSP(全称JavaServerPages)是由SunMicrosystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。
JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序。
JSP使Java代码和特定的预定义动作可以嵌入到静态页面中。
JSP句法增加了被称为JSP动作的XML标签,它们用来调用内建功能。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
1.2Servlet技术
servlet是使用JavaServlet应用程序设计接口(API)及相关类和方法的Java程序。
除了JavaServletAPI,Servlet还可以使用用以扩展和添加到API的Java类软件包。
Servlet在启用Java的Web服务器上或应用服务器上运行并扩展了该服务器的能力。
Javaservlet对于Web服务器就好象Javaapplet对于Web浏览器。
Servlet装入Web服务器并在Web服务器内执行,而applet装入Web浏览器并在Web浏览器内执行。
JavaServletAPI定义了一个servlet和Java使能的服务器之间的一个标准接口,这使得Servlets具有跨服务器平台的特性。
Servlet通过创建一个框架来扩展服务器的能力,以提供在Web上进行请求和响应服务。
当客户机发送请求至服务器时,服务器可以将请求信息发送给Servlet,并让Servlet建立起服务器返回给客户机的响应。
当启动Web服务器或客户机第一次请求服务时,可以自动装入Servlet。
装入后,Servlet继续运行直到其它客户机发出请求。
Servlet的功能涉及范围很广。
例如,Servlet可完成如下功能:
(1)创建并返回一个包含基于客户请求性质的动态内容的完整的HTML页面。
(2)创建可嵌入到现有HTML页面中的一部分HTML页面(HTML片段)。
(3)与其它服务器资源(包括数据库和基于Java的应用程序)进行通信。
(4)用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。
例如,Servlet可以是多参与者的游戏服务器。
(5)当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至applet的新连接,并将该连
接保持在打开状态。
当允许客户机和服务器简单、高效地执行会话的情况下,applet也可以启动客户浏览器和服务器之间的连接。
可以通过定制协议或标准(如IIOP)进行通信。
(6)对特殊的处理采用MIME类型过滤数据,例如图像转换和服务器端包括(SSI)。
(7)将定制的处理提供给所有服务器的标准例行程序。
例如,Servlet可以修改如何认证用户。
(8)网站流程的控制。
例如,用户登陆[1]
1.3HTML技术
HTML(HyperTextMark-upLanguage)即超文本标记语言或超文本链接标示语言,是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言。
设计HTML语言的目的是为了能把存放在一台电脑中的文本或图形与另一台电脑中的文本或图形方便地联系在一起,形成有机的整体,人们不用考虑具体信息是在当前电脑上还是在网络的其它电脑上。
我们只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台电脑中。
HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。
HTML的结构包括头部(Head)、主体(Body)两大部分,其中头部描述浏览器所需的信息,而主体则包含所要说明的具体内容。
HTML只不过是组合成一个文本文件的一系列标签。
它们像乐队的指挥,告诉乐手们哪里需要停顿,哪里需要激昂。
HTML标签通常是英文词汇的全称(如块引用:
blockquote)或缩略语(如“p”代表Paragraph),但它们的与一般文本有区别,因为它们放在单书名号里。
故Paragragh标签是
块引用标签是
。有些标签说明页面如何被格式化(例如,开始一个新段落),其他则说明这些词如何显示(使文字变粗)还有一些其他标签提供在页面上不显示的信息--例如标题。
1.4JavaScript技术
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
它最初由网景公司(Netscape)的BrendanEich设计,是一种动态、弱类型、基于原型的语言,内置支持类。
JavaScript是Sun公司的注册商标。
Ecma国际以JavaScript为基础制定了ECMAScript标准。
JavaScript也可以用于其他场合,如服务器端编程。
完整的JavaScript实现包含三个部分:
ECMAScript,文档对象模型,字节顺序记号。
Netscape公司在最初将其脚本语言命名为LiveScript。
在Netscape在与Sun合作之后将其改名为JavaScript。
JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java。
但JavaScript的主要设计原则源自Self和Scheme。
JavaScript与Java名称上的近似,是当时网景为了营销考虑与Sun公司达成协议的结果。
为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。
为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。
现在两者都属于ECMAScript的实现。
尽管JavaScript作为给非程序人员的脚本语言,而非是作为给程序人员的编程语言来推广和宣传,但是JavaScript具有非常丰富的特性。
1.5开发工具Eclispe简介
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。
Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。
由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于Java开发工具。
尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预计将会推出。
Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。
基于Eclipse的应用程序的一个突出例子是IBMRationalSoftwareArchitect,它构成了IBMJava开发工具系列的基础。
2.实验步骤
2.1用户管路系统整体分析
本系统的目的是为了方便对用户信息进行管理和查阅,实现了用户通过登录验证后对用户信息进行查找,注册,修改,删除功能。
功能表
用户登录/同时可以进行注册
通过查找用户名,对用户信息进行查询
注册新用户
修改用户信息
删除记录用户的所有信息
2.2系统数据分析
本系统共有1张数据表:
2.3数据流图数据验证提交数据库
用户登录
注册
登录
2.4功能模块的核心代码
网站后台开发目录结构:
用户登陆验证的核心代码:
Connectionconnection;
Statementsql;
ResultSetrs;
try{
connection=DriverManager.getConnection("jdbc:
odbc:
testDataBase","sa","123456");
sql=connection.createStatement();
rs=sql.executeQuery("select*fromuserTable1wherename='"+sUserName+"'andpassword='"+sPasswd+"'");
//如果记录集非空,表明有匹配的用户名和密码,登陆成功
if(rs.next())
{
//登录成功后将sUserName设置为session变量的UserName
//这样在后面就可以通过session.getAttribute("UserName")来获取用户名,
//同时这样还可以作为用户登录与否的判断依据
response.sendRedirect("dengru.jsp");
}else
//否则登录失败
{
out.print("用户名用户名不存在或密码错误");
out.print("
");
out.print("返回");}
用户注册核心代码:
<%//接收客户端提交的数据
StringusId=codeToString(request.getParameter("UserID"));
intuId;
try{
uId=Integer.parseInt(usId.trim());
}catch(Exceptione){
uId=0;
}
StringuNum=codeToString(request.getParameter("userNum"));
if(uNum==null){
uNum="";
}
StringuName=codeToString(request.getParameter("userName"));
if(uName==null){
uName="";
}
StringuPass=codeToString(request.getParameter("password"));
if(uPass==null){
uPass="";
}
StringusAge=codeToString(request.getParameter("userage"));
intuAge;
try{
uAge=Integer.parseInt(usAge.trim());
}catch(Exceptione){
uAge=0;
}
StringuSex=codeToString(request.getParameter("usersex"));
if(uSex==null){
uSex="";
}
StringuAddre=codeToString(request.getParameter("useraddress"));
if(uAddre==null){
uAddre="";
}
StringuPhone=codeToString(request.getParameter("userphone"));
if(uPhone==null){
uPhone="";
}
StringuTime=codeToString(request.getParameter("usertime"));
if(uTime==null){
uTime="";
}
%>
<%//构造追加记录SQL语句
%>
<%//执行SQL语句
try{
Connectioncon;
Statementsql;
StringsqlString=null;//sql语句
sqlString="insertintouserTable1(num,nameNum,name,age,sex,address,phone,addtime,password)values("+uId+",'"+uNum+"','"+uName+"',"+uAge+",'"+uSex+"','"+uAddre+"','"+uPhone+"','"+uTime+"','"+uPass+"')";con=DriverManager.getConnection("jdbc:
odbc:
testDataBase","sa","123456");
sql=con.createStatement();
sql.executeUpdate(sqlString);
con.close();
}catch(SQLExceptione){
response.sendRedirect("insertUserTable.jsp");
}
信息查询核心代码:
connection=DriverManager.getConnection("jdbc:
odbc:
testDataBase","sa","123456");
sql=connection.createStatement();
rs=sql.executeQuery("select*fromuserTable1wherename='"+Sname+"'");
out.print("");
out.print("");
out.print("
用户名:");
out.print("");
out.print("");
out.print(" ");
out.print("");
out.print(" ");
out.print("
");out.print("
用户数据
");out.print("
");out.print("用户ID号");
out.print("用户名");
out.print("用户真实姓名");
out.print("年龄");
out.print("性别");
out.print("联系地址");
out.print("联系电话");
out.print("添加时间");
out.print("
");while(rs.next())
{
out.print("
");out.print(""+rs.getLong
(1)+"");
out.print(""+rs.getString
(2)+"");
out.print(""+rs.getString(3)+"");
out.print(""+rs.getInt(4)+"");
out.print(""+rs.getString(5)+"");
out.print(""+rs.getString(6)+"");
out.print(""+rs.getString(7)+"");
out.print(""+rs.getString(8)+"");
out.print("
");}
修改信息核心代码:
<%//接收客户端修改的用户ID号
longID;
try{
ID=Long.parseLong(request.getParameter("user_ID1"));
//longID=2;
}catch(Exceptione){
ID=0;
}
StringuNum=codeToString(request.getParameter("userNum"));
if(uNum==null){
uNum="";
}
StringuName=codeToString(request.getParameter("userName"));
if(uName==null){
uName="";
}
StringuPass=codeToString(request.getParameter("password"));
if(uPass==null){
uPass="";
}
StringusAge=codeToString(request.getParameter("userage"));
intuAge;
try{
uAge=Integer.parseInt(usAge.trim());
}catch(Exceptione){
uAge=0;
}
StringuSex=codeToString(request.getParameter("usersex"));
if(uSex==null){
uSex="";
}
StringuAddre=codeToString(request.getParameter("useraddress"));
if(uAddre==null){
uAddre