Web开发与应用实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、eclipse配置
1、在某盘中建立存放工程的文件夹:workspace
2、打开eclipse文件夹,双击其中的eclipse.exe,第一次使用的时候会弹出对话框,这里可以选择一个路径作(1中的workspace)为工作区来保存我们的代码。
选择no,点击finish。
之后会出现欢迎界面
配置tomcat
(1)打开菜单【windows】-【preferences】,按照如下选择点击browse按钮,选择tomcat的安装路径
(2)在服务器列表中会出现刚才配置的服务器,选择start
当看到”信息: Server startup in 1328 ms”说明tomcat启动成功
在浏览器打开地址http://localhost:8080/看到如下页面说明启动成功
新建一个简单的工程
(1)FILE→NEW→PROJECT,选择web project建立一个工程
(2)工程建立之后点击工具栏中服务器列表左边的按钮,部署这个工程,选择刚才建立的工程点击
ADD添加工程
选择刚才配置好的服务器
【实验结果】
实验二
一、实验内容
学习使用servlet,采用JDBC访问mysql数据库,将程序部署在服务器上,观察程序的运行。
二、实验流程
(1)将工程jdbc导入myeclipse开发环境,并部署到tomcat服务器;
导入工程流程:首先点击菜单file→import,在弹出的对话框中选择
general→exsiting project into workspace,点击browse,选中jdbc文件夹,最后点击finish. (2)创建数据库和表
建立数据库
(3)新建用户,密码为1
(4)点击“权限”-“添加权限”
(5)确定,回到主界面保存,点击,再点击新建查询,输入如下sql语句
USE `mytest`;
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) DEFAULT NULL,
`password` varchar(15) DEFAULT NULL,
`date` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ;
点击运行
启动tomcat服务器,输入“http://localhost:8080/jdbc”运行程序,查看运行效果,并用调试的方式跟踪程序运行代码。
三、实验内容
(1)JDBC使用流程:
jdbc配置:src/utils/db.java
(2)servlet注册
WebRoot/WEB-INF/web.xml
servlet的名字为“add”
接收jsp页面的数据请求
<url-pattern>/add.do</url-pattern>
将请求的数据转向给后台java文件来处理:
<servlet-class>org.seven.web.AddServlet</servlet-class>
(3)java文件说明
dao:负责与数据库交互
model:业务逻辑,在此文件中可以写一些业务逻辑,例如:数据转换、数据校验等web:servlet,负责接收jsp页面请求,并将数据交由dao去处理
utils:jdbc设置(数据库驱动、实例名、用户名、口令)
(4)数据插入
I ndex.jsp:首页文件,包含数据插入及保存
(5)将前台页面输入的用户名和口令,通过web.xml文件中sevlet注册的“add.do”,将数据发送给src/web/addServlet.java文件去处理。
addServlet.java的处理步骤:
获取jsp页面传送过来的用户名和口令
声明user对象,并将用户名和口令赋予该对象
声明userDao对象,并执行保存,参数为user对象
保存成功后,将结果返回给list.jsp页面
list.jsp:数据显示
数据显示:例如addServlet.java
resp.sendRedirect("list.do");
通过web.xml文件中的servlet注册,交由src/web/ListServlet.java去处理
直接调用dao的findUsers方法将数据获取出来,并传递给list.jsp页面显示
数据修改
在list.jsp页面,通过“toupdate.do”找到对应的servlet:ToupdateServlet.java
在ToupdateServlet.java中,通过前台页面的id使用dao查询到该条数据,并赋予user对象将user对象传递给update.jsp文件,显示该条数据
在update.jsp页面,通过“update.do”,交由updateServlet.java,去保存
删除操作:delete.do
在list.jsp页面,通过“delete.do”找到对应的servlet:deleteServlet.java
在deleteServlet.java中,通过前台页面的id使用dao查询到该条数据,并赋予user对象
在deleteServlet.java文件中,通过dao去删除数据。
注意事项
dao中的所有对数据库的操作,最终都会形成一个sql语句来执行
每次数据库操作的第一步都要先建立数据库连接,执行完后必须要释放连接,如果不释放,数据库连接越来越多,最后数据库会崩溃
大型应用系统,都会有连接池机制,交由中间件(tomcat/weblogic)去处理。
实验三
一、实验目的
使用文件字节流读写文件实验, 掌握使用文件输入、输出字节流读写文件操作
二、实验要求
在一个页面上实现文件的上传和读写功能,要求能够选择要上传的文件,并且具有提交功能。
说明
1、为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,
比如放于WEB-INF目录下。
2、为防止文件覆盖的现象发生,要为上传文件产生一个唯一的文件名。
3、为防止一个目录下面出现太多文件,要使用hash算法打散存储。
4、要限制上传文件的最大值。
5、要限制上传文件的类型,在收到上传文件名时,判断后缀名是否合法。
实验步骤
菜单【new】-【project】,选择web project,工程名:FileUploadAndDownLoad 将commons-fileupload-1.2.1.jar和commons-io-1.4.jar文件拷贝到工程
\FileUploadAndDownLoad\WebRoot\WEB-INF\lib下
按下图的方式将jar文件引入到工程中
弹出如下窗口,点击如下按钮
选择如下所选的两个文件
点击“打开”按钮,返回主界面,点击“ok”按钮新建java文件,处理文件上传等操作
+
into
业务逻辑层由Spring 框架支持,提供了处理业务逻辑的服务组件。
开发者需要对业务对象建模,抽
象出业务模型并封装在Model 组件中。
由于数据持久层实现了Java 持久化类并且封装了数据访问对象
(DAO),因此可以在Model 组件中方便地调用DAO 组件来存取数据。
Spring 的IoC 容器负责统一管理Model 组件和DAO 组件以及Spring 所提供的事务处理、缓冲连接池等服务组件。
在用户管理模块中,通过业务建模创建了用户模型UserService 类,封装了对用户的管理等功能。
UserService 类通过调用数据访问类UserDao 实现对用户数据的操作。
这些组件的关系将通过配置Spring 框架的applicationContext.xml 联系起来
(3)表示层(struts )
表示层结合JSP 和Struts 的TagLib 库处理显示功能,利用ActionServlet 将请求(*.do)映射到相应的
Action ,并由Action 调用业务逻辑的服务组件,然后根据处理结果跳转到Forword 对象指定的响应页面。
程序结构 总体结构
JSP 页面Action UserService 类Dao SessionFactory
struts.xml
applicationContext.xml
数据库
hibernate
struts
Spring
struts.xml
配置每个jsp 页面请求所对应的action
er 将请求转给UserService 类进行处理 applicationContext.xml 数据库连接配置
SessionFactory接口:初始化Hibernate(建立数据库表的映射关系)
User.hbm.xml
dao与SessionFactory的对应关系
UserService类与DAO的对应关系
UserService类与action的对应关系
jsp文件
index.jsp,入口页面
list.jsp数据显示列表页面
save.jsp:插入保存页面
update.jsp:更新页面
四、程序编码
输入网址:http://localhost:8080/mytest,通过调试的方式运行程序,跟踪程序运行情况按照如下步骤,增加address列,然后再运行程序,查看运行结果
在数据库表users中增加一列,address、字符型(长度200、可以为空)
修改user.hb.xml页面,增加如下代码,建立数据库表对应关系
<property name="address" type="string" column="address"></property>
修改user.java文件,增加如下代码,实现对数据库表新增列的业务操作
public String getAddress() {
return address;}
public void setAddress(String address) {
this.address = address; }
list.jsp中增加如下代码,显示新增的address列
<td>地址
</td>
<td><s:property value="#us.address"/>
</td>
修改update.jsp列,增加如下列
<s:textfield name="user.address" label="%{getText('address')}"></s:textfield>
修改globalMessage_zh.properties,增加如下代码
address=address。