实验2 创建和发布Web应用程序.docx

上传人:b****2 文档编号:17248007 上传时间:2023-07-23 格式:DOCX 页数:15 大小:99.57KB
下载 相关 举报
实验2 创建和发布Web应用程序.docx_第1页
第1页 / 共15页
实验2 创建和发布Web应用程序.docx_第2页
第2页 / 共15页
实验2 创建和发布Web应用程序.docx_第3页
第3页 / 共15页
实验2 创建和发布Web应用程序.docx_第4页
第4页 / 共15页
实验2 创建和发布Web应用程序.docx_第5页
第5页 / 共15页
实验2 创建和发布Web应用程序.docx_第6页
第6页 / 共15页
实验2 创建和发布Web应用程序.docx_第7页
第7页 / 共15页
实验2 创建和发布Web应用程序.docx_第8页
第8页 / 共15页
实验2 创建和发布Web应用程序.docx_第9页
第9页 / 共15页
实验2 创建和发布Web应用程序.docx_第10页
第10页 / 共15页
实验2 创建和发布Web应用程序.docx_第11页
第11页 / 共15页
实验2 创建和发布Web应用程序.docx_第12页
第12页 / 共15页
实验2 创建和发布Web应用程序.docx_第13页
第13页 / 共15页
实验2 创建和发布Web应用程序.docx_第14页
第14页 / 共15页
实验2 创建和发布Web应用程序.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

实验2 创建和发布Web应用程序.docx

《实验2 创建和发布Web应用程序.docx》由会员分享,可在线阅读,更多相关《实验2 创建和发布Web应用程序.docx(15页珍藏版)》请在冰点文库上搜索。

实验2 创建和发布Web应用程序.docx

实验2创建和发布Web应用程序

实验二创建和发布Web应用程序

一、实验目的

动态Web很重要的一部分内容就是前台实现人机交互,在后台完成业务逻辑的运算。

本实验验证前后台数据传递的两种常用机制,进一步熟悉JSP结构,掌握后台响应进行动态处理的方法。

更常用的后台响应程序用Servlet。

Servlet是纯Java程序,但也可以输出HTML静态代码。

通过本实验,掌握Servlet的编程结构,理解Servlet生命周期。

有关Servlet的更高级应用请参阅相关教材。

以下选做:

JDBC是Java访问数据库的基础组件。

通过本实验,掌握JDBC连接数据库的方法和步骤;掌握数据访问的方法;了解不同数据库和不同提供商提供的驱动程序;

二、实验内容

1.用JSP的内置对象request在前后台页面间传递表单数据;

2.用置对象JavaBean在前后台页面间传递表单数据;

3.验证是否对数值、西文、中文字符都能正常传递;

4.用Servlet作后台响应程序,注意与JSP程序结构有何不同?

5.掌握在MyEclipse开发环境下正确创建Servlet程序的过程;

6.理解部署描述文件web.xml的作用;

以下选做:

1.以MSSQLServer2005为数据库,用微软提供的JDBC驱动建立连接。

2.先用Application程序验证将数据插入数据库表,然后从数据库表中读回数据验证刚插入的数据是否正确;

3.然后用Web程序实现form表单界面输入的数据插入数据库表,然后读回数据验证插入数据是否正确;

三、实验方法和步骤

==============================================================

第一部分:

利用JSP+BEAN实现如下图所示的留言板:

1.用值对象JavaBean实现页面间的参数传递

(1)创建值对象JavaBean,用以存储单条留言,包括标题、留言内容:

//WordBean.java

packageexamples;

publicclassWordBean{

privateStringwordTitle;

privateStringwordContent;

publicStringgetWordTitle(){

returnwordTitle;

}

publicvoidsetWordTitle(StringwordTitle){

this.wordTitle=wordTitle;

}

publicStringgetWordContent(){

returnwordContent;

}

publicvoidsetWordContent(StringwordContent){

this.wordContent=wordContent;

}

}

(2)创建值对象JavaBean,用以存储多条留言,使用ArrayList存储:

//WordsListBean.java

packageexamples;

importjava.util.ArrayList;

importjava.util.List;

publicclassWordsListBean{

privateListwords;

publicWordsListBean(){

words=newArrayList();

}

publicbooleanaddWord(WordBeanword){

words.add(word);

returntrue;

}

publicListgetWords(){

returnwords;

}

publicvoidsetWords(Listwords){

this.words=words;

}

}

(3)创建前台主界面WordUseBean.jsp

<%@pagelanguage="java"pageEncoding="UTF-8"%>

useBeanid="wordbean"class="examples.WordBean"scope="page">

useBean>

useBeanid="wordsbean"class="examples.WordsListBean"scope="application">

useBean>

<%request.setCharacterEncoding("UTF-8");%>

setPropertyname="wordbean"property="*"/>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

<%

if(wordbean.getWordTitle()!

=null&&wordbean.getWordContent()!

=null)

wordsbean.getWords().add(wordbean);

%>

留言标题留言内容

<%

for(inti=0;i

{

examples.WordBeanword=(examples.WordBean)wordsbean.getWords().get(i);

%>

<%=word.getWordTitle()%><%=word.getWordContent()%>

<%

}

%>

标题:

内容:

functioncheckForm(){

if(document.all.wordTitle.value==''){

alert("对不起,留言标题不能为空!

");

returnfalse;

}elseif(document.all.wordContent.value==''){

alert("对不起,留言内容不能为空!

");

returnfalse;

}else{

returntrue;

}

}

【在线思考】

与通过内置对象request获取请求数据相比,WordUseBean.jsp页面增加了什么类型的标签?

分析标签里的内容和作用。

========================================================

第二部分:

利用JSP+BEAN+SERVLET实现如下图所示的留言板:

2.用Servlet实现页面间的参数传递

(1)创建WordUseServlet.jsp,内容如下:

<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>

<%@pageimport="examples.WordsListBean"%>

useBeanid="wordsbean"class="examples.WordsListBean"scope="application">

useBean>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

留言标题留言内容

<%

for(inti=0;i

{

examples.WordBeanword=(examples.WordBean)wordsbean.getWords().get(i);

%>

<%=word.getWordTitle()%><%=word.getWordContent()%>

<%

}

%>

wordadded:


${word.wordTitle}

${word.wordContent}

标题:

内容:

functioncheckForm(){

if(document.all.wordTitle.value==''){

alert("对不起,留言标题不能为空!

");

returnfalse;

}elseif(document.all.wordContent.value==''){

alert("对不起,留言内容不能为空!

");

returnfalse;

}else{

returntrue;

}

}

(2)MyEclipse创建Servlet文件向导

选定当前工程击右键,“新建”—“Servlet”进入图4.1窗口,按提示输入文件名,选定要创建的方法。

点击“下一步”进入图4.2确定web.xml描述文件中对Servlet的描述,请见web.xml。

这里的ServletjspmappingURL是确定Servlet网络访问的映射名字,字符要尽量简单。

按“完成”生成Servlet代码框架。

业务逻辑代码在doPost()方法中。

图4.1创建Servlet窗口

图4.2确定Servlet在web.xml中的描述

(3)验证Servlet能正确地得到Form数据和输出HTML文档。

AddWordServlet.java如下:

packageexamples;

importjava.io.IOException;

importjava.io.PrintWriter;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

publicclassAddWordServletextendsHttpServlet{

/**

*Constructoroftheobject.

*/

publicAddWordServlet(){

super();

}

/**

*Destructionoftheservlet.

*/

publicvoiddestroy(){

super.destroy();//Justputs"destroy"stringinlog

//Putyourcodehere

}

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

doPost(request,response);

}

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("UTF-8");

WordBeanword=newWordBean();

word.setWordTitle(request.getParameter("wordTitle"));

word.setWordContent(request.getParameter("wordContent"));

WordsListBeanwordsbean=(WordsListBean)getServletContext().getAttribute("wordsbean");

//在com.un.web.MyListener中初始化wordsbean。

if(wordsbean!

=null)

{

wordsbean.addWord(word);

}

request.setAttribute("word",word);

getServletContext().getRequestDispatcher("/WordUseServlet.jsp").forward(request,response);

}

publicvoidinit()throwsServletException{

//Putyourcodehere

}

}

(4)修改部署描述文件web.xml,添加如下内容:

AddWordServlet

examples.AddWordServlet

AddWordServlet

/servlet/AddWordServlet

【在线思考】

●请在前台分别输入数值、西文、中文字符串,后台是否得到正确的结果?

●请注释掉语句request.setCharacterEncoding("UTF-8");重复上面的输入,你会看到什么现象?

你会得到什么结论?

3.(选做)使用JDBC连接数据库

DBMS用SQLServer2005;建立数据库hhit,表guestboot,验证用MSforJDBC驱动;执行insert和select语句。

USE[hhit]

GO

/******对象:

Table[dbo].[guestbook]脚本日期:

03/10/201217:

14:

50******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[guestbook](

[id][int]IDENTITY(1,1)NOTNULL,

[username][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,

[title][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,

[contents][nvarchar](50)COLLATEChinese_PRC_CI_ASNULL,

[pubdate][datetime]NULL,

CONSTRAINT[PK_guestbook]PRIMARYKEYCLUSTERED

[id]ASC

)WITH(IGNORE_DUP_KEY=OFF)ON[PRIMARY]

)ON[PRIMARY]

实现代码请参考HelloWorld.rar包中的WEB项目。

四、实验思考

1.总结用内置对象request与用JavaBean传递数据各有何特点?

2.与JSP比较Servlet处理静态和动态代码有何不同?

由此引申说明后台响应大多采用Servlet的原因;

3.在MyEclipse集成开发环境下,创建Servlet时为什么使用向导?

用创建普通类的向导是否可行?

五、实验报告

1.参考指导书中的实验程序,编程验证两种传递表单参数的机制;

2.根据【在线思考】的提示,分析调试中遇到的问题及解决的办法;

3.按思考题的提示总结出用内置对象request与用值对象JavaBean传递数据在编程上的变化;

4.创建Servlet实验程序,编程验证Servlet如何使用表单数据;

5.根据【在线思考】的提示,分析调试中遇到的问题及解决的办法;

6.按思考题的提示总结出JSP与Servlet在编程和使用上的区别;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2