在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Servlet注冊(cè)表單示例
Servlet web.xml welcome-file-list
Servlet從數(shù)據(jù)庫(kù)讀取記錄性能優(yōu)化
Servlet URL重寫帶參數(shù)
War文件
Web技術(shù)基礎(chǔ)
Servlet GenericServlet類
Servlet API
Servlet ServletInputStream類
使用MyEclipse創(chuàng)建Servlet
Servlet增刪改查
Servlet ServletConfig配置信息
Servlet Cookies
Servlet重定向
Servlet生命周期
Servlet HttpSession會(huì)話
Servlet HttpServlet類
Servlet注冊(cè)表單示例
Servlet表單隱藏字段
Servlet下載文件
Servlet教程
Servlet身份驗(yàn)證過濾器
Servlet ServletOutputStream類
Servlet HttpSession登錄注銷實(shí)例
Servlet啟動(dòng)時(shí)加載
Servlet事件和監(jiān)聽器
使用Eclipse創(chuàng)建Servlet
Servlet ServletContextEvent事件
Servlet HttpSessionEvent統(tǒng)計(jì)在線用戶數(shù)實(shí)例
Servlet RequestDispatcher請(qǐng)求轉(zhuǎn)發(fā)
Servlet使用注釋
Servlet過濾器示例
Servlet過慮器
Servlet ServletContext配置信息
Servlet登錄注銷Cookies實(shí)例
Servlet工作流程
Servlet會(huì)話跟蹤
Servlet登錄實(shí)例
Servlet ServletRequest接口
Servlet ServletRequestEvent類和接口
Servlet入門程序
Servlet查詢搜索數(shù)據(jù)示例
Servlet FilterConfig應(yīng)用示例
Servlet顯示所有頭信息
Servlet屬性設(shè)置
使用NetBeans創(chuàng)建Servlet
Servlet接口實(shí)現(xiàn)
Servlet上傳文件

Servlet注冊(cè)表單示例

這是一個(gè)使用servlet實(shí)現(xiàn)用戶注冊(cè)示例

在這里,您將了解如何在servlet中創(chuàng)建簡(jiǎn)單的注冊(cè)表單。這個(gè)示例中,我們使用MySQL數(shù)據(jù)庫(kù)。 需要先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù):testdb,以及一個(gè)表:servlet_user,這個(gè)表的結(jié)構(gòu)所示:

CREATE TABLE `servlet_user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(64) NOT NULL DEFAULT '',
  `passwd` varchar(32) NOT NULL DEFAULT '',
  `email` varchar(32) DEFAULT NULL,
  `city` varchar(24) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

要在servlet中創(chuàng)建注冊(cè)頁面,可以將數(shù)據(jù)庫(kù)邏輯與servlet分開。 但是在這里,為了簡(jiǎn)化程序,我們?cè)趕ervlet中混合數(shù)據(jù)庫(kù)操作邏輯。以后可將DAODTOSingleton設(shè)計(jì)模式應(yīng)用在JSP中開發(fā)此頁面。

Servlet中的注冊(cè)表單示例

在這個(gè)例子中,創(chuàng)建了以下幾個(gè)頁面。

  • register.html - 注冊(cè)表單顯示
  • User.java - 用戶POJO對(duì)象類,只有屬性對(duì)應(yīng)的Setter和Getter方法。
  • Register.java - 執(zhí)行數(shù)據(jù)收集和邏輯的頁面
  • RegisterDao.java - 數(shù)據(jù)訪問對(duì)象,連接數(shù)據(jù)庫(kù)及執(zhí)行SQL語句。
  • web.xml - 應(yīng)用程序配置和部署描述文件。

打開Eclipse,創(chuàng)建一個(gè)動(dòng)態(tài)Web項(xiàng)目:ServletRegister,其完整的目錄結(jié)構(gòu)如下所示 -

以下是這個(gè)項(xiàng)目中的幾個(gè)主要的代碼文件。

文件:*register.html* -

在這個(gè)頁面中,我們從用戶那里獲取使用文本字段和組合框的輸入。用戶輸入的信息被轉(zhuǎn)發(fā)到Register Servlet,負(fù)責(zé)將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用戶注冊(cè)</title>
</head>
<body>
    <form action="register" method="post">
        <table>
            <tr>
                <td>用戶名:</td>
                <td><input type="text" name="username" /></td>
            </tr>
            <tr>
                <td>密碼:</td>
                <td><input type="password" name="passwd" /></td>
            </tr>
            <tr>
                <td>Email:</td>
                <td><input type="text" name="email" /></td>
            </tr>
            <tr>
                <td>城市:</td>
                <td><select name="city">
                        <option value="北京">北京</option>
                        <option value="上海">上海</option>
                        <option value="廣州">廣州</option>
                        <option value="深圳">深圳</option>
                        <option value="其它">其它</option>
                </select></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="提交注冊(cè)" /></td>
            </tr>
        </table>
    </form>
</body>
</html>

文件:*User.java* -

package com.yiibai.bean;

public class User {
    private int id;
    private String username;
    private String passwd;
    private String email;
    private String city;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPasswd() {
        return passwd;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

}

文件: Register.java

此servlet類接收用戶輸入的所有數(shù)據(jù),并將其存儲(chǔ)到數(shù)據(jù)庫(kù)中。在這里,由RegisterDao.java執(zhí)行數(shù)據(jù)庫(kù)邏輯。但是也可以將連接數(shù)據(jù)庫(kù)的那部分代碼分離出去,這對(duì)于Web應(yīng)用程序的維護(hù)將會(huì)是更好的。

package com.yiibai;

import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;

import com.yiibai.bean.User;
import com.yiibai.dao.RegisterDao;

public class Register extends HttpServlet {
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        request.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();

        String username = request.getParameter("username");
        String passwd = request.getParameter("passwd");
        String email = request.getParameter("email");
        String city = request.getParameter("city");

        if(username==null) {
            username = "";
        }
        passwd = (passwd==null)? "" :passwd;
        email = (email==null)? "" :email;
        city = (city==null)? "" :city;

        // 設(shè)置用戶數(shù)據(jù)信息
        User user = new User();
        user.setUsername(username);
        user.setPasswd(passwd);
        user.setEmail(email);
        user.setCity(city);

        int status = 0;
        try {
            status = RegisterDao.save(user);
            if (status > 0) {
                out.print("注冊(cè)用戶信息成功...");
            }else {
                out.print("注冊(cè)用戶信息失敗...");
            }
        } catch (Exception e2) {
            System.out.println(e2);
        }
        out.close();
    }
}

文件:*RegisterDao.java*

這個(gè)類主要用于實(shí)現(xiàn)數(shù)據(jù)連接和插入操作,詳細(xì)代碼如下 -

package com.yiibai.dao;

import java.util.*;

import com.yiibai.bean.User;
import java.sql.*;

public class RegisterDao {
    // 表名稱
    private static String tbName = "servlet_user";

    public static Connection getConnection() {
        Connection con = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            con = DriverManager.getConnection("jdbc:mysql://localhost/testdb?useSSL=false&characterEncoding=utf8", "root", "123456");
        } catch (Exception e) {
            System.out.println(e);
        }
        return con;
    }

    // 插入用戶注冊(cè)信息
    public static int save(User u) {
        int status = 0;
        try {
            Connection con = RegisterDao.getConnection();
            String sql = "INSERT INTO " + tbName + "(name,passwd,email,city) values (?,?,?,?)";
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, u.getUsername());
            ps.setString(2, u.getPasswd());
            ps.setString(3, u.getEmail());
            ps.setString(4, u.getCity());
            status = ps.executeUpdate();
            con.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return status;
    }
}

文件:*web.xml*

應(yīng)用程序配置和部署描述文件,詳細(xì)代碼如下 -

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ServletRegister</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
      <servlet>
        <servlet-name>ServRegister</servlet-name>
        <servlet-class>com.yiibai.Register</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServRegister</servlet-name>
        <url-pattern>/register</url-pattern>
    </servlet-mapping>
</web-app>

在編寫上面代碼后,部署此Web應(yīng)用程序(在項(xiàng)目名稱上點(diǎn)擊右鍵->”Run On Server…”),打開瀏覽器訪問URL: http://localhost:8080/ServletRegister/ ,如果沒有錯(cuò)誤,應(yīng)該會(huì)看到以下結(jié)果 -

填寫上面表單項(xiàng),并執(zhí)行提交數(shù)據(jù)信息,注冊(cè)成功如下所示 -

現(xiàn)在查看servlet_user表中的數(shù)據(jù),如下所示 -

mysql> select * from servlet_user;
+----+-------+--------+------------------+------+
| id | name  | passwd | email            | city |
+----+-------+--------+------------------+------+
|  1 | maxsu | 123456 | maxsu@yiibai.com | 廣州 |
+----+-------+--------+------------------+------+
1 row in set