JDBC测试程序能jdbc连接数据库上数据库,但是web项目不行,总是跳转到regist.jsp(注册界面)求教!

您所在的位置: &
注册页面register.jsp
注册页面register.jsp
电子工业出版社
《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)(第2版)》第4章开发JSP框架,JSP是进行网页开发的最基础的技术,其基本语法可以总结为:2种注释类型、3个脚本元素、3个指令元素、8个动作指令、9大内置对象,再通过JDBC即可实现对MySQL数据库的操作。本节为大家介绍注册页面register.jsp。
4.5.5& 注册页面register.jsp
当单击登录页面中"注册新用户"的链接时,会跳转到注册页面register.jsp。根据需求设计中对注册页面的设计可知,该页面负责显示注册输入的表单。共包括4个表单:用户名、密码、确认密码、Email地址,并在最后显示一个登录按钮和一个"返回"链接。该表单提交的地址为register_action.jsp。最后的代码如程序4-8所示。
程序4-8& 注册页面register.jsp&name="form1"&action="register_action.jsp"&method="post"&&width="200"&border="1"&&&&&&&&&&&&&&&colspan="2"注册窗口&&&&&&&&&&&&&&用户名&&&&&&&&&&type="text"&name="username"&size="10"&&&&&&&&&&&&&&&&&&&密码&&&&&&&&&&type="password"&name="password1"&size="10"&&&&&&&&&&&&&&&&&&&确认密码&&&&&&&&&&type="password"&name="password2"&size="10"&&&&&&&&&&&&&&&&&&&Email&&&&&&&&&&type="text"&name="email"&size="10"&&&&&&&&&&&&&&&&&&&&colspan="2"&type="submit"&name="submit"&value="登录"&&href="login.jsp"返回&&&&&&&&
该页面显示的效果如图4-7所示。
图4-7& 注册页面效果图
【责任编辑: TEL:(010)】&&&&&&
关于&&&&的更多文章
Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
如何应对21世纪新商业环境中的变化?全球最大商务社交
这本书是写给程序员和项目经理的。作者结合自身的丰富
本书全面讲解WPF的实际工作原理,是一本WPF权威著作。
本书分为8章,首先介绍ASP.NET的开发技巧和重点技术,尤其针对初学者如何快速入门并掌握ASP.NET编程做了深入浅出的介绍;然后重
51CTO旗下网站您现在的位置: >> web实验 >> web程序设计实验报告
web程序设计实验报告
来源: 时间:
【web程序设计实验报告】实验一页面, 【实验题目】 做一个 JSP 页面,显示乘法口诀 实验题目】 【实验步骤】 实验步骤】 步骤 1.实验程序1.实验程序实验程序&%@ page language=&java& import=&java.util.*& pageEncoding=&ISO-8859-1&%& &% String path = request.getContextPath(); String basePath = request.getScheme() + &://& + request.getServerName() + &:& + request.getServerPort() + path + &/&;%& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'web1.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &!-&link rel=&stylesheet& type=&text/css& href=&styles.css&& --& &/head& &body& &font color=&#000090&& &h3& The following is a JSP page to show the multiplication formulas&/h3& &br& &br& &% for (int i = 1, j = 1; j &= 9; i++){ out.print(i + &*& + j + &=& + i * j + & if (i == j){ i = 0; j++; out.println(&&br&&);}}%& &/font& &/body& &/html& &);2.实验结果2.实验结果实验结果 实验二【实验题目】 实验题目】 1.设计一个页面,接收输入的两个字符串,使用 javabean 来计 设计一个页面,接收输入的两个字符串, 页面上。算第二个字符串在第一个字符串中的位置并打印在 jsp 页面上。例如输入“ jsp” is” 例如输入“this is jsp”、“is”,则打印出结果 6。从一个页面获取接受的用户名和密码,进行判断, 2.从一个页面获取接受的用户名和密码,进行判断,如果正确 标识跳转到一个显示成功的页面, 则使用 jsp:forward 标识跳转到一个显示成功的页面,否则跳转 到失败页面。到失败页面。【实验步骤】 实验步骤】 步骤 1.实验程序1.实验程序实验程序&%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8&%& &% String path = request.getContextPath(); String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort() +path+&/&; %& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'index.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &!-&link rel=&stylesheet& type=&text/css& href=&styles.css&& --& &/head& &body& &h3&&a href=&EX001/login.html&&JAVABEAN方法实例 方法实例&/a&&/h3& 方法实例 &/body& &/html&&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &title&login.html&/title& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&this is my page&& &meta http-equiv=&content-type& content=&text/ charset=UTF-8&& &!--&link rel=&stylesheet& type=&text/css& href=&./styles.css&&--& &/head& &body& &form name=&form1& method=&post& action=&login.jsp&& &table width=&200& border=&0& cellpadding=&0& cellspacing=&0&& &tr& &td width=&162& nowrap& 第一个字符串第一个字符串&/td& &td width=&137&& &input type=&text& name=&usr_name&& &/td& &/tr& &tr& &td& 第二个字符串第二个字符串&/td& &td& &input type=&text& name=&usr_pass&& &/td& &/tr& &tr& &td colspan=&2&& &input type=&submit& name=&Submit& value=&登录 登录&& 登录 &/td& &/tr& &/table& &/form& &/body& &/html&&%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8&%& &% String path = request.getContextPath(); String basePath = request.getScheme() + &://& + request.getServerName() + &:& + request.getServerPort() + path + &/&; %& &jsp:useBean id=&login& scope=&session& class=&logBean.Login&&&/jsp:useBean& &jsp:setProperty property=&userName& name=&login& param=&usr_name& /& &jsp:setProperty property=&password& name=&login& param=&usr_pass& /& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'login.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &!-&link rel=&stylesheet& type=&text/css& href=&styles.css&& --& &/head& &body& &p& &h2& Welcome,第二个字符串在第一个字符串中的位置是第二个字符串在第一个字符串中的位置是第二个字符串在第一个字符串中的位置是 &jsp:getProperty name=&login& property=&userName& /& ,enjoy yourself! &/h2& &/p& &/body& &/html& 2.实验结果2.实验结果实验结果1.实验程序1.实验程序实验程序&%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8&%& &% String path = request.getContextPath(); String basePath = request.getScheme()+&://&+request.getServerName()+&:&+request.getServerPort() +path+&/&; %& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'index.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &!-&link rel=&stylesheet& type=&text/css& href=&styles.css&& --& &/head& &body&&h3&&a href=&EX002/login.html&&jsp:forward方法实例 方法实例&/a&&/h3& 方法实例 &/body& &/html&&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &title&login.html&/title& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&this is my page&& &meta http-equiv=&content-type& content=&text/ charset=UTF-8&& &!--&link rel=&stylesheet& type=&text/css& href=&./styles.css&&--& &/head& &body& &form name=&form1& method=&post& action=&login.jsp&& &table width=&200& border=&0& cellpadding=&0& cellspacing=&0&& &tr& &td width=&162& nowrap& 姓名姓名&/td& &td width=&137&& &input type=&text& name=&usr_name&& &/td& &/tr& &tr& &td& 密码密码&/td& &td& &input type=&text& name=&usr_pass&& &/td& &/tr& &tr& &td colspan=&2&& &input type=&submit& name=&Submit& value=&登录 登录&& 登录 &/td& &/tr& &/table& &/form& &/body& &/html& &%@ page language=&java& import=&java.util.*& pageEncoding=&utf-8&%& &% String path = request.getContextPath(); String basePath = request.getScheme() + &://& + request.getServerName() + &:& + request.getServerPort() + path + &/&; %& &jsp:useBean id=&login& scope=&session& class=&logBean.Login&&&/jsp:useBean& &jsp:setProperty property=&userName& name=&login& param=&usr_name& /& &jsp:setProperty property=&password& name=&login& param=&usr_pass& /& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'login.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &/head& &body& &% if (login.getUserName().equals(&tiantingjia&) && login.getPassword().equals(&123456&)) { %& &jsp:forward page=&forward.jsp& /& &% } else { %& &jsp:forward page=&forward1.jsp& /& &% } %& &/body& &/html&2.实验结果2.实验结果实验结果 实验四 实验四【实验题目】 实验题目】 Servlet, 将一个字符串分别使用 doGet 和 doPost 方法提交给 Servlet, 统计其中每个字母出现的次数,然后打印在页面上。Servlet 统计其中每个字母出现的次数,然后打印在页面上。【实验步骤】 实验步骤】 步骤 1.实验程序1.实验程序实验程序&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%& &% String path = request.getContextPath(); String basePath = request.getScheme() + &://& + request.getServerName() + &:& + request.getServerPort() + path + &/&; %& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'index.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &!-&link rel=&stylesheet& type=&text/css& href=&styles.css&& --& &/head& &body style=&background-color&& &h3& &a href=&c11/getform.jsp&&doGet方法示例 方法示例&/a& 方法示例 &/h3& &h3& &a href=&c11/postform.jsp&&doPost方法示例 方法示例&/a& 方法示例 &/h3& &br& &/body& &/html&&%@ page contentType=&text/ charset=GBK&%& &html& &head& &title&doGet方法示例 方法示例&/title& 方法示例 &/head& &body style=&background-color&& &center& &h3& doGet方法示例 方法示例 &/h3& &form method=&get& action=&doget&& &p& 请输入字符串请输入字符串&input type=&TextField& name=&goodsName& value=&&& &/p& &input type=&submit& name=&Submit& value=& 提交 && &input type=&reset& value=& &/form& &/center& &/body& &/html& 重写 &&&%@ page contentType=&text/ charset=GBK&%& &html& &head& &title&doPost方法示例 方法示例&/title& 方法示例 &/head& &body style=&background-color&& &center& &h3& doPost方法示例 方法示例 方法示 &/h3& &form method=&post& action=&dopost&& &p& 请输入字符串请输入字符串&input type=&TextField& name=&goodsName& value=&&& &/p& &input type=&submit& name=&Submit& value=& 提交 && &input type=&reset& value=& &/form& &/center& &/body& &/html& 实验结果实验结果(1) ) http://localhost/ServletDemo,进入如下界面浏览器中输入 http://localhost/ServletDemo,进入如下界面在 重写 &&方法示例, (2)当在 index.jsp 中点击 doget 方法示例,跳入 getstring.JSP 页面中输 入字符串,然后点击统计按钮,如图入字符串,然后点击统计按钮,如图:示例, (3)在 index.jsp 页面下点击 doPost 示例,进入 postget.JSP 页面中输入 字符串,然后点击统计按钮,如图字符串,然后点击统计按钮,如图: 实验六 实验六【实验题目】 实验题目】 在 struts 框架中实现用户的注册和登录功能 【实验步骤】 实验步骤】 步骤 1.实验程序1.实验程序实验程序&%@ page language=&java& pageEncoding=&utf-8&%& &%@ taglib uri=&struts-bean& prefix=&bean&%& &%@ taglib uri=&struts-html& prefix=&html&%& &html& &head& &title&JSP for LoginForm form&/title& &/head& &body style=&background-color&& &html:form action=&/login&& &center& &h2& 欢迎光临!!!请先注册再登录!!! 欢迎光临!!!请先注册再登录!!! !!!请先注册再登录 &/h2& &/center& &h3& 以下是注册信息以下是注册信息&/h3& &br /& 注册密码注册密码 &html:password property=&pass2& /& &html:errors property=&pass2& /& &br /&注册姓名注册姓名 &html:text property=&name2& /& &html:errors property=&name2& /& &br /& &br /& &br /& &h3& 以下是登录信息以下是登录信息&/h3& &br /& 登录密码登录密码 &html:password property=&pass1& /& &html:errors property=&pass1& /& &br /& 登录姓名登录姓名 &html:text property=&name1& /& &html:errors property=&name1& /& &br /& &br /& &html:submit /& &html:cancel /& &/html:form& &/body& &/html& &%@ page language=&java& import=&java.util.*& pageEncoding=&ISO-8859-1&%& &% String path = request.getContextPath(); String basePath = request.getScheme() + &://& + request.getServerName() + &:& + request.getServerPort() + path + &/&; %& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'success.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &!-&link rel=&stylesheet& type=&text/css& href=&styles.css&& --& &/head& &body style=&background-color&& &h1& success!!! &/h1& &br& &/body& &/html& &%@ page language=&java& import=&java.util.*& pageEncoding=&ISO-8859-1&%& &% String path = request.getContextPath(); String basePath = request.getScheme() + &://& + request.getServerName() + &:& + request.getServerPort() + path + &/&; %& &!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&& &html& &head& &base href=&&%=basePath%&&& &title&My JSP 'failure.jsp' starting page&/title& &meta http-equiv=&pragma& content=&no-cache&& &meta http-equiv=&cache-control& content=&no-cache&& &meta http-equiv=&expires& content=&0&& &meta http-equiv=&keywords& content=&keyword1,keyword2,keyword3&& &meta http-equiv=&description& content=&This is my page&& &!-&link rel=&stylesheet& type=&text/css& href=&styles.css&& --& &/head& &body style=&background-color && &h1& failure!!!! &/h1& &br& &/body& &/html& 2.实验结果2.实验结果实验结果
【web程序设计实验报告】《Web 程序设计(二)课程设计》实验报告院系名称学生姓名管理学院 学 专业电子商务 级班 号:注册功能 20分登录功能 15分发布留言 15分查看留言 20分留言修改 15分留言删除 15分合计 100分2014 年 07 月 一、实验目的 本实验属于设计性实验,目的是使学生在学完《Web 程序设计(二) 》课程的基本知 识之后,通过使用 Struts2 和 Hibernate 等框架设计并开发一个简单的在线留言系统, 进一步熟悉和领悟 JSP、Struts2、Hibernate 和 Java 语言的语法结构和使用方法,通过 实验学习 Java 二、实验步骤 1.下载并安装配置 JDK、eclipse、tomcat 软件,使计算机有一个程序开发设计的软 件支持。2.用 access 建立一个数据库, 在数据库中按要求建立表, 包括用户注册基本信息表、 年龄信息表、收入信息表、文化程度表、娱乐方式信息表、体育运动信息表、电影类型 表。3.在 JDK 中新建一个工程,建立一个包,名为 beans,其下建立一个 java 文件,名 为 conndb,其中写入数据库调用信息。4. 用代 码编 写出 html 页面 和相 应的 jsp 文件 ,包 括导航 页 面、注 册页 面、 register.jsp、登录页面、login.jsp、问卷调查页面、diaochasend.jsp、问卷结果显 示页面。5.在控制面板中用 sql.server 接数据库。6.配置并打开 tomcat 服务器,在服务器上运行项目,正确就完成,错误则进行修正。7.在其他 pc 端进行检验,确保程序能够正常运行 三、系统设计 1、界面设计 Web 系统的 MVC 开发步骤与方法, 任务是设计一个简单的在线留言系统。1 2 2、功能设计 本系统具有注册功能、登录功能、发布留言功能、查看留言功能、留言修改功能、留 言删除功能。3、数据库设计 本留言板程序采用的是 sql server 2005 进行数据库的设计与实现,数据库命名为 dbs。建表如下① User 表:② Tip 表:四、系统的核心代码 1、Index.jsp&body& &div id=&box&& &div id=&bottom1&&&a href=&regist.jsp&&注册&/a& &a href=&index.jsp&&登录&/a&3 &a href=&addmes.jsp&&留言&/a& &a href=&message_list.jsp&&留言管理&/a& &/div& &div id=&login&& &div&用户登陆&/div& &/div& &div id=&bottom&& &s:form method=&post& name=&login& action=&Login& theme=&simple& validate=&true&& &p& 用户名&s:textfield name=&user.userName& maxlength=&20& cssClass=&input-border&&&/s:textfield& &/p& &p&& 密 码&s:password name=&user.passWord& maxlength=&20& cssClass=&input-border&&&/s:password& & &label for=&password&&&/label& &/p& &p&&& & & & &s:submit value=&登陆& onmouseover=&this.className='login-b2'& onmousedown=&this.className='login-b3'& onmouseout=&this.className='login-b'& cssClass=&login-b& &&/s:submit& &&&&&& &s:reset value=&重置& &&/s:reset& &/p& &/s:form& 没有帐号? &a href=&regist.jsp&&点击注册&/a& &/div& &s:property value=&#session.user&/& &/div&2、Regist.jsp&body& &div id=&box&& &div id=&bottom1&&&a href=&regist.jsp&&注册&/a& &a href=&index.jsp&&登录&/a&4 &a href=&addmes.jsp&&留言&/a& &a href=&message_list.jsp&&留言管理&/a& &/div& &div id=&login&& &div&用户注册&/div& &/div& &div id=&bottom&& &s:form action=&UserRegist& name=&regist& method=&post& validate=&true& theme=&simple&& &p& 用户姓名&s:textfield label=&用户名 & name=&regist.username& maxlength=&20& cssClass=&input-border&&&/s:textfield& &/p& &p&用户密码&s:password label=&密 码 & name=&regist.password& maxlength=&20& cssClass=&input-border&&&/s:password&&/p& &p&密码确认&s:password label=&确认密码 & name=&regist.repassword& maxlength=&20& cssClass=&input-border&&&/s:password& &/p& &p&真实姓名&s:textfield label=&真实姓名 & name=&regist.name& maxlength=&20& cssClass=&input-border&&&/s:textfield& &/p& &p&性&&别&s:radio label=&性别& list=&#{'男':'男','女':'女'}& name=&regist.uSex& value=&'男'&&&/s:radio& &/p& &p&&& & &s:submit value=&注册& &&/s:submit& & && &s:reset value=&重置& &&/s:reset& &/p& &/s:form& 已有帐号?&a href=&index.jsp&&点击登陆&/a& &/div& &/div& &/body&3、AddMes.jsp&body&5 &div id=&box&& &div id=&bottom1&&&a href=&regist.jsp&&注册&/a& &a href=&index.jsp&&登录&/a& &a href=&addmes.jsp&&留言&/a& &a href=&message_list.jsp&&留言管理&/a& &/div& &div id=&login&& &div&请您留言&/div& &/div& &div id=&bottom&& &form action=&MessageServlet& method=&post& name=&form&& &p& 留言标题&input name=&title& type=&text& size=&50& /& &/p& &p& 留言内容&textarea name=&content& cols=&38& rows=&5&&&/textarea& & &label for=&password&&&/label& &/p& &p&&& & & & &input type=&submit& name=&button& id=&button& value=&提交留言& /& &&&&&& &input type=&reset& name=&button2& id=&button2& value=& 重新填写& /& &/p& &/form& &/div& &/div& &/body&4、MessageList.jsp&body& &div id=&box&& &div id=&bottom1&&&a href=&regist.jsp&&注册&/a& &a href=&index.jsp&&登录&/a& &a href=&addmes.jsp&&留言&/a& &a href=&message_list.jsp&&留言管理&/a& &/div& &div id=&login&& &div&留言内容及管理&/div&6 &/div& &div id=&bottom&& &table width=&90%& border=&1& id=&table&& &c:choose& &c:when test=&${empty pageModel.list}&& &tr& &td height=&68& colspan=&3&&没有留言内容!&/td& &/tr& &/c:when& &c:otherwise& &!-- 循环输出留言信息 --& &c:forEach items=&${pageModel.list}& var=&m&& &tr& &td rowspan=&2&&用户名:${m.user.username}&br /& 用户ID:${m.userId}&/td& &td height=&43&&留言标题:${m.title}&/td& &td rowspan=&2& align=&center&&&c:if test=&${!empty user}&& &a href=&ManagerServlet?method=delete&id=${m.id}&&删除&/a& &a href=&ManagerServlet?method=update&id=${m.id}&&更改&/a& &/c:if&&/td& &/tr& &tr& &td height=&76&&留言内容:${m.content}&/td& &/tr& &/c:forEach& &/c:otherwise& &/c:choose& &/table& &/div& &/div& &/body&5、DBConnect.javapackage com.kuan. import java.sql.C import java.sql.DriverM import import import public java.sql.ResultS java.sql.SQLE java.sql.S class DBConnect { //导入数据库操作的类private static Connection conn = private static Statement stmt = private static String user=&sa&;//数据库的用户名7//连接对象 private static String password=&&; //数据库的密码//语对象 private static ResultSet rs = //结果集对象 private static String AccessDriver=&com.microsoft.sqlserver.jdbc.SQLServerDriver&;//保存Mssql驱动程序 private static String AccessURL=&jdbc:sqlserver://localhost:1433;integratedSecurity=DatabaseName =dbs&;//保存Mssql连接字符串 public DBConnect() { conn = } public static Connection getConnection() { try{ Class.forName(AccessDriver).newInstance(); conn=DriverManager.getConnection(AccessURL,user,password); }catch(Exception e){ e.printStackTrace(); } }//加载驱动,连接数据库 public static Statement getStmt() { try{ Class.forName(AccessDriver).newInstance(); conn=DriverManager.getConnection(AccessURL,user,password); stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_ UPDATABLE); }catch(Exception e){ e.printStackTrace(); } } public static ResultSet getRS(String sql) throws SQLException {//查询 ResultS Statement stmt = DBConnect.getStmt(); rs = stmt.executeQuery(sql); } public static int Update(String sql) throws SQLException {//插入 int ret = 0 ; Statement stmt = DBConnect.getStmt(); ret = stmt.executeUpdate(sql); } public static void close()8 { if(rs!=null) try { rs.close(); } catch (SQLException e) { if(stmt!=null) try { stmt.close(); } catch (SQLException e) { if(conn!=null) try { conn.close(); } catch (SQLException e) { } }}}}6、User.javapackage com.kuan. public class User { private I //ID编号 private S //用户名 private S //密码 private S //姓名 private S //性别 public String getSex() { } public void setSex(String sex) { this.sex = } public Integer getId() { } public void setId(Integer id) { this.id = } public String getUsername() { } public void setUsername(String username) { this.username = } public String getPassword() {9 } public void setPassword(String password) { this.password = } public String getName() { } public void setName(String name) { this.name = } }7、Message.javapackage com.kuan. public class Message { private I //ID编号 private S //标题 private S //内容 private Integer userId; //用户ID public Integer getId() { } public void setId(Integer id) { this.id = } public String getTitle() { } public void setTitle(String title) { this.title = } public String getContent() { } public void setContent(String content) { this.content = } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } }10 UserDao.java package com.kuan. import java.util.L import org.hibernate.Q import org.hibernate.S import com.kuan.model.U public class UserDao { public void saveUser(User user){ Session session = try { //获取Session session.beginTransaction(); session.save(user); session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); }finally{ } } /** * 查询所有用户信息 * @return List集合 */ public List&User& findAllUser(){ Session session = List&User& list = try { //获取Session session.beginTransaction(); String hql = &from user1&; //开启事物 //Session对象 //List集合 //Session对象//开启事物 //持久化user //提交事物//打印异常信息list = session.createQuery(hql) //创建Query对象 .list(); //获取结果集 session.getTransaction().commit(); //提交事物 } catch (Exception e) { e.printStackTrace(); //打印异常信息 session.getTransaction().rollback();//回滚事物 }finally{ //关闭Session } } /** * 通过用户名和密码查询用户11 * 用于登录 * @param username 用户名 * @param password 密码 * @return User对象 */ public User findUser(String username, String password){ Session session = User user = try { //获取Session session.beginTransaction(); //开启事物 //HQL查询语句 String hql = &from user1 u where u.username=? and u.password=?&; Query query = session.createQuery(hql) //创建Query对象 .setParameter(0, username)//动态赋值 .setParameter(1, password);//动态赋值 user = (User)query.uniqueResult(); //返回User对象 session.getTransaction().commit(); //提交事物 } catch (Exception e) { e.printStackTrace(); }finally{ } } /** * 判断指定用户名的用户是否存在 * @param username 用户名 * @return */ public boolean findUserByName(String username){ Session session = boolean exist = try { //获取Session session.beginTransaction(); //开启事物 //HQL查询语句 String hql = &from user1 u where u.username=?&; Query query = session.createQuery(hql) //创建Query对象 .setParameter(0, username);//动态赋值 Object user = query.uniqueResult(); //返回User对象12//Session对象 //用户//打印异常信息//Session对象 //如果用户存在exist为true if(user != null){ exist = } session.getTransaction().commit(); } catch (Exception e) { e.printStackTrace(); }finally{ } } } //提交事物//打印异常信息8、UserLogin.javapackage com.kuan. import java.sql.ResultS import java.util.M import com._52run.struts_task.dao.DBC import com.kuan.model.U import com.opensymphony.xwork2.ActionC import com.opensymphony.xwork2.ActionS public class UserLogin extends ActionSupport { private static final long serialVersionUID = 1L; private U private S public String getMsg() { } public void setMsg(String msg) { this.msg = } public User getUser() { } public void setUser(User user) { this.user = } public String execute() throws Exception { String sql = &select * from user1 where userName = '&+user.getUsername()+&' and uPwd = '&+user.getPassword()+&'&; ResultSet rs = DBConnect.getRS(sql); if(!rs.next()) {13 msg = &用户名或密码错误,请重新输入!&; DBConnect.close(); return INPUT; } else { ActionContext actionContext = ActionContext.getContext(); Map&String, String& session = actionContext.getSession(); session.put(&user&, user.getUsername()); //ActionContext.getContext().getSession().put(&user&, user.getuserName()); DBConnect.close(); return SUCCESS; } } /* public void validate() { String sql = &select * from regist where userName = '&+user.getuserName()+&' and uPwd = '&+user.getpassWord()+&'&; try { ResultSet rs = DBConnect.getRS(sql); if(!rs.next()) { this.addFieldError(&msg&, &用户名或密码错误,请重新输入&); } } catch (SQLException e) { // TODO Auto-generated catch block System.out.print(&出现异常&); } }*/ }9、UserRegist.javapackage com.kuan. import java.sql.ResultS import java.util.M import com._52run.struts_task.dao.DBC import com.kuan.model.U import com.opensymphony.xwork2.ActionC import com.opensymphony.xwork2.ActionS public class UserLogin extends ActionSupport { private static final long serialVersionUID = 1L; private U private S public String getMsg() { } public void setMsg(String msg) { this.msg =14 } public User getUser() { } public void setUser(User user) { this.user = } public String execute() throws Exception { String sql = &select * from user1 where userName = '&+user.getUsername()+&' and uPwd = '&+user.getPassword()+&'&; ResultSet rs = DBConnect.getRS(sql); if(!rs.next()) { msg = &用户名或密码错误,请重新输入!&; DBConnect.close(); return INPUT; } else { ActionContext actionContext = ActionContext.getContext(); Map&String, String& session = actionContext.getSession(); session.put(&user&, user.getUsername()); //ActionContext.getContext().getSession().put(&user&, user.getuserName()); DBConnect.close(); return SUCCESS; } } /* public void validate() { String sql = &select * from regist where userName = '&+user.getuserName()+&' and uPwd = '&+user.getpassWord()+&'&; try { ResultSet rs = DBConnect.getRS(sql); if(!rs.next()) { this.addFieldError(&msg&, &用户名或密码错误,请重新输入&); } } catch (SQLException e) { // TODO Auto-generated catch block System.out.print(&出现异常&); } }*/ }五、实验 通过这次 Web 程序设计实验,我把 Web 程序设计课程的知识框架重新梳理清楚,对 Struts2 和 Hibernate 等框架更加熟悉,对 JSP、Struts2、Hibernate 和 Java 语言的语15 法结构和使用方法更加灵活和得心应手。通过学习 JavaWeb 系统的 MVC 开发步骤与方法,我认识到做事情条理性和宏观把控的重要性,对于动手能力不强的缺点要进一步加 以改正。在今后的学习生活中,只有不断练习和踏实肯干才能走的更远。16
【web程序设计实验报告】实验报告实验课程学生姓名学 号:JAVA WEB 编程技术专业班级:物流 101 班2013 年06月12日1 目录实验一 实验二 实验三 实验四 实验五 实验六 实验七 WEB 编程环境 ......................... 错误!未定义书签。HTML 和 CSS 编程技术 .......................................... 7 JAVASCRIPT 编程技术 .......................................... 10 SERVLET 编程技术 ................................................ 13 JSP 编程技术............................................................ 16 JAVABEAN 编程技术 ............................................. 21 基于 MVC 模式构建系统 ....................................... 252 南昌大学实验报告学生姓名学 号专业班级物流 101 班 实验类型□ 验证 □ 综合 ■ 设计 □ 创新 实验日期实验成绩:一、 实验项目一 二、 实验目的Web 编程环境第1章 搭建 Web 编程环境,能正确安装配置 java 运行环境、WEB 服务器和 数据库服务器 第2章 第3章 熟悉 WEB 编程集成环境 MYEclipse. 熟练掌握 WEB 工程的创建、发布、运行流程。三、 实验内容1. 2. 3. 4. 5. 6. 安装并配置 java 运行环境 JDK 和 JRE 安装 Web 服务器 tomcat, 配置 Tomcat 服务器 安装并配置数据库 MySQL. 安装 MyEclispe,熟悉各项菜单项 为 MyEclispe 集成配置 JDK 和 Tomcat 创建、发布、运行一个 WEB 工程。四、 实验仪器及耗材计算机,JDK,TOMCAT, MySQL, MyEclipse 等软件。五、 实验步骤1. 先安装 jdk1.6,选择自定义安装,安装到 C:\JDK 2. 配置环境变量,class:.;C:\JDK\bin , classpath:.;C:\JDK\lib ,java_homeC:\JDK 安装 tomcat,安装在 C:\ Tomcat 下,配置 tomcat_home 环境变量,CATALINA_HOMEC\Tomcat,CATALINA_BASEC\Tomcat,TOMCAT_HOMEC:\Tomcat 然后修改环境变量中的 classpath,把 tomat 安装目录下的 common\lib 下的 servlet.jar 追加到 classpath 中去,修改后的 classpath 如下classpath=.;%JAVA_HOME%\lib\dt.%JAVA_HOME%\lib\tools.%CATALINA_HOME%\c ommon\lib\servlet.3 3. 运 行 toncat 的 bin 文 件 夹 下 的 tomcat6..exe 。在 浏 览 器 内 输 入 http://localhost:8080 , 会 出 现 tomcat 的 管 理 窗 口 。4 4. 暗转 SQL2000 企业版,选择安装数据库服务器,接下来都选择缺省值,知道服务 器配置界面选择使用本地系统账户,进入身份验证模式,选择混合模式。5. 下载安装 SDK。6. 安 装 MyEclispe 到 C \Eclipse 。为MyEclipse集成Tomcat 5.5??【Windows】→【Preferces】命令 在左边的菜单按【MyEclipse】→【Servers】→【Tomcat】 →【Tomcat5.x】-enable7. 配置 eclipse,在 preference 中展开 java 元素,选择 install JRE. 8. 在 tomcat 的 webapps 目录下建立一个 firstapp 文件子目录,然后使用文本编辑 器编辑一下代码&html&5 &head& &title& The first web program!; &/title& &/head& &body& &h1&welcome to you &/h1& &/body& &/html& 9、保存到 firstapp 目录下面。六、 实验结果一、浏览器输入:htte://localhost:8080,出现 tomcat 管理窗口。二、在 tomcat 的 manager 目录下面选择 firstapp,运行 html 文档,会显示 welcome。七、 实验对 jsp 程序的编写流程和工作环境有了大致了解,并学会了如何配置环境,发布基本的 web 服务的流程。6 南昌大学实验报告学生姓名学 号专业班级:物流 101 班 实验类型□ 验证 □ 综合 ■ 设计 □ 创新 实验日期实验成绩:1)实验项目二 2)实验目的HTML 和 CSS 编程技术熟悉 HTML 静态网页编程技术,熟悉 HTML 各种标记,特别是表单标记 熟悉 CSS 编程技术,掌握 CSS 来格式化网页、掌握 CSS 盒式模型 掌握 DIV+CSS 布局和设计网页,掌握 CSS 设计网页的一般流程 熟悉 Dreamweaver 的 CSS 设计器3)实验内容1. 2. 3. 4. 5. 构思一个新闻发布网站,主题自选,设计好新闻类别 制作主页 PSD 图 用 DIV+CSS 布局主页框架。(如可分成 top, mid, foot, 其中 mid 再分两大块 left 和 main) 分别细化设计每一大块。要中间部分的左边或右边要设计一个小登录表单,并用 CSS 美化。4)实验仪器及耗材计算机,Dreamweaver 8,Photoshop,MyEclipse 等软件。5)实验步骤1、打开 Dreamweaver 8,使用其 DIV 层的功能将主页分为 top、left、right、三块,top 主要 来放置网站的 logo、标题、登录信息,left 来存放新闻网站的分类,right 来存放内容。这样 设计简单直观,浏览者很方便可以查询到所需新闻。2、用 ps 编辑一些图片作为网站的素材 3、用 Dreamweaver 的 css 样式表编辑各个层的样式 4、在 top 的左上角设置一个登录表单,登录后用户可以发布新闻信息。6)实验结果1、制作 PSD 图7 2、使用 DIV+CSS 布局8 3、细化每一块4、美化表单部分7)1 通过此次试验了解了网站的基本设计,熟悉了 HTML 静态网页编程技术,熟悉HTML 各种标记,特别是表单标记 2 熟悉 CSS 编程技术,掌握 CSS 来格式化网页 3 掌握了一些基本的 DIV+CSS 布局和设计网页 4 熟悉了 Dreamweaver 的 CSS 设计器 5 在这次的实验中我懂得了 dreamweaver 表单和 DIV 的基本应用,并且掌握了如何用 css 美化网页。9 南昌大学实验报告学生姓名学 号专业班级物流 101 班 实验类型□ 验证 □ 综合 ■ 设计 □ 创新 实验日期实验成绩:1) 实验项目三 2) 实验目的? ? ? ?JavaScript 编程技术熟悉 JavaScript 语法 掌握 JavaScript 函数的创建和调用 熟悉 JavaScript 对象,特别是浏览器对象, 了解 DOM 模型, 知道文档对象的访问方法。会用 JavaScript 来对表单进行验证。3) 实验内容1) 2) 用 JavaScript 完成对登录表单的验证 设计一个新闻发布的页面,并用 JavaScript 对新闻发布表单进行验证。4) 实验仪器及耗材计算机,Dreamweaver 8,Photoshop,MyEclipse 等软件。5) 实验步骤1、&html& &script language=&Jscript&& function check(Form_Add) { if(document.Form_Add.UserName.value==&&) { alert(&请输入用户名&); document.Form_Add.UserName.focus(); } if(document.Form_Add.UserName.value.length&2) { alert(&输入的用户名太短&); document.Form_Add.UserName.focus(); } if(document.Form_Add.UserName.value.length&12)10 { alert(&输入的用户名太长&); document.Form_Add.UserName.focus(); } if(document.Form_Add.PWS.value.length&5) { alert(&请您输入密码,有效长度范围为:5~20!&); document.Form_Add.PWS.focus(); } if(document.Form_Add.ConfirmPassword.value.length&1) { alert(&请您再输入验证密码!&); document.Form_Add.ConfirmPassword.focus(); } if(document.Form_Add.ConfirmPassword.value!= document.Form_Add.PWS.value) { alert(&确认密码与密码不一致!&); document.Form_Add.ConfirmPassword.focus(); } &/script& &body& &form name=&Form_Add& method=&post& action=&0.htm& onsubmit=&return check(this)&& Username:&input name=&UserName& type=&text& size=&20&& 用户名不得小于二个字节 &br& Password:&input name=&PWS& type=&password& size=&20&&&br& Rpassword:&input name=&ConfirmPassword& type=&password& size=&20&& &br& &input type=&submit& value=&OK&& &/form& &/body& &/html& (只需要在上面的 if 语句中修改条件,就可以更改登录的条件,可以增加用户名和密码的数 据库) 2、将此页面保存到 tomcatwebapps 下的 firstapp 文件夹中,在 tomcat 控制窗口运行即可。六、实验结果这是一个注册验证系统,必须输入符合条件的用户名和密码才能登录。1、 表单验证结果11 2、 文章发布页面验证6) 实验心得熟悉了 JavaScript 语法, 掌握了 JavaScript 函数的创建和调用, javascript 的基本语法和代码, 可以用其编写一些基本的 jsp 页面12 南昌大学实验报告学生姓名学 号专业班级实验类型□ 验证 □ 综合 ■ 设计 □ 创新 实验日期实验成绩:1. 实验项目四 2. 实验目的1. 2. 3. 4. 5.Servlet 编程技术熟悉 Servlet 技术的创建和运行流程。会在 web.xml 配置 Servlet 的 URL 熟悉请求 request 和响应 response 接口 熟悉请求转发接口 requestDispatcher 接口 熟悉会话 Session 接口,掌握基于 Session 登录权限控制。3. 实验内容完成一个基于 Session 的登录权限控制模块。要求a) b) 主页登录表单提交后转到 Servlet 进行处理,根据用户类型转到不同的页面。如果在用户名或密码不正确把登录表单包含进来 对于某些页面必须登录才能访问,如新闻发布页面。如果没有登录则禁止访 问,并重定向到登录页面。4. 实验仪器及耗材计算机, MyEclipse 等软件。5. 实验步骤(页面内容自己加)一、编写 index.jsp 页面基于实验一的页面设置,以下是登录表单部分的代码 &body& &form name=”a” type=”post” action=” UserRegisterAction”& 用户名:&input type=”text” name=”username”& 密码:&&input type=”password” name=”password”& &input type=”submit” value=”submit”& &/form& &/body& 保存为 index.jsp13 二、Servelet A 编写package app.user. import java.io.IOE import java.io.PrintW import javax.servlet.ServletE import javax.servlet.http.HttpS import javax.servlet.http.HttpServletR import javax.servlet.http.HttpServletR import app.user.service.UserS import javax.servlet.http.HttpS public class A extends HttpServlet { private UserService userService=new UserService(); private String userN private String passW e) public void doPost(HttpServletRequest request, HttpServletResponse respons throws ServletException, IOException { userName=request.getParameter(&UserName&); passWord=request.getParameter(&PassWord&); PrintWriter out=response.getWriter(); if(passWord.equals(“1234”)&&username.equals(“xufangzheng”){ session.setAttribute(“index”,”OK”); response.sendRrdirect(“B.jsp”);//跳转到目标页面 B.jsp } Else{ Response.sendRedirect(“index.jsp”);//返回主页 R } } 若用户名为 xufangzheng,密码为 1234,则会跳转到 B.jsp 页面进行处理。B.JSP 是一个新 闻发布页面14 三、B.jsp 编写 &html& &body& &form name=”B” method=”post” & 所属栏目:&input type=”text” name=”langmu”& 作者:&input type=”text” name=”zuoze”& 内容:&input type=”textarea” name=”neirong”& &input type=”submit” value=”提交”& &/form& &/body& &/html& 四、xml 的配置 &?x,; versopm=”1/0” encoding=”ISO-8859-1”?& &web-app& &servlet& &servlet-mapping& &servlet-name&hello&/servlet-name& &servlet-class& UserRegisterAction&/servlet-class& &/servlet& &/servlet-mapping& &/web-app&6. 实验结果在登入表单输入用户名和密码,如果用户名是 xufangzheng,密码是 1234 则跳转到 B.jsp 页 面,否则重新定位到主页。7. 实验心得本次实验我了解了 servlet 的基本原理和如何运用 servlet 完成用户的认证,对掌握 web 技术 有了更深一步的认识。15 南昌大学实验报告学生姓名学 号专业班级物流 101 班 实验类型□ 验证 □ 综合 ■ 设计 □ 创新 实验日期实验成绩:1) 2)6. 7. 8. 9.实验项目五 实验目的JSP 编程技术熟悉 JSP 编译指令,动作标记。熟悉 JSP 的隐含对象 正确理解 request、session、application 三个对象的作用域 能正确处理汉字乱码问题10. 能熟练使用 JSP 技术来编写网页3)实验内容1. 2. 编写一个文章类,用 Myeclipse 的工作自动产生 getter 和 settet 函数 修改前面编写过的管理员的新闻发布页面,改成 JSP 页面 要求如下1)撰写界面至少包括文件标题,所属栏目、作者、内容几项 2)界面用 CSS 进行美化 3)每个输入框均应有 name 属性。4) 权限控制, 必须是管理员用户才能访问, 跟前面实验的登录权限控制关联起来。3. 编写一个 Servlet 来处理新闻发布页面提交的表单 要求1)读取表单各项内容,并把存入一个文章对象中。2)把文章对象绑定在 request 对象中,并转发到新闻显示页面。3. 编写一个新闻显示页面。要求1) 编写静态页面模板,页面用 div+css 设计 2)设定文章对象已存在 request 对象中,取出文章对象 3)把静态页面的内容改成动态内容,如标题,作者,内容等。4) 实验仪器及耗材计算机,Dreamweaver 8,Photoshop,MyEclipse 等软件。5) 实验步骤16 1、 题意不明确 2、 管理员权限控制 servlet 代码package app.user. import java.io.IOE import java.io.PrintW import javax.servlet.ServletE import javax.servlet.http.HttpS import javax.servlet.http.HttpServletR import javax.servlet.http.HttpServletR import app.user.service.UserS import javax.servlet.http.HttpS public class A extends HttpServlet { private UserService userService=new UserService(); private String userN private String passW e) public void doPost(HttpServletRequest request, HttpServletResponse respons throws ServletException, IOException { userName=request.getParameter(&UserName&); passWord=request.getParameter(&PassWord&); PrintWriter out=response.getWriter(); if(passWord.equals(“1234”)&&username.equals(“xufangzheng”){ session.setAttribute(“index”,”OK”); response.sendRrdirect(“news.jsp”);//跳转到目标页面 news.jsp } Else{ Response.sendRedirect(“index.jsp”);//返回主页 R } }17 若用户名为 xufangzheng,密码为 1234,则会跳转到 news.jsp 页面进行处理。news.JSP 是 一个新闻发布页面3、 修改新闻发布页面,news.jsp 代码如下 &html& &title& News &/title& &body& &form name=”news” method=”post” action=”chuli”& 所属栏目:&input type=”text” name=”langmu”& 题目:&input type=”text” name=”timu” 作者:&input type=”text” name=”zuoze”& 内容:&input type=”textarea” name=”neirong”& &input type=”submit” value=”提交”& &/form& &/body& &/html& 4、 编写新闻处理 servlet ,命名为 chuli,目的是在新闻 DIV 中将提交的新闻和作者内容写 到 DIV 中 import java.io.IOE import java.io.PrintW import javax.servlet.ServletE import javax.servlet.http.HttpS import javax.servlet.http.HttpServletR import javax.servlet.http.HttpServletR import admin.manageBean.NewsAddB public class chuli extends HttpServlet { public chulit() { super(); } public void destroy() { super.destroy(); // Just puts &destroy& string in log18 // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(&text/html&); PrintWriter out = response.getWriter(); out .println(&&!DOCTYPE HTML PUBLIC \&-//W3C//DTD HTML 4.01 Transitional//EN\&&&); out.println(&&HTML&&); out.println(& &HEAD&&TITLE&A Servlet&/TITLE&&/HEAD&&); out.println(& &BODY&&); out.print(& This is &); out.print(this.getClass()); out.println(&, using the GET method&); out.println(& &/BODY&&); out.println(&&/HTML&&); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String timu = request.getParameter(&timu&); String neirong = request.getParameter(&neirong&); String zuozhe= request.getParameter(&zuozhe&); NewsAddBean nb = new NewsAddBean(); nb.settimu(timu); nb.setneirong(neirong); nb.setzuozhe(azuozhe); if(nb.newsAdd()==1){ request.getRequestDispatcher(&newsPut.jsp&).forward(request, response); }//将内容提交至新闻显示页面 else{ request.getRequestDispatcher(&addError.jsp&).forward(request, response); }//将内容提交至错误页面 } public void init() throws ServletException {19 } } 5、 编写新闻显示 newsPut.jsp 页面&%@page language=”java” contentType=”text/charset=GB2312”%& &%@page import=”java.util.*”%& &html& &head&&title&新闻显示页面&/title&&/head& &body& &% Out.println(“&h3&新闻显示&h3&&hr&”); Request.seCharacterEncoding(“GBK”); Rnumeration enumParams=request.getParameterNames(); While(inumParams.hasMoreElements()){ String paraName=enumParams.nextElement().toString(); String paraValue=request.getParameter(paraName); %& &%=paraName%&:&%=paraValue%&&br& &%}%& //通过循环一次输出 request 中的各个对象6) 实验结果首先输入用户名:luyang 密码:1234 可以登入新闻发布页面,否则返回主页。在进入新闻发布页面中选择提交,若有部分信息不全,则显示错误页 若各类信息都有了,则在新闻显示页面上会显示所提交的信息。7) 实验心得本次实验让我掌握了如何运用 jsp 的各种内建对象处理表当, 同时巩固了 servlet 的具体应用, 已经可以编写简单的新闻发布系统,并且熟悉了管理员控制权限的基本原理。20 南昌大学实验报告学生姓名学 号专业班级物流 101 班 实验类型□ 验证 □ 综合 ■ 设计 □ 创新 实验日期实验成绩:一、实验项目六 二、实验目的1. 2. 3. 4. 5. 6. 7.JavaBean 编程技术熟悉 JavaBean 的规范 会编写 JavaB 会在 JSP 和 Servlet 中创建和使用 JavaBean 对象 掌握 JSP 的&jsp:useBean&、&jsp:setProperty&、&jsp:getProperty&的使用 掌握 JSP 中表单和表单 Bean 的映射 掌握 Servlet 中表单和表单 Bean 的映射 会编写封装业绩逻辑的 JavaBean 会使用上传下载组件 jspSmartUpload 外部组件三、实验内容一、修改前面的封装新闻(文章)的 JavaBean,使其符合 JavaBean 规范 二、修改前面的新闻发表 Serlvet,用来完成新闻发布表单的处理,要求利用映射机制把新 闻表单映射到新闻的 JavaBean 中,以便后继把这个 JavaBean 写入数据库。三、编写一个封闭新闻管理的业务 Bean. 这里只需定义接口即可。四、参考教材,编写一个上传下载模块(可选) 五、参考教材,实现登录动态验证(可选)四、实验仪器及耗材计算机,Dreamweaver 8,Photoshop,MyEclipse 等软件。五、实验步骤1、 JavaBean newsBean 的编写,通过该 Bean 可以显示提交的新闻信息Package demo. Import java. Public class newsBean{ Public newsBean(){ } Private S Private S21 Private S Public void settimu(String timu){ This.timu= } Public void setneirong(String neirog){ This.neirong= } Public void setzuozhe(String zuozhe){ This.zuozhe= } Public String gettimu(){ R } Public String getneirong(){ R } Public String getzuozhe(){ R } } 2、 修改新闻处理的 servlet,将其处理的结果映射到 newsBean 中 import java.io.IOE import java.io.PrintW import javax.servlet.ServletE import javax.servlet.http.HttpS import javax.servlet.http.HttpServletR import javax.servlet.http.HttpServletR import public class chuli extends HttpServlet { public chulit() { super(); } public void destroy() { super.destroy(); // Just puts &destroy& string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response)22 throws ServletException, IOException { response.setContentType(&text/html&); PrintWriter out = response.getWriter(); out .println(&&!DOCTYPE HTML PUBLIC \&-//W3C//DTD HTML 4.01 Transitional//EN\&&&); out.println(&&HTML&&); out.println(& &HEAD&&TITLE&A Servlet&/TITLE&&/HEAD&&); out.println(& &BODY&&); out.print(& This is &); out.print(this.getClass()); out.println(&, using the GET method&); out.println(& &/BODY&&); out.println(&&/HTML&&); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String timu = request.getParameter(&timu&); String neirong = request.getParameter(&neirong&); String zuozhe= request.getParameter(&zuozhe&); NewsAddBean nb = new NewsAddBean(); nb.settimu(timu); nb.setneirong(neirong); nb.setzuozhe(azuozhe); if(nb.newsAdd()==1){ session.setAttribute(“timu”,timu); session.setAttribute(“neirong”,neirong); session.setAttribute(“zuozhe”,zuozhe); response.sendRedirect(“xiansih.jsp”); )//将对象保持到 session 中,通过 session 映射到 javabean else{ request.getRequestDispatcher(&addError.jsp&).forward(request, response); }//将内容提交至错误页面 } public void init() throws ServletException { }23 } 3、 编写新闻管理管理业务 Bean mBeanPackage demo. Import java. Public class mBean{ Public mBean(){ } Private S Private S Private S Private S Private S Public void yangzheng(){ } Public void fabu(){ } Public void yuedu(){ } Public void liebiao(){ } } 定义了身份验证、新闻发布、新闻阅读、新闻列表 4 个借口。六、实验结果将原来的封装业务以 javabean 的形式封装, 简化了在编写 web 过程中繁琐的各种 java 语言, 直接通过 java 就可以处理各种信息。将 servlet 的结果映射到 javabean 中,通过调用 javabean 来完成新闻的发布。七、实验心得本次试验我懂得了 javabean 在 web 编程技术中的妙用,通过 servlet、javabean 的结合,使 web 网页的编写更加地灵活和简单。24 南昌大学实验报告学生姓名学 号专业班级物流 101 班 实验类型□ 验证 ■ 综合 □ 设计 □ 创新 实验日期实验成绩:(一) 实验项目七 (二)实验目的1. 2. 3. 4. 5. 6.基于 MVC 模式构建系统理解 MVC 模式,知道 MVC 架构的搭建 掌握一个系统的搭建的过程 掌握表现层 JSP、Html、JavaScript、CSS 技术 掌握控制层的 Servlet 技术 掌握业务逻辑层的 JavaBean 技术 掌握数据访问层的 JDBC 技术、连接池技术,了解 Heiberate 技术。(三)实验内容一、创建数据库,创建系统所需的各种表 二、配置连接池、实现访问数据库方法的 JavaBean 或函数 三、创建用户、新闻等数据 Bean 四、完善用户管理、模块管理、新闻管理业务逻辑 Bean 五、编写控制层各种 Servlet 六、编写新闻发布、新闻分页列表、新产阅读、主页等表现层页面。七、系统测试(四)实验仪器及耗材计算机,Dreamweaver 8,MyEclipse 等软件。(五) 实验步骤一、 为了演示 Zend Framework 各组件的工作过程, 所以该新闻管理系统功能相对比较简单。包括新闻浏览、管理者登录、管理者对新闻的管理操作(包括添加、修改、删除)等。25 2、 /通常 MVC 应用程序都要有一定的目录结构,而在 Zend Framework 中也对这种结构做了限 定。所以为了是新闻系统遵循这种约定的,需要采用特殊的目录结构。3、 4 、526 6 进行功能测试(六) 实验心得本实验让我对 MVC 有了进一步的了解。27
【web程序设计实验报告】实验七 数据访问一、实验目的 (1) 掌握 Visual Studio 2008 中管理数据库的方法。(2) 掌握数据源控件的使用。(3) 掌握 LINQ 表达式的使用。(4) 掌握利用 LINQ to SQL 和 LINQ to XML 进行数据访问管理的方法。二、实验内容及要求 1. 利用 SqlDataSource 和 LINQ to SQL 进行 SQL Server Express 2005 的数据管理 三、实验步骤 (1) 新建网站。新 建 一 个 网 站 , 添 加 Web 窗 体 DataManage.aspx 、 Web 窗 体 SqlDSFuzzyQuery.aspx 、 Web 窗 体 SqlDSInsert.aspx 、 Web 窗 体 SqlDSEdit.aspx、Web 窗体 LinqEdit.aspx。(2) 设计 DataManage.aspx。(3) 编写 DataManage.aspx 事件代码。按钮 btnQueryAll 被单击时执行的事件代码如下protected void btnQueryAll_Click(object sender,EvenArgs e) { gvCategory.DataSourceID=”sdsCategory”; gvCategory.DataBind(); } 按钮 btnFuzzy 被单击时执行的事件代码如下protected void btnFuzzy_Click(object sender, EventArgs e) { Response.Redirect(&sqldsfuzzyquery.aspx&); } 按钮 btnInsert 被单击时执行的事件代码如下protected void btnInsert_Click(object sender, EventArgs e) { Response.Redirect(&sqldsinsert.aspx&); } 按钮 btnEdit 被单击时执行的事件代码如下protected void btnEdit_Click(object sender, EventArgs e) { Response.Redirect(&sqldsedit.aspx?CategoryId=& + txtCategoryId. Text); } 按钮 btnEditLinq 被单击时执行的事件代码如下protected void btnEditLinq_Click(object sender, EventArgs e) { Response.Redirect(&linqedit.aspx?CategoryId=& + txtCategoryId.Tex t); } 按钮 btnDelete 被单击时执行的事件代码如下protected void btnDelete_Click(object sender, EventArgs e) { sdsCategory.Delete(); } (4) 设计 SqlDSFuzzyQuery.aspx。(5) 编写 SqlDSFuzzyQuery.aspx 事件代码。按钮 btnSearch 被单击后,引起页面往返,此时将执行 sdsCategory 中设置的 Select 命令后再触发的 Selected 事件代码如下Protected void sdsCategory_Selected(object SqlDataSourceStatusEventArgs e) { if (e.AffectedRows == 0) { lb1Msg.Text = &没有满足条件的数据!&; } else { lb1Msg.Text = & &; } } 按钮 btnReturn 被单击时执行的事件代码如下sender, protected void btnReturn_Click(object sender, EventArgs e) { Response.Redirect(&datamanage.aspx&); } (6) 设计 SqlDSInsert.aspx。(7) 编写 SqlDSInsert.aspx 事件代码。按钮 btnInsert 被单击时执行的事件代码如下protected void btnInsert_Click(object sender, EventArgs e) { sdsCategory.Insert(); } 按钮 btnReturn 被单击时执行的事件代码如下protected void btnReturn_Click(object sender, EventArgs e) { Response.Redirect(&datamanage.aspx&); }(8) 设计 SqlDSEdit.aspx。(9) 编写 SqlDSEdit.aspx 事件代码。Web 窗体首次载入时执行的代码如下protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataView dv = DataSourceSelectArguments()); (DataView)sdsCategory.Select(newDataTable dt = dv.ToTable(); txtCategoryId.Text = dt.Rows[0][&Category&].ToString(); txtName.Text = dt.Rows[0][&Name&].ToString(); txtDescn.Text = dt.Rows[0][&Descn&].ToString(); } 按钮 btnUpdate 被单击时执行的事件代码如下protected void btnUpdate_Click(object sender, EventArgs e) { sdsCategory.Update(); } 按钮 btnReturn 被单击时执行的事件代码如下protected void btnReturn_Click(object sender, EventArgs e) { Response.Redirect(&datamanage.aspx&); } (10) 设计 LinqEdit.aspx。(11) 添加 MyPetShop.dbml。在 APP_Code 文件夹中添加一个“LINQ to SQL 类”MyPetShop.dbml,再从 “服务器资源管理器”窗口将 MyPetShop 的各个表拖动到“对象关系设计 器”窗口,然后,Visual Studio 2008 将自动生成相应的数据类。(12) 编写 LinqEdit.aspx 事件代码。在所有事件代码外声明 MyPetShopDataContext 对象 db,使得该对象 可在多个事件代码中使用,代码如下MyPetShopDataContext db=new MyPetShopDataContext(); Web 窗体首次载入时执行的代码如下protected void Page_Load(object sender,EventArgs e) { If(!IsPostBack) { Var categories=from c in db.Category Where c.CategoryId==int.Parse(Request.QueryString[“CategoryID”]) S if(categories!=null) { Foreach(Category!=null) { Foreach(Category categories) { txtCategoryId.Text=category.Cat egoryId.ToString(); txtName.Text=category.N txtDescn.Text=category.D } } } } 按钮 btnUpdate 被单击时执行的事件代码如下Protected void btnUpdate_Click(object sender,EventArgs e) { Var categories=from c in db.Category Where c.CategoryId==int.Parse(txtCategoryId.Text) S If(categories!=null) { Foreach(Category category in categories) { Category.Name=txtName.T Category.Descn=txtDescn.T } Db.SubmitChanges(); } } 按钮 btnReturn 被单击时执行的事件代码如下category in protected void btnReturn_Click(object sender, EventArgs e) { Response.Redirect(&datamanage.aspx&); } (13) 从浏览 DataManage.aspx 开始对数据管理网站进行测试。三、实验结果图 1 SQL 数据管理导航页浏览效果图 2 “模糊查找”效果(1)图 3 “模糊查找”效果(2 ) 图 4 “模糊查找”效果(3)图 5 SQL“插入”效果图 6 “修改”效果
【web程序设计实验报告】本科实验报告课程名称:Web 程序设计基础实验项目:实验一HTML 语言实验地点:迎西校区 4506 机房专业班级:软件工程学号:学生姓名:指导:2012 年 4 月 一、 实验目的1. 掌握常用的 HTML 语言标记。2. 利用文本编辑器建立 HTML 文档,制作简单网页。二、 实验要求1. 独立完成实验。2. 书写实验报告书。三、 实验内容1. 在文本编辑器“记事本”中输入如下的 HTML 代码程序,以文件名 sy1.html 保存,并在浏览器中运行。(请仔细阅读下列程序语句,理解每 条语句的作用) 源程序清单如下:&html& &head& &title&Example&/title& &/head& &body bgcolor=&#00DDFF&& &h1&&B&&I&&FONT COLOR=&#FF00FF&& &MARQUEE BGCOLOR=&#FFFF00& direction=left behavior=alternate&welcome to you&/MARQUEE& &/FONT&&/I&&/B&&/h1& &hr& &h2 align=center&&FONT COLOR=&#0000FF&&A simple HTML document&/FONT&&/h2& &EM&Welcome to the world of HTML&/EM& &p&This is a simple HTML document.It is to give you an outline of how to write HTML file and how the &b&markup tags&/b&work in the&I&HTML&/I&file&/p& &p&Following is a three chapters &ul& &li&This is the chapter one&/li& &li&&A HREF=&#item&&This is the chapter two&/A&&/li& &li&This is the chapter three&/li& &/ul& &hr& &p&&A NAME=&item&&Following is items of the chapter two&/A&&/p& &table border=2 bgcolor=gray width=&40%&& &tr& &th&item&/th& &th&content&/th& &/tr& &tr& &td&item 1&/td& &td&font&/td& &/tr& &tr& &td&item 2&/td& &td&table&/td& &/tr& &tr& &td&item 3&/td& &td&form&/td& &/tr& &/table& &hr&&p& 1&p& 2&p& 3&p& 4&p& 5&p& 6&p& 7&p& &B&&I&&FONT COLOR=BLUE SIZE=4&End of the example document &/FONT&&/I&&/B& &/p& &/body& &/html&2. 编写一个能输出如图所示界面的 HTML 文件。四、 实验结果 1.2. 程序清单:&html& &head& &title&表单范例&/title& &/head& &body& &table align=&center&&&caption&&h2&&b& 请 留 下 个 人 资 料 &/b&&hr size=&1& width=&170& color=&black&&&/h2&&/p&&/caption& &form name=&form&& &tr&&td align=&right&&姓名:&/td& &td&&input type=&text& name=&姓名&&&/td&&/tr& &tr&&td align=&right&&E-mail &/td&&td&&input type=&text& name=&邮箱&&&/td&&/tr& &tr&&td align=&right&& 电 话 &/td&&td&&input type=&text& name=&电话&&&/td&&/tr& &tr&&td align=&right&& 性 别 &/td&&td&&input type=&radio& name=&性别& checked&女 &input type=&radio& name=&性别&&男&/td&&/tr& &tr&&td align=&right&&年龄:&/td&&td&&select& &option selected&20 以下 &option&40 以下 &option&60 以下 &option&60 以上 &/select&&/td&&/tr& &tr&&td align=&right&&留言板:&/td& &td&&textarea name=& 留 言 板 & rows=&5& cols=&40&&&/textarea&&br&&/td&&/tr& &tr&&td align=&right&&您的爱好:&/td& &td&&input type=&checkbox& name=&运动&&运动&br& &input type=&checkbox& name=&阅读&&阅读&br& &input type=&checkbox& name=&听音乐&&听音乐&br& &input type=&checkbox& name=&旅游&&旅游 &/td&&/tr& &tr&&td align=&center& colspan=&2&&&input type=&submit& name=&提交& value=&提交&& &nbsp&nbsp&nbsp&nbsp&nbsp&input type=&reset& name=&重写& value=&全部重写&&&/td&&/tr& &/form& &/table& &/body& &/html&五、 讨论、心得通过此次实验,让我收获许多,主要收获如下1.能熟练地掌握基本的 HTML 语言标记,懂得每一个标记所代表的意思。2.进一步熟悉了表单的制作过程以及表单中各标记的灵活应用。

我要回帖

更多关于 jdbc查询数据库 的文章

 

随机推荐