在真正进入代码编写前些进行一些工具的准备:

1.保证有一个可用的数据库,这里我用sql server 2000为例,2.拥有一个ide,如ecelise或myeclipse等,这里我使用的是myeclipse 8.5

3.数据库连接的架包;

这里数据库的安装就不说了,如果你安装的sql server 2000的话,你在使用jdbc进行连接时还需要打上sp3补丁;

一切准备就绪后我们就开始进入正题了:

1.首先我们在file--->New---->Web Project(也可以再Package Explore视图中右键一样的)

在Project Name 中输入项目名(这里先输入HelloWorld,算作我们的第一个Web项目),然后点击finish即可;可以看到右边就出现了一个Web项目:

具体上面每一部分的作用这里就不细说了,大家可查阅基础的书籍进行了解

2.然后我们将要连接数据的jar包先放到WEB-INF下的lib目录下(以后我们就将所需要的jar都放到该目录下即可):

由于有IDE支持负责和粘贴,我们只需要负责jar包后到IDE项目下的lib目录下就行粘贴就可以了

3.我们先在页面端index.jsp(也可以大家自己进行新建jsp或html页面)写一个简单的注册页面,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>数据库实战之注册</title>
</head>
<body>
<center>
<form name="form" action="RegisterServlet" method="post">
<input type="text" name="username" id="username" />
<input type="password" name="password" id="password" />
<input type="password" name="repassword" id="repassword" />
<input type = "submit" name = "register" value = "注册">
<input type = "reset" name = "re" value = "重置">
</form>
</center>
</body>
</html>

注意的问题:我们在一般情况下都是将编码格式改为utf-8的,<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

接下来我们先来看下页面的效果,先不管后台的交互;这里我们就需要将项目加载到应用服务器中,这里我们选用的是开源的服务器Tomcat 6.0,
具体安装可以见:java入门第五步之tomcat的安装http://www.cnblogs.com/shenliang123/archive/2012/04/24/2468036.html

4.接下来我们进行项目的部署:

首先点击左边的按钮进行项目的部署

在project选择你要部署的项目,这里选择HelloWorld,然后点击Add按钮,在出现的界面中的server选择tomcat服务器,这里选择tomcat 6.x---->点击finish

然后成功加载后点击OK即可,项目部署结束了

5.现在可以启动服务器了,在上图的右边按钮点击后在下拉框中选择tomcat 6.x----->Start后可以看到控制台会打印出信息---->待显示启动时间后表示加载完成了

6.现在你就可以打开浏览器进行访问了;在打开的浏览器地址中输入地址为:http://localhost:8080/HelloWorld/index.jsp

可以看到网页上输出:(这里我们页面的美观度先不去管)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

接下来我们要进行后台代码的编写了,要进行数据的交互了,我们可以看到我们上面新建的那个页面的后台处理是在RegisterServlet;

在进行代码书写时,我们先在sql server 2000中新建一个test数据库,字段分别为id,username,password其中id为自增

1.我们现在当前项目的src目录下新建servlet:选中src目录右键---->New----->servlet----->

Name选项中必须填入页面端需要访问的servlet名----->Next---->默认点击finish即可---->

现在我们可以去WEB-INF下的web.xml中看下:有如下代码

  <servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>RegisterServlet</servlet-name>
<servlet-class>xidian.sl.servlet.RegisterServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>RegisterServlet</servlet-name>
<url-pattern>/servlet/RegisterServlet</url-pattern>
</servlet-mapping>

简单说下原理:页面端访问servlet----->先会到web.xml配置文件中的<servlet-mapping>标签下的<servlet-name>标签中寻找对应的名字----->找到后会根据

<url-pattern>标签下的名字去<servlet>标签下的<servlet-name>寻找名字对应的------>找到后根据<servlet-class>下的全名进行查找该servlet的具体位置;

看懂了上面的意思后,我们应该知道在新建一个servlet类时我们不一定选择New----->servlet,也可直接选择New----->classes,然后在到web.xml中手动进行配置,

前者做法是比较偷懒的做法,大家可以试试后者看;

2.接下来我们继续回到我们新建的servlet类中,我们可以看到IDE工具已经帮我们生成了部分代码,servlet中重要的就是doGet()和doPost()两个方法,具体调用哪个

方法,就看页面端的提交方式:由method="post"可以提交方式为post,因此我们的代码就可以先只在doPost中进行书写,

在书写代码前我们要进行数据库的连接操作,这里我采用的是自己封装好的类:http://www.cnblogs.com/shenliang123/archive/2012/04/19/2456665.html

为了方便起见我直接将该类放在与servlet的同一包下,以后大家自己做时可将其分开放置:

servlet类中的doPost方法代码:

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
/**
* 使用request.getParameter(String str)可以获得页面端传递的参数,该方法的参数就是页面端传递的Name值
* */
String username = request.getParameter("username"); //账号
String password = request.getParameter("password"); //密码
//打印看是否已经获得该值
System.out.println("用户名:" +username + " 密码:"+password);
PrintWriter out = response.getWriter();
try {
/**
* 以下是根据账号来查询数据库,看该用户名是否已被申请
* */
String sql = "select id from users where username='"+username+"'";
DbConn dbConn = new DbConn();
String[][] data = dbConn.getData(sql);
if(data == null|| (data != null&& data.length == 0)){
//进行数据库的添加
String sql_insert = "insert into users(username, password) values('"+username+"', '"+password+"')";
dbConn.update(sql_insert);
out.println("<script language='javascript'>alert('用户注册成功!!');window.location.href='index.jsp';</script>");
out.flush();
out.close();
}else{
out.println("<script language='javascript'>alert('账号已被申请,请重输!');window.location.href='index.jsp';</script>");
}
}catch(Exception e){
e.printStackTrace();
}
}

然后访问页面端,输入用户名和账号后点击注册,返回成功后:

查看数据库:

到此我们的第一个web项目就宣告成功了,现阶段我们对页面端没有太多的控制,在以后的学习中会慢慢加入的

java入门第五步之数据库项目实战【转】的更多相关文章

  1. java入门第三步之数据库连接

    数据库连接可以说是学习web最基础的部分,也是非常重要的一部分,今天我们就来介绍下数据库的连接为下面学习真正的web打下基础 java中连接数据库一般有两种方式: 1.ODBC——Open Datab ...

  2. java入门第三步之数据库连接【转】

    数据库连接可以说是学习web最基础的部分,也是非常重要的一部分,今天我们就来介绍下数据库的连接为下面学习真正的web打下基础 java中连接数据库一般有两种方式: 1.ODBC——Open Datab ...

  3. java入门第四步之应用服务器的安装(Tomcat)【转】

    首先打开myeclipse,在myeclipse菜单栏下面有两个按钮: 左边的按钮是进行项目的部署的(即将项目部署到服务器上),右边的按钮是进行服务器的启动的,如果你安装了tomcat服务器,那你就可 ...

  4. 第二节:Java入门第一行代码

    前言 大家好,今天带来Java入门第一行代码的概述,希望你们喜欢 第一行代码 学习Java基础课程,学会使用eclipse,eclipse为Java集成开发坏境IDE,创建第一个Java源文件代码: ...

  5. Android零基础入门第9节:Android应用实战,不懂代码也可以开发

    原文:Android零基础入门第9节:Android应用实战,不懂代码也可以开发 通过上一期的学习,我们成功开发了Android学习的第一个应用程序,不仅可以在Android模拟器上运行,同时还能在我 ...

  6. Django-Multitenant,分布式多租户数据库项目实战(Python/Django+Postgres+Citus)

    Python/Django 支持分布式多租户数据库,如 Postgres+Citus. 通过将租户上下文添加到您的查询来实现轻松横向扩展,使数据库(例如 Citus)能够有效地将查询路由到正确的数据库 ...

  7. JavaMail入门第五篇 解析邮件

    上一篇JavaMail入门第四篇 接收邮件中,控制台打印出的内容,我们无法阅读,其实,让我们自己来解析一封复杂的邮件是很不容易的,邮件里面格式.规范复杂得很.不过,我们所用的浏览器内置了解析各种数据类 ...

  8. Android JNI入门第五篇——基本数据类型使用

    前面讲到了java和native数据类型,这里就开始做一下使用: 第一步:新建工程 第二部:书写 java方法: public class NativeMethod { static { System ...

  9. 第二百五十五节,Bootstrap项目实战--关于

    Bootstrap项目实战--关于 html <!DOCTYPE html> <html lang="zh-cn"> <head> <me ...

随机推荐

  1. XAF学习笔记之 Upcasting

    通常,我们会定义继承层次结构,假设有类型,CustomerBase,CustomerTrialed,CustomerRegistered三个类型,并且继承结构如下: 业务对象代码定义如下: using ...

  2. mysql概要(十五)存储过程

    1.定义: 2.查看所有存储过程: show procedure status; 3.创建存储过程: create procedure 存储过程名字(参数) begin s1l语句; end$     ...

  3. 排序算法 & 迷宫的深度, 广度优先

    内容提要 1. 我掌握的排序算法的时间复杂度 2. 我掌握的6种排序算法(插入, 冒泡, 选择, 归并, 快速, 希尔) 3. 迷宫的搜索方法(深度优先 + 广度优先) 各种排序的时间复杂度 名称 稳 ...

  4. poj1755Triathlon(半平面交)

    链接 根据题意可以设三段路程分别为A,B,C 那么总时间t = A/V+B/U+C/W. 这样根据时间大小关系可以跟其余n-1个联立形成n-1个方程. 化简后为A(1/vj-1/vi)+B(1/uj- ...

  5. Java Socket编程----通信是这样炼成的

    Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术. ...

  6. you don't have permission to view it 解决

    the file couldn't be opened because you don't have permission to view it   简单设置下面的选项即可,不要谢我啊! change ...

  7. HTTP POST GET 本质区别详解

    HTTP POST GET 本质区别详解 一 原理区别 一般在浏览器中输入网址访问资源都是通过GET方式:在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交 Ht ...

  8. UEditor文档

    UEditor文档http://fex.baidu.com/ueditor/Ueditor 前后端数据交互 http://blog.csdn.net/bobo_93/article/details/5 ...

  9. phalcon: eventManager事件管理(结合dispatcher调度控制器)制作简单的acl

    制作简单的acl, dispatcher(专门用来加载或调度或跳转到相应的url地址即XXXcontroller的调度器或控制器,能够在controller执行前对controller进行停止跳转等) ...

  10. java 多线程4(死锁)

    死锁现象: 死锁原因: 1.存在两个或两个以上的线程. 2.存在两个或两个或两个以上的共享资源. 死锁现象解决的方案: 没有方案只能尽量避免.