java web 開發入門實例


學習是個技巧活,關鍵是要找到重點的地方,新手在這方面的坑尤其多。看別人的教程一步一步的跟着做,隔幾步就遇到一個新知識點,忍不住就百度往深處了解,一晃半天就過去了。

有的知識點要深入學習的,有的是了解下就行的。我個人感覺這個度的把握是最難的。當然這也是饒不過去的坑。

最近跟着網上的一個教程學習JAVA WEB開發,將中間遇到的坑和教訓標記下:

1、JAVAC編譯時,提示找不到自定義類的問題。(如果是用記事本編輯,用命令行Javac編譯,需要 在環境變量中,設置CLASSPATH 指向你的classes目錄);

2、關於JDBC:MYSQL的端口號,如果沒有指定,會連接失敗。切記根據本機的端口設置正確

3、有條件還是用ECLIPSE來編譯執行,可以從控制台看到詳細的錯誤日志。

 

==================================

附:入門代碼及注釋

1、文件及目錄結構(存在TOMCAT的WEBAPPS目錄下)

 

2、登錄頁面效果

 

3、主要代碼(運行前提:需安裝JDK及MYSQL)

(1)、在MYSQL 中創建數據庫user ,創建用戶表tb_user;

mysql -u root -p 123456 ;
create database user;


use user;
create table tb_user (
    username varchar(20) primary key,
    password varchar(20));

  

(2)創建兩個JSP文件 (index.jsp  mesage.jsp)

 index.jsp 中需要用到login.jpg ,要放在images目錄下面。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JAVA 學習Reg</title>
</head>
<body>
    <center><img src="images/login.jpg"/></center>
    <center><font size=5 color="blue"><B>用戶注冊頁面</B></font></center>
    <form action="RegServlet" method="post">  <!-- 指定將該表單交給RegServlet來處理-->
        <table align="center" width="450" border="0">
            <!--用戶名行-->
            <tr>
                <td align="right">Username:</td>
                <td>
                    <input type="text" name="username">
                </td>
            </tr>
            <!--密碼行-->
            <tr>
                <td align="right">Password:</td>
                <td>
                    <input type="password" name="password">
                </td>
            </tr>
            <!--確認密碼行-->
            <tr>
                <td align="right">Confirm Password:</td>
                <td>
                    <input type="password" name="repassword">
                </td>
            </tr>
            <!--提交 重置行-->
            <tr>
                <td colspan="2" align="center">
                    <input type="submit" value="Reg">
                    <input type="reset" value="Reset">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

message.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<body>
    <center><img src="images/regfail.jpg"/></center>
    <%
        String info = (String)request.getAttribute("info");
            if(info != null) {
                out.print("<center>");
                out.print("<font size=10>");
                out.print("<B>");
                out.print(info);
                out.print("</B>");
                out.print("</font>");
                out.print("</center>");
        }
    %>
</body>

  

l

 以上就是展示層,結束后,可以在瀏覽器中輸入http://localhost:8080/reg/index.jsp看下效果。(注意你TOMCAT的端口號,我用的是8080)

(3)、建立 JAVA BEAN模型層

共有4個文件,分別放在beans  dao  service  utils 目錄下

文件名為 :UserBean.java           UserDao.java       SignInServlet.java    DataBaseUtil.java

UserBean.java

package beans;

/**
用戶信息javabean
**/

public class UserBean {
    private String username;
    private String password;

    public String getUsername() {
        return username;
    }

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

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

UserDao.java

package dao;

import utils.DataBaseUtil;
import beans.UserBean;

import java.sql.*;

public class UserDao {

    public boolean isUserExist(String username) {
        //create a connection
        Connection connection = DataBaseUtil.getConnection();

        String sql ="select * from tb_user WHERE username=?";
        try{
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, username);
            ResultSet resultSet = ps.executeQuery();
            if(!resultSet.next()) {
                return true;
            }
        }catch(SQLException e) {
            System.out.println(e.toString());
            e.printStackTrace();
        }catch(NullPointerException f){
			f.printStackTrace();
		}finally {
            DataBaseUtil.closeConnection(connection);
        }
        return false;
    }

    public boolean isPasswordConfirm(String password, String repassword) {
        return password.equals(repassword);
    }

    public void saveUser(UserBean user) {
        Connection connection = DataBaseUtil.getConnection();

        String sql = "insert into tb_user (username, password) values(?,?) ";
        try {
            PreparedStatement ps = connection.prepareStatement(sql);
            ps.setString(1, user.getUsername());
            ps.setString(2, user.getPassword());

            ps.executeUpdate();
        }catch(SQLException e) {
            e.printStackTrace();
        }finally {
            DataBaseUtil.closeConnection(connection);
        }
    }
}

 

DataBaseUtil.java
 1 package utils;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6 
 7 public class DataBaseUtil {
 8 
 9     public static Connection getConnection() {
10         Connection connection = null;
11         try{
12             Class.forName("com.mysql.jdbc.Driver");
13             String url = "jdbc:mysql://localhost:3306/user";
14             connection = DriverManager.getConnection(url, "root", "123456");
15             return connection;
16 
17         }catch(ClassNotFoundException nfe) {
18             nfe.printStackTrace();
19         }catch(SQLException sqle) {
20             sqle.printStackTrace();
21         }
22         return connection;
23     }
24 
25     public static void closeConnection(Connection connection) {
26         if(connection != null) {
27             try{
28                 connection.close();
29             }catch(SQLException sqle) {
30                 sqle.printStackTrace();
31             }
32         }
33     }
34 }

 

(3)、控制層 SignInServlet

SignInServlet.java

 
 1 package service;
 2 
 3 import beans.UserBean;
 4 import dao.UserDao;
 5 
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10 import java.io.IOException;
11 
12 public class SignInServlet extends HttpServlet{
13 
14     @Override
15     public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
16         String username = request.getParameter("username");
17         String password = request.getParameter("password");
18         String repassword = request.getParameter("repassword");
19 
20         UserDao userDao = new UserDao();
21         if(username != null && !username.isEmpty()) {
22             //用戶名不存在可以注冊
23             if(userDao.isUserExist(username) && userDao.isPasswordConfirm(password, repassword)) {
24                 UserBean userBean = new UserBean();
25                 userBean.setPassword(password);
26                 userBean.setUsername(username);
27                 userDao.saveUser(userBean);
28                 request.setAttribute("info", "Congratulations! Reg successfully!");
29             }else {
30                 if(!userDao.isUserExist(username))
31                     request.setAttribute("info", "Sorry! Username exists!"+username+" "+password);
32                 if(!userDao.isPasswordConfirm(password, repassword))
33                     request.setAttribute("info", "Sorry! Password not confirmed!");
34             }
35         }
36         //forward to message.jsp
37         request.getRequestDispatcher("message.jsp").forward(request, response);
38     }
39 }

(4)、配置web.xml文件

 在WEB-INF目錄下創建web.xml文件,指定程序的相關配置信息

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
 3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
 5          version="3.1">
 6  <!-- 歡迎頁面 -->
 7     <welcome-file-list>
 8         <welcome-file>index.jsp</welcome-file>
 9     </welcome-file-list>         
10     <servlet>
11             <servlet-name>SignInServlet</servlet-name>
12             <servlet-class>service.SignInServlet</servlet-class>
13     </servlet>
14     <servlet-mapping>
15         <servlet-name>SignInServlet</servlet-name>
16         <url-pattern>/RegServlet</url-pattern>
17     </servlet-mapping>
18 </web-app>

(5)、下載相關JAR包

   從網上下載JDBC-MySQL驅動,放入lib目錄中(我用的是:mysql-connector-java-5.1.30.jar

6)、編譯JAVA文件

 打開reg/web-inf/CLASSES  文件夾,按住shift在窗口中點鼠標右鍵,選擇 “在此處打開命令窗口w” 進入cmd窗口,先進入相關的子目錄 ,一個一個的執行 javac **.java 將文件編譯為.class文件;

 

上述工作完成后,啟動瀏覽器,輸入 http://localhost:8080/reg/  如果能打開頁面如下,祝賀你,你的  WEB項目成功了;

 

  

 

 

真誠感謝 Easy sir  :

新手推薦JSP+JavaBean+Servlet MVC模式用戶注冊模塊

代碼基本照搬,改了JSP的編碼類型為 UTF-8 ,順序略有調整。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM