JSP简单的网站论文模板Word下载.docx
《JSP简单的网站论文模板Word下载.docx》由会员分享,可在线阅读,更多相关《JSP简单的网站论文模板Word下载.docx(39页珍藏版)》请在冰点文库上搜索。
![JSP简单的网站论文模板Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/09d40187-1869-4faf-8452-30a62439bfd5/09d40187-1869-4faf-8452-30a62439bfd51.gif)
因此,学习javaServlet的首要任务是掌握怎样编写部署文件,怎样请求Tomcat服务器上保存编译java源文件得到的字节码,怎样编写部署文件,怎样请求Tomcat服务器创建一个Servlet对象,一个servlet对象是java.servlet包中HttpServlet类的一个实例,由服务器负责创建并完成初始化工作,当多个客户请求一个servlet时,服务器为每一个客户启动一个线程而不是启动一个进,这些线程由服务器来管理,与传统的CGI为每一个客户启动一个进程相比较,效率要高得多。
一个servlet对象的生命周期主要有下列三个过程组成:
(1)初始化servlet对象,servlet对象第一次被请求加载时服务器初始化这个servlet对象,即创建一个servlet对象,这对对象调用init方法完成必要的初始工作。
(2)诞生的servlet对象再调用service方法相应客户的请求。
(3)当服务器关闭时,调用destory方法,消灭servlet对象。
Init方法只被调用一次,即在servlet第一次被请求加载时调用该方法,当后续的客户请求servlet服务器时,web服务器将启动一个新的线程,在线程中,servlet对象调用servlet方法相应客户的请求,也就是说,每个客户的每次请求都导致service方法被调用执行分别运行在不同的线程中。
1.3Struts框架
Struts是Apache基金会Jakarta项目组的一个OpenSource项目,它将Servlet2.2和JSP1.1标记用作实现的一部分,它由一组相互协作的类、servlet和JSP标记,组成一个可重用的系统设计。
它能够很好地帮助Java开发者利用J2EE开发WEB应用。
它将设计模式中“分离显示逻辑与业务逻辑”的能力发挥的淋漓尽致。
因此,越来越多的大型的WEB应用项目的开发都纷纷采用Struts框架,或者借鉴Struts架构设计,进行基于MVC模式的应用系统的开发。
第2章总体设计
2.1需求分析
本系统意在为广大跆拳道爱好者提供一个交流的平台,让更多人知道和了解跆拳道的历史,发展历程,及其国际化意义,其注册功能可以为更多人称为该系统的一部分,同时享有更多的特权,可以在其留言板上留言,发表自己的想法,表达自己的意见。
2.2数据库设计
系统采用加载纯java数据库驱动程序的方式访问数据库。
使用SQLServer2005建立一个数据库Friend,该库有一个member表。
会员的注册信息存入member表中,member表的主键是logname,各个字段值的说明如下:
logname:
存储会员登录名字。
password:
存储会员登录密码。
phone:
存储会员的电话。
email:
存储会员的email地址。
member表的相信结构设计如图:
2.3功能模块简介
注册模块:
当新会员注册时,该模块要求用户必须输入会员名、密码信息,否则不允许注册。
用户的注册信息被存入数据库的member表中。
登录模块:
用户可以在该模块输入自己的会员名和密码,系统将对会员名和密码进行验证,如果输入的用户名或密码有错误,将提示用户的用户名或密码不正确。
留言板模块:
用户可以在该模块输入输入自己想说的话,系统将通过选择进行处理,然后进入到相应的界面中去。
然后进入留言板模块,进行留言
站内公告:
本系统管理员可以利用该模块在网站发布自己想要表达的思想,让所有会员都了解站长想说的内容。
2.4框架的应用
在MVC框架模式中,由servlet负责用构造方法创建javabean,因此创建javabean的类可以有带参数的构造方法,其他方法的命名继续保留get规则,但可以不遵守set规则,因为我们不希望JSP页面修改javabean中的数据,只需要它显示javabean中的数据。
由servlet对象创建的对象接收所有用户由通过浏览器提交的业务请求,并合成相应的值对象,访问业务逻辑层完成业务逻辑实体的业务处理;
将业务逻辑实体的变化以值对象的方式通知并转向相应的JSP。
然后JSP根据Servlet告知的值对象,合成请求响应结果的最终输出格式化文本(HTML);
将合成格式化文本以网络协议的方式发送给提交业务请求的用户浏览器。
本模型中实现了MVC设计模式。
其中,Servlet组件对应于MVC中的控制器(Controller)部分,JSP及Browser对应于视图(View)部分,而会话外观、逻辑Bean及值对象则对应于模型(Model)部分。
第3章详细设计
3.1注册功能
该模块的模型jvavbean描述用户的注册信息。
该模块视图部分由两个JSP页面构成,一个JSP页面负责提交用户的注册信息到控制器,另一个JSP页面负责显示注册是否成功的信息。
该模块的控制器servlet负责将视图提交的信息写入数据库的member表中,并负责更新视图。
3.2登录功能
用户可在该模块输入自己的会员名和密码,系统将对会员名和密码进行验证,如果输入的用户名或密码又错误,将提示用户输入的用户名或密码不正确。
该模块的模型javabean描述用户的登录信息,该模块视图部分由两个JSP页面构成:
一个JSP页面负责提交用户的登录信息到控制器:
另一个JSP页面负责显示登录是否成功的信息。
该模块的控制器servlet负责验证会员名和密码是否正确,并负责更新视图。
3.3留言板模块
用户可以在该模块中输入自己的用户名,然后可以选择性别,和现在你的心情,然后选择你所喜欢的头像并且输入自己想说的话,系统将通过选择进行处理,然后进入到相应的界面中去。
本模块视图有两个JSP页面。
add.jsp页面负责提供输入文字信息界面,sys.jsp页面将负责输入文字信息,和发表信息。
3.4站内公告模块
本系统管理员在进入该系统后,验证过信息管理员信息后,可以利用该模块在网站发布自己想要表达的思想,让所有会员都了解站长想说的内容。
第4章功能实现
4.1注册功能
1.模型(Javabean)
下列Javabean用来描述用户注册信息。
Register.java
packagemybean.data;
publicclassRegister{
Stringlogname="
"
password="
advertiseTitle="
email="
phone="
message="
;
StringbackNews;
publicStringgetLogname(){
returnlogname;
}
publicvoidsetLogname(Stringname){
this.logname=name;
publicStringgetPassword(){
returnpassword;
publicvoidsetPassword(Stringpw){
this.password=pw;
publicStringgetEmail(){
returnemail;
publicvoidsetEmail(Stringem){
this.email=em;
publicStringgetPhone(){
returnphone;
publicvoidsetPhone(Stringph){
this.phone=ph;
publicStringgetBackNews(){
returnbackNews;
publicvoidsetBackNews(Strings){
this.backNews=s;
}}
2.视图(JSP页面)
Register.jsp和showRegisterMess.jsp。
Register.jsp页面负责提供输入注册信息界面,showRegisterMess.jsp负责显示注册反馈信息,比如注册是否成功等。
主要代码如下:
register.jsp
3.<
head>
4.<
title>
用户注册<
/title>
5.<
styletype="
text/css"
>
6.<
!
--
7.body{
8.background-image:
url(image/214e84fc66b888c8fd037f6c[1].jpg);
9.}
10.-->
11.<
/style>
12.<
/head>
13.<
scripttype="
text/javascript"
14.varxmlHttp=false;
15.functioncreateXMLHttpRequest()
16.{
17.if(window.ActiveXObject)//在IE浏览器中创建XMLHttpRequest对象
18.{
19.try{
20.xmlHttp=newActiveXObject("
Msxml2.XMLHTTP"
);
21.}
22.catch(e){
23.try{
24.xmlHttp=newActiveXObject("
Microsoft.XMLHTTP"
25.}
26.catch(ee){
27.xmlHttp=false;
28.}
29.}
30.}
31.elseif(window.XMLHttpRequest)//在非IE浏览器中创建XMLHttpRequest对象
32.{
33.try{
34.xmlHttp=newXMLHttpRequest();
35.}
36.catch(e){
37.xmlHttp=false;
38.}
39.}
40.}
41.functioncheckName()
42.{
43.createXMLHttpRequest();
//调用创建XMLHttpRequest对象的方法
44.xmlHttp.onreadystatechange=callback;
//设置回调函数
45.varnameStr=form1.name.value;
46.varurl="
servlet/CheckName?
name="
+nameStr;
47.xmlHttp.open("
post"
url);
//向服务器端发送请求
48.xmlHttp.setRequestHeader("
Content-Type"
"
application/x-www-form-urlencoded;
charset=gb2312"
49.xmlHttp.send(null);
50.functioncallback()
51.{
52.if(xmlHttp.readyState==4)
53.{
54.if(xmlHttp.status==200)
55.{
56.varstr=xmlHttp.responseText;
57.varnameText=document.getElementById("
nameText"
58.if(str.length==2)
59.{
60.varmessage="
<
fontcolor=\"
red\"
b>
*用户名已经存在,请另选一个注册!
/b>
/font>
61.nameText.innerHTML=message;
62.}else{
63.varmessage="
OK<
64.nameText.innerHTML=message;
65.}
66.
67.}
68.}
69.}
70.}
71.functioncheckPass1()
72.{
73.varpass1=form1.pass1.value;
74.varpass1Text=document.getElementById("
pass1Text"
75.if(pass1.length>
15||pass1.length<
8)
76.{
77.varmessage="
*密码长度不合法<
78.pass1Text.innerHTML=message;
79.}else
80.{
81.varmessage="
82.pass1Text.innerHTML=message;
83.}
84.}
85.
86.functioncheckPass2()
87.{
88.varpass2Text=document.getElementById("
pass2Text"
89.if(form1.pass1.value!
=form1.pass2.value)
90.{
91.varmessage="
*两次输入的密码不一致<
92.pass2Text.innerHTML=message;
93.}else
94.{
95.varmessage="
96.pass2Text.innerHTML=message;
97.}
98.}
99.functioncheckEmail()
100.{
101.varemailText=document.getElementById("
emailText"
102. varpattern=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
103. if(!
pattern.test(form1.email.value))
104.{
105.varmessage="
格式不正确,请检查!
106.emailText.innerHTML=message;
107.}else
108.{
109.varmessage="
110.emailText.innerHTML=message;
111.}
112.}
113.functioncheckPhone()
114.{
115.varphone=form2.phone.value;
116.varphoneText=document.getElementById("
phoneText"
117.if(phone.length!
==11)
118.{
119.varmessage="
*电话长度不合法<
120.phoneText.innerHTML=message;
121.}else
122.{
123.varmessage="
124.phoneText.innerHTML=message;
125.}
126.}
127.<
/script>
128.
129.<
body>
br>
130.<
divalign="
center"
131.<
formname="
form1"
method="
action="
showRegisterMess.jsp"
132.<
p>
strong>
/strong>
/p>
133.<
tablewidth="
546"
border="
1"
cellpadding="
2"
cellspacing="
height="
218"
134.<
tr>
135.<
td>
用户名:
/td>
136.<
inputname="
name"
type="
text"
size="
20"
onchange="
checkName()"
137.<
divid="
请认真填写,此项不能为空<
/div>
138.<
/tr>
139.<
140.<
性别:
141.<
请选择性别<
142.<
sexText"
inputtype="
radio"
name="
sex"
value="
男"
男
143.<
女"
女
144.<
145.<
146.<
147.<
密码:
148.<
pass1"
password"
checkPass1()"
149.<
请牢记密码,勿为生日、电话号码等。
此项不能为空。
tdvalign="
top"
150.<
151.<
152.<
重复密码:
153.<
pass2"
checkPass2()"
154.<
请再次输入密码,不能为空。
155.<
156.<
157.<
email:
<
158.<
email"
25"
checkEmail()"
159.<
请注意格式,如:
yanggepeng@<
160.<
161.<
162.<
phone:
163.<
phone"
checkPhone()"
164.<
如:
152********<
165.<
166.<
167.<
tdcolspan="
3"
168.<
submit"
Submit"
提交"
&
nbsp;
169.<
reset"
Submit2"
重置"
170.<
171.<
172.<
/table>
173.<
/form>
174.<
175.<
/body>
控制器(servlet)
控制器servlet对象的名字是register。
控制器register负责连接数据库,将用户提交的信息写入到member表,并将用户转到showRegisterMess.jsp页面查看注册反馈信息。
HandleRegister.java
packagemyservlet.control;
importmybean.data.*;
importjava.sql.*;
importjava.io.*;
import