zoukankan      html  css  js  c++  java
  • java入门第五步之数据库项目实战

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

    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项目就宣告成功了,现阶段我们对页面端没有太多的控制,在以后的学习中会慢慢加入的

    希望多多交流,多多关注,共同成就梦想
  • 相关阅读:
    宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
  • 原文地址:https://www.cnblogs.com/shenliang123/p/2467989.html
Copyright © 2011-2022 走看看