使用MyEclipse8.x开发web应用的基础
一、使用MyEclipse8.x开发Web应用的实例
使用MyEclipse8.x开发Web应用的基本过程:
1.准备开发环境MyEclipse8.x。
2.创建Web项目。
3.添加项目组件。
4.部署Web应用项目。
5.启动Web服务器。
6.通过网络访问Web应用。
数据库的差别很少:
(1)驱动包及加载语句;
(2)URL;
(3)Username和Password。
1.开发环境MyEclipse8.x
实验室已经建立。
如果需要注册:
进入MyEclipse-->Subscription Information,
然后输入输入subscription information.
订阅者. subscriber=LauCheng
订阅代码Subscription Code=YLR8ZC-855550-6765665204902409
可以查看注册信息Subscription Details,注意同一订阅只允许20用户。
其它可用订阅信息:(也可以用提供的注册机程序MyEclipseGen.java生成订阅信息)allen
nLR8ZC-855550-6865695391938799
king
xLR8ZC-855550-6865695436877552
testallen
gLR8ZC-855550-68656957593201422
testjava
gLR8ZC-855550-68656956864197782
2.创建Web项目
启动Myeclipse平台工具,从右上角选择MyEclipse Java Enterprise透视图,如果右上角没有出现,则从windows菜单中选择透视图。
按路径File---.>New---- Web Project进入如下的web project创建向导:
单击“Finish”即可。
至此,一个web程序已经新建好了。如果是第一次创建工程,会弹出一个对话框,询问是否切换到myeclipse透视图,随意选择。
3.查看项目Test的组成,根据需要修改系统产生的index.jsp页面
4. 部署项目
点击“发布”图
标
,在弹出的对话框中选择项目test ,按Add 按钮,
选择MyEclipse Tomcat 服务器,按“Finish ”确认部署。注意可以通过服务器下面的链
接进入“Edit server connectors”编辑服务器链接信息,如端口号等。
5.点击“启动服务器”图标,启动服务器。
注意在控制台观测启动信息。
6.通过网络访问Web应用。
单击Myeclipse的工具按钮
在地址栏如下输入,如果出现下图的运行效果,则测试成功
注意:因为指导书环境tomcat端口号与oracle冲突,故改为8070,默认情况下端口号是:8080。视具体情况定
二、使用MyEclipse8.x开发基于Web的数据库应用实例
重点:web 程序与数据库的连接
1.在oracle数据库中建立数据库脚本mytable.sql
create table mytable(
mytable_username varchar2(50) not null,
mytable_password varchar2(50) ,
mytable_email varchar2(50) ,
mytable_tel varchar2(50) ,
primary key(mytable_username)
);
2.在eclipse中新建一个web project,取名为testagain
(1)在webroot目录下新建一个名为:test.jsp的文件,用来测试和数据库的连接情况Test.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" %>
<%@ page import="java.sql.*" %>
<%
//连接字符串(此处是不同数据库的唯一差别)
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //不同机器上oracle10g的数据库实
//例名不同,作相应修改。Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String user="scott";//数据库的用户名
String password="tiger";//注意数据库密码的差异
//连接数据库
Connection connection= DriverManager.getConnection(url,user,password);
Statement statement = connection.createStatement();
String sql="SELECT * FROM mytable";
ResultSet rs = statement.executeQuery(sql); //执行sql语句
// 输出每一个数据值
out.print("uername");
out.print("|");
out.print("email");
out.print("|");
out.print("tel");
out.print("
");
//输出数据库中指定属性值
while(rs.next()) {
out.print(rs.getString(1)+" ");
out.print("|");
out.print(rs.getString(3));
out.print("|");
out.print(rs.getString(4));
out.print("
");
}
out.print("
");
out.print("数据库操作成功,恭喜你");
rs.close();
statement.close();
connection.close();
%>
(2)把数据库连接包添加到工程构建路径中。建议把数据库连接的.jar包拷贝至/testagain/webroot/web-inf/lib目录下,然后在eclipse包资源管理器中刷新工程,可以看到.jar包被添加进来了。
当然,也可以在eclipse中直接通过配置构建路径来添加,这里不做介绍。
(3)在数据库中添加一条记录
Insert into mytable values('zhangsan','111','zhang@https://www.doczj.com/doc/8915677969.html,','110');
(4)启动tomcat服务器,并部署工程。运行test.jsp文件,出现如下:
并且在isql中写:select * from mytable
可以发现我们刚才插入的记录
测试成功
三、一个注册功能的web project
仍然使用刚才建立的testagain工程
1.在src目录下新建一个包:org.db.javabean(包名随便取的),用来存放java文件
在新建包中[新建]—[类]:命名为:DB
这个类用来封装相关的数据库信息及操作
如下:
package org.db.javabean;
import java.sql.*;
public class DB {
// 成员变量初始化
Connection conn = null; // 数据库连接
Statement stmt =null;
ResultSet rs = null; // 记录集
String Username = ""; // 用户名
String Password = ""; // 密码
String email = "";
String tel = "";
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
// db的构建器(数据库的上下三个差别!)
public DB() {
try {
String name = "oracle.jdbc.driver.OracleDriver";
Class.forName(name);
conn= DriverManager.getConnection(url, "sys as sysdba", "oracle");
System.out.println("success");
} catch (Exception e) {
// 这样写是为了方便调试程序,出错打印mydb:就知道在什么地方出错了
System.err.println("mydb: " + e.getMessage());
}
}
//关闭所有的数据库连接资源
public void closeResource(){
try{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null);
conn.close();
}
catch(Exception e){
e.printStackTrace();
}
}
// executeQuery方法用于进行记录的查询操作
// 入口参数为sql语句,返回ResultSet对象
public ResultSet executeQuery(String sql) {
rs = null;
try {
Statement stmt = conn.createStatement();
// 执行数据库查询操作
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
System.err.println("db.executeQuery: " + ex.getMessage());
}
return rs;
}
// executeUpdate方法用于进行add或者update记录的操作
// 入口参数为sql语句,成功返回true,否则为false
public boolean executeUpdate(String sql) {
boolean bupdate = false;
rs = null;
try {
// 建立数据库连接,其它参数说明同上面的一样
stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
// 如果不成功,bupdate就会返回0
if (rowCount != 0)
bupdate = true;
} catch (SQLException ex) {
// 打印出错信息
System.err.println("db.executeUpdate:" + ex.getMessage());
}
return bupdate;
}
// toChinese方法用于将一个字符串进行中文处理
// 否则将会是???这样的字符串
public static String toChinese(String strvalue) {
try {
if (strvalue == null) {
return null;
} else {
strvalue = new String(strvalue.getBytes("ISO8859_1"), "GBK");
return strvalue;
}
} catch (Exception e) {
}
}
}
2.在同样的包中新建一个Adduser.java类
它是用户信息的一个javabean,并且还包含了添加用户的相关操作
package org.db.javabean;
public class AddUser {
String username="";
String password="";
String email="";
String tel="";
DB db=null;
/**
* @param args
*/
public AddUser(){
super();
}
public boolean addNewUser() {
db = new DB();
boolean boadduser = false;
try {
// 进行用户注册的记录添加操作,生成sql语句
String sSql = new String(
"Insert into
mytable(mytable_username,mytable_password,mytable_email,mytable_tel)" );
sSql = sSql + " values('"+ username+ "','"+ password+ "','"
+ email + "','"+ tel+"')";
// 一种调试的方法,可以打印出sql语句,以便于查看错误
System.out.println(sSql);
// 调用父类的executeUpdate方法,并根据成功以否来设置返回值
if (db.executeUpdate(sSql))
boadduser = true;
} catch (Exception ex) {
// 出错处理
ex.printStackTrace();
system.err.println("adduser.addNewUser: " + ex.getMessage());
}
finally{
db.closeResource();
}
}
// checkUser()方法用来检查用户名是否重复
// 如果重复返回一个false
public boolean checkUser() {
boolean boadduser = false;
db = new DB();
try {
// 构建sql查询语句
String sSql = "select * from mytable where mytable_username='" + username+ "'";
// 调用父类的executeQuery方法
if ((db.executeQuery(sSql)).next()) {
// 查询出来的记录集为空
boadduser = false;
} else {
boadduser = true;
}
} catch (Exception ex) {
// 出错处理
System.err.println("adduser.addNewUser: " + ex.getMessage());
}
finally{
db.closeResource();
}
return boadduser;
}
public String getUsername() {
return username;
}
public void setUsername(String newUsername) {
// 用户名有可能是中文,需要进行转换
username = DB.toChinese(newUsername);
}
// 属性密码Password的get/set方法
public String getPassword() {
return password;
}
public void setPassword(String newPassword) {
password = newPassword;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public static void main(String[] args) {
AddUser add = new AddUser();
add.addNewUser();
}
}
3.在webroot目录下新建一个newuser.jsp,这个文件是用户注册的界面
<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
content="keyword1,keyword2,keyword3">
function change(){
formreg.action="newuser.jsp";
formreg.submit();
}
function valid(form)
{
if(https://www.doczj.com/doc/8915677969.html,ername.value.length==0)
{
alert("Please enter username!");
https://www.doczj.com/doc/8915677969.html,ername.focus();
return false;
}
if(formreg.password.value!=formreg.password1.value){
alert("你输入的验证密码不正确");
formreg.password1.focus();
return false;
}
}
新用户注册
为了本系统能够更好的为您服务,请使用IE6.0或以上版本浏览器
版权所有
3.新建一个down.jsp文件,这个文件是用户注册的一些客户端验证,以及成功或失败的显示效果。
<%@page language="java"import="java.util.*"pageEncoding="utf-8"%> <%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%
//调用.adduser的checkUser()方法检查是否有重复的用户名
//如果有重复就显示对应的信息
if (!adduser.checkUser()) {
//页面文字输出信息,使用jsp内置对象out的println方法,相当于asp中的response.write方法
out.println("对不起,这个用户名" + adduser.getUsername()
+ "已经被申请了,请重新选择!");
//return代表返回,运行时候碰到return就不会进行下面的处理了,功能相当于asp中的response.end
return;
}
%>
<%
//如果没有用户名重复的问题,调用lyf.adduser的addNewUser()方法来将用户数据添加到数据库中,并根据数据添加成功否来显示对应的信息
if (adduser.addNewUser()) {
%>
添加用户成功!
<%
} else {
%>
添加用户失败,请和管理员联系!
<%
}
%>
4.启动tomcat服务器,部署工程,并运行在地址栏如下输入,并如下填写用户注册信息
注意总是先显示警告对话框!
注意Javascript脚本语句直接在前段运行!
如果注册成功,可以看到下面效果
注意
(1)newuser.jsp中request对象中的数据如何传递到down.jsp中;
(2)在down.jsp中设置
在isql中查询测试的信息
输入select * from mytable;
可以发现我们刚才填写的注册信息已经保存在数据库当中了!