完成一個JavaWeb項目的全過程(從軟件安裝到代碼)

內容目錄:javascript

1、軟件安裝教程html

2、擡頭看路:前輩們的經驗前端

3、最近的一個程序展現java

4、近期學習總結與體會mysql

 

第一大步驟:軟件安裝教程;web

 

1.eclipse安裝sql

 

http://www.javashuo.com/article/p-sygpkwpa-ba.html數據庫

 

2.tomcat安裝瀏覽器

 

https://blog.csdn.net/u014543872/article/details/79568712tomcat

 

3.數據庫安裝

 

http://www.cnblogs.com/sshoub/p/4321640.html

 

4.Sqlyang破解版下載

 

http://www.onlinedown.net/soft/24926.htm

 

第二大步驟:擡頭看路

 

1.如何利用eclipse建立一個java web項目?

 

https://blog.csdn.net/qq_25646191/article/details/78776136

 

2.根據教程實現一個完整的javaweb項目

 

http://www.javashuo.com/article/p-ohlvqizu-z.html

 

3.javaweb學習路線

 

http://www.javashuo.com/article/p-rsmxjdxw-y.html

 

http://www.javashuo.com/article/p-hjwczcjg-a.html

Javaweb學習總結

http://www.cnblogs.com/xdp-gacl/p/3729033.html

Java Web項目開發到底須要掌握哪些技術?

http://www.javashuo.com/article/p-fteosyue-bp.html

零基礎如何系統學習Java Web?

https://www.zhihu.com/question/31151832

 

 

安利代碼:

  1 package com.hjf.dao;
  2 
  3 import java.sql.Connection;
  4 import java.sql.ResultSet;
  5 import java.sql.SQLException;
  6 import java.sql.Statement;
  7 import java.util.ArrayList;
  8 import java.util.List;
  9 
 10 import com.hjf.entity.Course;
 11 import com.hjf.util.DBUtil;
 12 
 13 /**
 14  * 課程Dao
 15  * Dao層操做數據
 16  * @author Hu
 17  *
 18  */
 19 public class CourseDao {
 20 
 21     /**
 22      * 添加
 23      * @param course
 24      * @return
 25      */
 26     public boolean add(Course course) {
 27         String sql = "insert into course(name, teacher, classroom) values('" + course.getName() + "','" + course.getTeacher() + "','" + course.getClassroom() + "')";
 28         //建立數據庫連接
 29         Connection conn = DBUtil.getConn();
 30         Statement state = null;
 31         boolean f = false;
 32         int a = 0;
 33         
 34         try {
 35             state = conn.createStatement();
 36             state.executeUpdate(sql);
 37         } catch (Exception e) {
 38             e.printStackTrace();
 39         } finally {
 40             //關閉鏈接
 41             DBUtil.close(state, conn);
 42         }
 43         
 44         if (a > 0) {
 45             f = true;
 46         }
 47         return f;
 48     }
 49 
 50     /**
 51      * 刪除
 52      * 
 53      * @param id
 54      * @return
 55      */
 56     public boolean delete (int id) {
 57         boolean f = false;
 58         String sql = "delete from course where id='" + id + "'";
 59         
 60         Connection conn = DBUtil.getConn();
 61         Statement state = null;
 62         int a = 0;
 63         
 64         try {
 65             state = conn.createStatement();
 66             a = state.executeUpdate(sql);
 67         } catch (SQLException e) {
 68             e.printStackTrace();
 69         } finally {
 70             DBUtil.close(state, conn);
 71         }
 72         
 73         if (a > 0) {
 74             f = true;
 75         }
 76         return f;
 77     }
 78 
 79     /**
 80      * 修改
 81      * @param name
 82      * @param pass
 83      */
 84     public boolean update(Course course) {
 85         String sql = "update course set name='" + course.getName() + "', teacher='" + course.getTeacher() + "', classroom='" + course.getClassroom()
 86             + "' where id='" + course.getId() + "'";
 87         Connection conn = DBUtil.getConn();
 88         Statement state = null;
 89         boolean f = false;
 90         int a = 0;
 91 
 92         try {
 93             state = conn.createStatement();
 94             a = state.executeUpdate(sql);
 95         } catch (SQLException e) {
 96             e.printStackTrace();
 97         } finally {
 98             DBUtil.close(state, conn);
 99         }
100         
101         if (a > 0) {
102             f = true;
103         }
104         return f;
105     }
106     
107     /**
108      * 驗證課程名稱是否惟一
109      * true --- 不惟一
110      * @param name
111      * @return
112      */
113     public boolean name(String name) {
114         boolean flag = false;
115         String sql = "select name from course where name = '" + name + "'";
116         Connection conn = DBUtil.getConn();
117         Statement state = null;
118         ResultSet rs = null;
119         
120         try {
121             state = conn.createStatement();
122             rs = state.executeQuery(sql);
123             while (rs.next()) {
124                 flag = true;
125             }
126         } catch (SQLException e) {
127             e.printStackTrace();
128         } finally {
129             DBUtil.close(rs, state, conn);
130         }
131         return flag;
132     }
133     
134     /**
135      * 經過ID獲得課程信息
136      * @param id
137      * @return
138      */
139     public Course getCourseById(int id) {
140         String sql = "select * from course where id ='" + id + "'";
141         Connection conn = DBUtil.getConn();
142         Statement state = null;
143         ResultSet rs = null;
144         Course course = null;
145         
146         try {
147             state = conn.createStatement();
148             rs = state.executeQuery(sql);
149             while (rs.next()) {
150                 String name = rs.getString("name");
151                 String teacher = rs.getString("teacher");
152                 String classroom = rs.getString("classroom");
153                 course = new Course(id, name, teacher, classroom);
154             }
155         } catch (Exception e) {
156             e.printStackTrace();
157         } finally {
158             DBUtil.close(rs, state, conn);
159         }
160         
161         return course;
162     }
163     
164     /**
165      * 經過name獲得Course
166      * @param name
167      * @return
168      */
169     public Course getCourseByName(String name) {
170         String sql = "select * from course where name ='" + name + "'";
171         Connection conn = DBUtil.getConn();
172         Statement state = null;
173         ResultSet rs = null;
174         Course course = null;
175         
176         try {
177             state = conn.createStatement();
178             rs = state.executeQuery(sql);
179             while (rs.next()) {
180                 int id = rs.getInt("id");
181                 String teacher = rs.getString("teacher");
182                 String classroom = rs.getString("classroom");
183                 course = new Course(id, name, teacher, classroom);
184             }
185         } catch (Exception e) {
186             e.printStackTrace();
187         } finally {
188             DBUtil.close(rs, state, conn);
189         }
190         
191         return course;
192     }
193     
194     /**
195      * 查找
196      * @param name
197      * @param teacher
198      * @param classroom
199      * @return
200      */
201     public List<Course> search(String name, String teacher, String classroom) {
202         String sql = "select * from course where ";
203         if (name != "") {
204             sql += "name like '%" + name + "%'";
205         }
206         if (teacher != "") {
207             sql += "teacher like '%" + teacher + "%'";
208         }
209         if (classroom != "") {
210             sql += "classroom like '%" + classroom + "%'";
211         }
212         List<Course> list = new ArrayList<>();
213         Connection conn = DBUtil.getConn();
214         Statement state = null;
215         ResultSet rs = null;
216 
217         try {
218             state = conn.createStatement();
219             rs = state.executeQuery(sql);
220             Course bean = null;
221             while (rs.next()) {
222                 int id = rs.getInt("id");
223                 String name2 = rs.getString("name");
224                 String teacher2 = rs.getString("teacher");
225                 String classroom2 = rs.getString("classroom");
226                 bean = new Course(id, name2, teacher2, classroom2);
227                 list.add(bean);
228             }
229         } catch (SQLException e) {
230             e.printStackTrace();
231         } finally {
232             DBUtil.close(rs, state, conn);
233         }
234         
235         return list;
236     }
237     
238     /**
239      * 所有數據
240      * @param name
241      * @param teacher
242      * @param classroom
243      * @return
244      */
245     public List<Course> list() {
246         String sql = "select * from course";
247         List<Course> list = new ArrayList<>();
248         Connection conn = DBUtil.getConn();
249         Statement state = null;
250         ResultSet rs = null;
251 
252         try {
253             state = conn.createStatement();
254             rs = state.executeQuery(sql);
255             Course bean = null;
256             while (rs.next()) {
257                 int id = rs.getInt("id");
258                 String name2 = rs.getString("name");
259                 String teacher2 = rs.getString("teacher");
260                 String classroom2 = rs.getString("classroom");
261                 bean = new Course(id, name2, teacher2, classroom2);
262                 list.add(bean);
263             }
264         } catch (SQLException e) {
265             e.printStackTrace();
266         } finally {
267             DBUtil.close(rs, state, conn);
268         }
269         
270         return list;
271     }
272 
273 }
CourseDao。java
 1 package com.hjf.entity;
 2 
 3 public class Course {
 4 
 5     private int id;
 6     private String name;
 7     private String teacher;
 8     private String classroom;
 9     
10     public int getId() {
11         return id;
12     }
13     public void setId(int id) {
14         this.id = id;
15     }
16     public String getName() {
17         return name;
18     }
19     public void setName(String name) {
20         this.name = name;
21     }
22     public String getTeacher() {
23         return teacher;
24     }
25     public void setTeacher(String teacher) {
26         this.teacher = teacher;
27     }
28     public String getClassroom() {
29         return classroom;
30     }
31     public void setClassroom(String classroom) {
32         this.classroom = classroom;
33     }
34     
35     public Course() {}
36     
37     public Course(int id, String name, String teacher, String classroom) {
38         this.id = id;
39         this.name = name;
40         this.teacher = teacher;
41         this.classroom = classroom;
42     }
43     
44     public Course(String name, String teacher, String classroom) {
45         this.name = name;
46         this.teacher = teacher;
47         this.classroom = classroom;
48     }
49 }
Course.java
 1 package com.hjf.service;
 2 
 3 import java.util.List;
 4 
 5 import com.hjf.dao.CourseDao;
 6 import com.hjf.entity.Course;
 7 
 8 /**
 9  * CourseService
10  * 服務層
11  * @author Hu
12  *
13  */
14 public class CourseService {
15 
16     CourseDao cDao = new CourseDao();
17     
18     /**
19      * 添加
20      * @param course
21      * @return
22      */
23     public boolean add(Course course) {
24         boolean f = false;
25         if(!cDao.name(course.getName())) {
26             cDao.add(course);
27             f = true;
28         }
29         return f;
30     }
31     
32     /**
33      * 刪除
34      */
35     public void del(int id) {
36         cDao.delete(id);
37     }
38     
39     /**
40      * 修改
41      * @return 
42      */
43     public void update(Course course) {
44         cDao.update(course);
45     }
46     
47     /**
48      * 經過ID獲得一個Course
49      * @return 
50      */
51     public Course getCourseById(int id) {
52         return cDao.getCourseById(id);
53     }
54 
55     /**
56      * 經過Name獲得一個Course
57      * @return 
58      */
59     public Course getCourseByName(String name) {
60         return cDao.getCourseByName(name);
61     }
62     
63     /**
64      * 查找
65      * @return 
66      */
67     public List<Course> search(String name, String teacher, String classroom) {
68         return cDao.search(name, teacher, classroom);
69     }
70     
71     /**
72      * 所有數據
73      * @return 
74      */
75     public List<Course> list() {
76         return cDao.list();
77     }
78 }
CourseService.java
  1 package com.hjf.servlet;
  2 
  3 import java.io.IOException;
  4 import java.util.List;
  5 import javax.servlet.ServletException;
  6 import javax.servlet.annotation.WebServlet;
  7 import javax.servlet.http.HttpServlet;
  8 import javax.servlet.http.HttpServletRequest;
  9 import javax.servlet.http.HttpServletResponse;
 10 
 11 import com.hjf.entity.Course;
 12 import com.hjf.service.CourseService;
 13 
 14 @WebServlet("/CourseServlet")
 15 public class CourseServlet extends HttpServlet {
 16     
 17     private static final long serialVersionUID = 1L;
 18 
 19     CourseService service = new CourseService();
 20     
 21     /**
 22      * 方法選擇
 23      */
 24     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 25         req.setCharacterEncoding("utf-8");
 26         String method = req.getParameter("method");
 27         
 28         if ("add".equals(method)) {
 29             add(req, resp);
 30         } else if ("del".equals(method)) {
 31             del(req, resp);
 32         } else if ("update".equals(method)) {
 33             update(req, resp);
 34         } else if ("search".equals(method)) {
 35             search(req, resp);
 36         } else if ("getcoursebyid".equals(method)) {
 37             getCourseById(req, resp);
 38         } else if ("getcoursebyname".equals(method)) {
 39             getCourseByName(req, resp);
 40         } else if ("list".equals(method)) {
 41             list(req, resp);
 42         }
 43     }
 44 
 45     /**
 46      * 添加
 47      * @param req
 48      * @param resp
 49      * @throws IOException 
 50      * @throws ServletException 
 51      */
 52     private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
 53         req.setCharacterEncoding("utf-8");
 54         //獲取數據
 55         String name = req.getParameter("name");
 56         String teacher = req.getParameter("teacher");
 57         String classroom = req.getParameter("classroom");
 58         Course course = new Course(name, teacher, classroom);
 59         
 60         //添加後消息顯示
 61         if(service.add(course)) {
 62             req.setAttribute("message", "添加成功");
 63             req.getRequestDispatcher("add.jsp").forward(req,resp);
 64         } else {
 65             req.setAttribute("message", "課程名稱重複,請從新錄入");
 66             req.getRequestDispatcher("add.jsp").forward(req,resp);
 67         }
 68     }
 69     
 70     /**
 71      * 所有
 72      * @param req
 73      * @param resp
 74      * @throws ServletException 
 75      */
 76     private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
 77         req.setCharacterEncoding("utf-8");
 78         
 79         List<Course> courses = service.list();
 80         req.setAttribute("courses", courses);
 81         req.getRequestDispatcher("list.jsp").forward(req,resp);
 82     }
 83 
 84     /**
 85      * 經過ID獲得Course
 86      * @param req
 87      * @param resp
 88      * @throws ServletException 
 89      */
 90     private void getCourseById(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
 91         req.setCharacterEncoding("utf-8");
 92         int id = Integer.parseInt(req.getParameter("id"));
 93         Course course = service.getCourseById(id);
 94         req.setAttribute("course", course);
 95         req.getRequestDispatcher("detail2.jsp").forward(req,resp);
 96     }
 97 
 98     /**
 99      * 經過名字查找
100      * 跳轉至刪除
101      * @param req
102      * @param resp
103      * @throws IOException
104      * @throws ServletException 
105      */
106     private void getCourseByName(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
107         req.setCharacterEncoding("utf-8");
108         String name = req.getParameter("name");
109         Course course = service.getCourseByName(name);
110         if(course == null) {
111             req.setAttribute("message", "查無此課程!");
112             req.getRequestDispatcher("del.jsp").forward(req,resp);
113         } else {
114             req.setAttribute("course", course);
115             req.getRequestDispatcher("detail.jsp").forward(req,resp);
116         }
117     }
118     
119     /**
120      * 刪除
121      * @param req
122      * @param resp
123      * @throws IOException
124      * @throws ServletException 
125      */
126     private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
127         req.setCharacterEncoding("utf-8");
128         int id = Integer.parseInt(req.getParameter("id"));
129         service.del(id);
130         req.setAttribute("message", "刪除成功!");
131         req.getRequestDispatcher("del.jsp").forward(req,resp);
132     }
133     
134     /**
135      * 修改
136      * @param req
137      * @param resp
138      * @throws IOException
139      * @throws ServletException 
140      */
141     private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
142         req.setCharacterEncoding("utf-8");
143         int id = Integer.parseInt(req.getParameter("id"));
144         String name = req.getParameter("name");
145         String teacher = req.getParameter("teacher");
146         String classroom = req.getParameter("classroom");
147         Course course = new Course(id, name, teacher, classroom);
148         
149         service.update(course);
150         req.setAttribute("message", "修改爲功");
151         req.getRequestDispatcher("CourseServlet?method=list").forward(req,resp);
152     }
153     
154     /**
155      * 查找
156      * @param req
157      * @param resp
158      * @throws ServletException 
159      */
160     private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
161         req.setCharacterEncoding("utf-8");
162         String name = req.getParameter("name");
163         String teacher = req.getParameter("teacher");
164         String classroom = req.getParameter("classroom");
165         List<Course> courses = service.search(name, teacher, classroom);
166         req.setAttribute("courses", courses);
167         req.getRequestDispatcher("searchlist.jsp").forward(req,resp);
168     }
169 }
CourseServlet.java
 1 package com.hjf.util;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8 import java.sql.Statement;
 9 
10 /**
11  * 數據庫鏈接工具
12  * @author Hu
13  *
14  */
15 public class DBUtil {
16     
17     public static String db_url = "jdbc:mysql://localhost:3306/course";
18     public static String db_user = "root";
19     public static String db_pass = "root";
20     
21     public static Connection getConn () {
22         Connection conn = null;
23         
24         try {
25             Class.forName("com.mysql.jdbc.Driver");//加載驅動
26             conn = DriverManager.getConnection(db_url, db_user, db_pass);
27         } catch (Exception e) {
28             e.printStackTrace();
29         }
30         
31         return conn;
32     }
33     
34     /**
35      * 關閉鏈接
36      * @param state
37      * @param conn
38      */
39     public static void close (Statement state, Connection conn) {
40         if (state != null) {
41             try {
42                 state.close();
43             } catch (SQLException e) {
44                 e.printStackTrace();
45             }
46         }
47         
48         if (conn != null) {
49             try {
50                 conn.close();
51             } catch (SQLException e) {
52                 e.printStackTrace();
53             }
54         }
55     }
56     
57     public static void close (ResultSet rs, Statement state, Connection conn) {
58         if (rs != null) {
59             try {
60                 rs.close();
61             } catch (SQLException e) {
62                 e.printStackTrace();
63             }
64         }
65         
66         if (state != null) {
67             try {
68                 state.close();
69             } catch (SQLException e) {
70                 e.printStackTrace();
71             }
72         }
73         
74         if (conn != null) {
75             try {
76                 conn.close();
77             } catch (SQLException e) {
78                 e.printStackTrace();
79             }
80         }
81     }
82 
83     public static void main(String[] args) throws SQLException {
84         Connection conn = getConn();
85         PreparedStatement pstmt = null;
86         ResultSet rs = null;
87         String sql ="select * from course";
88         pstmt = conn.prepareStatement(sql);
89         rs = pstmt.executeQuery();
90         if(rs.next()){
91             System.out.println("空");
92         }else{
93             System.out.println("不空");
94         }
95     }
96 }
DBUtil.java

add.jsp

 

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 
 9 </head>
10 <body>
11     <%
12          Object message = request.getAttribute("message");
13          if(message!=null && !"".equals(message)){
14      
15     %>
16          <script type="text/javascript">
17               alert("<%=request.getAttribute("message")%>");
18          </script>
19     <%} %>
20     <div align="center">
21         <h1 style="color: black;">課程信息刪除</h1>
22         <a href="index.jsp">返回主頁</a>
23         <form action="CourseServlet?method=getcoursebyname" method="post" onsubmit="return check()">
24             <div class="a">
25                 課程名稱<input type="text" id="name" name="name"/>
26             </div>
27             <div class="a">
28                 <button type="submit" class="b">查&nbsp;&nbsp;&nbsp;找</button>
29             </div>
30         </form>
31     </div>
32     <script type="text/javascript">
33         function check() {
34             var name = document.getElementById("name");;
35             
36             //非空
37             if(name.value == '') {
38                 alert('課程名稱爲空');
39                 name.focus();
40                 return false;
41             }
42         }
43     </script>
44 </body>
45 </html>
del.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9     .a{
10         margin-top: 20px;
11     }
12     .b{
13         font-size: 20px;
14         width: 160px;
15         color: white;
16         background-color: greenyellow;
17     }
18     .tb, td {
19         border: 1px solid black;
20         font-size: 22px;
21     }
22 </style>
23 </head>
24 <body>
25     <div align="center">
26         <h1 style="color: black;">課程信息刪除</h1>
27         <a href="index.jsp">返回主頁</a>
28         <table class="tb">
29             <tr>
30                 <td>課程名稱</td>
31                 <td>${course.name}</td>
32             </tr>
33             <tr>
34                 <td>任課教師</td>
35                 <td>${course.teacher}</td>
36             </tr>
37             <tr>
38                 <td>上課地點</td>
39                 <td>${course.classroom}</td>
40             </tr>
41         </table>
42         <div class="a">
43             <a onclick="return check()" href="CourseServlet?method=del&id=${course.id}">刪&nbsp;&nbsp;&nbsp;除</a>
44         </div>
45     </div>
46     <script type="text/javascript">
47         function check() {
48             if (confirm("真的要刪除嗎?")){
49                 return true;
50             }else{
51                 return false;
52             }
53         }
54     </script>
55 </body>
56 </html>
detail.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 
 9 </head>
10 <body>
11     <%
12          Object message = request.getAttribute("message");
13          if(message!=null && !"".equals(message)){
14      
15     %>
16          <script type="text/javascript">
17               alert("<%=request.getAttribute("message")%>");
18          </script>
19     <%} %>
20     <div align="center">
21         <h1 style="color: black;">課程信息修改</h1>
22         <a href="index.jsp">返回主頁</a>
23         <form action="CourseServlet?method=update" method="post" onsubmit="return check()">
24             <div class="a">
25                 課程名稱<input type="text" id="name" name="name" value="${course.name}"/>
26             </div>
27             <div class="a">
28                 任課教師<input type="text" id="teacher" name="teacher" value="${course.teacher}"/>
29             </div>
30             <div class="a">
31                 上課地點<input type="text" id="classroom" name="classroom" value="${course.classroom}"/>
32             </div>
33             <input type="hidden" id="id" name="id" value="${course.id}"/>
34             <div class="a">
35                 <button type="submit" class="b">修&nbsp;&nbsp;&nbsp;改</button>
36             </div>
37         </form>
38     </div>
39     <script type="text/javascript">
40         function check() {
41             var name = document.getElementById("name");;
42             var teacher = document.getElementById("teacher");
43             var classroom = document.getElementById("classroom");
44             
45             //非空
46             if(name.value == '') {
47                 alert('課程名稱爲空');
48                 name.focus();
49                 return false;
50             }
51             if(teacher.value == '') {
52                 alert('教師爲空');
53                 teacher.focus();
54                 return false;
55             }
56             if(classroom.value == '') {
57                 alert('上課地點爲空');
58                 classroom.focus();
59                 return false;
60             }
61             
62             //教師
63             if(teacher.value != '王建民' && teacher.value != '王輝' && teacher.value != '劉丹' && teacher.value != '劉立嘉' && teacher.value != '楊子光'){
64                 alert('教師名稱錯誤');
65                 return false;
66             }
67             
68             //教室:
69             if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
70                 alert('上課地點錯誤');
71                 return false;
72             }
73         }
74     </script>
75 </body>
76 </html>
detail2.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>首頁</title>
 8 
 9 </head>
10 <body>
11     <div align="center">
12         
13         <div class="a">
14             <a href="add.jsp">課程信息添加</a>
15         </div>
16         <div class="a">
17             <a href="CourseServlet?method=list">課程信息修改</a>
18         </div>
19         <div class="a">
20             <a href="del.jsp">課程信息刪除</a>
21         </div>
22         <div class="a">
23             <a href="search.jsp">課程信息查詢</a>
24         </div>
25     </div>
26 </body>
27 </html>
index.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>Insert title here</title>
 9 
10 </head>
11 <body>
12     <%
13          Object message = request.getAttribute("message");
14          if(message!=null && !"".equals(message)){
15      
16     %>
17          <script type="text/javascript">
18               alert("<%=request.getAttribute("message")%>");
19          </script>
20     <%} %>
21     <div align="center">
22         <h1 style="color: black;">課程信息列表</h1>
23         <a href="index.jsp">返回主頁</a>
24         <table class="tb">
25             <tr>
26                 <td>id</td>
27                 <td>課程名稱</td>
28                 <td>任課教師</td>
29                 <td>上課地點</td>
30                 <td align="center" colspan="2">操做</td>
31             </tr>
32             <c:forEach items="${courses}" var="item">
33                 <tr>
34                     <td>${item.id}</td>
35                     <td>${item.name}</td>
36                     <td>${item.teacher}</td>
37                     <td>${item.classroom}</td>
38                     <td><a href="CourseServlet?method=getcoursebyid&id=${item.id}">修改</a></td>
39                 </tr>
40             </c:forEach>
41         </table>
42     </div>
43 </body>
44 </html>
list.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 
 9 </head>
10 <body>
11     <div align="center">
12         <h1 style="color: black;">課程信息查詢</h1>
13         <a href="index.jsp">返回主頁</a>
14         <form action="CourseServlet?method=search" method="post" onsubmit="return check()">
15             <div class="a">
16                 課程名稱<input type="text" id="name" name="name"/>
17             </div>
18             <div class="a">
19                 任課教師<input type="text" id="teacher" name="teacher" />
20             </div>
21             <div class="a">
22                 上課地點<input type="text" id="classroom" name="classroom" />
23             </div>
24             <div class="a">
25                 <button type="submit" class="b">查&nbsp;&nbsp;&nbsp;詢</button>
26             </div>
27         </form>
28     </div>
29     <script type="text/javascript">
30         function check() {
31             var name = document.getElementById("name");;
32             var teacher = document.getElementById("teacher");
33             var classroom = document.getElementById("classroom");
34             
35             //非空
36             if(name.value == '' && teacher.value == '' && classroom.value == '') {
37                 alert('請填寫一個條件');
38                 return false;
39             }
40         }
41     </script>
42 </body>
43 </html>
search.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>Insert title here</title>
 9 
10 </head>
11 <body>
12     <div align="center">
13         <h1 style="color: black;">課程信息列表</h1>
14         <a href="index.jsp">返回主頁</a>
15         <table class="tb">
16             <tr>
17                 <td>id</td>
18                 <td>課程名稱</td>
19                 <td>任課教師</td>
20                 <td>上課地點</td>
21             </tr>
22             <!-- forEach遍歷出adminBeans -->
23             <c:forEach items="${courses}" var="item" varStatus="status">
24                 <tr>
25                     <td>${item.id}</td>
26                     <td><a>${item.name}</a></td>
27                     <td>${item.teacher}</td>
28                     <td>${item.classroom}</td>
29                 </tr>
30             </c:forEach>
31         </table>
32     </div>
33 </body>
34 </html>
searchlist.jsp

導入jar包(問度娘):

 

效果展現:

 

 

第三步驟:我最近的學習感覺+一個程序詳解+知識點

模塊一:

I.簡介JavaWEB程序

JavaWeb項目就是一個應用程序,你不要覺得它有多麼神祕。你天天打開的QQ就一個應用程序,你在手機上打開的微信,百度地圖等等,這些都是應用程序。

不一樣的是,QQ是一個本地客戶端程序,它須要你在本身的電腦上安裝一個客戶端,而後你打開QQ,能夠登陸,聊天。

QQ確定也分客戶端和服務端,咱們電腦上裝的就是客戶端,你要知道的一點是,咱們發送消息,發送到哪裏去了呢?

沒錯,確定是發送到QQ的服務器上了,那裏保存着咱們的全部數據。

想一想也不可能在本地,由於咱們在電腦上發送的消息,在手機QQ上不是也能看到嗎?這就說明,確定是上傳到它的服務器而後保存下來了。

而Web項目是什麼呢?

它也是一個應用程序,只不過它的客戶端是運行在瀏覽器上的。

咱們打開瀏覽器,訪問一個地址,好比 http://www.jianshu.com/

這個就是咱們的訪問路徑,咱們經過這個URL向簡書的服務器提交請求,而後服務器進行處理,給你迴應。

接下來,咱們就看到出來一個網頁。

咱們在這個網頁上能夠寫文章,點贊,收藏,等等。

咱們的每一步操做,其實都和服務器作了一個交互。

好比一個登陸功能,當咱們鼠標點擊那個登陸按鈕,瀏覽器就向服務器提交了一個請求,服務器進行處理,而後操做數據庫。最終,它會得出一個結果,就是說,到底能不能讓你登陸,總會有個說法。

若是你密碼寫錯了,它可能就會得出一個用戶名或密碼錯誤的結論。而後,這個信息會從服務器返回到前臺,前臺就是瀏覽器。

所謂的前臺就是你的瀏覽器,沒什麼神祕的。

前臺接受到後臺傳過來的信息後,進行一些處理,而後給你個提示,好比,告訴你用戶名或密碼錯誤。

這就是一個完整的交互過程。

如今隨着網速愈來愈好,瀏覽器的性能愈來愈強大,我想web確定是將來的大趨勢。畢竟,誰都不但願在電腦上安裝一大堆客戶端吧。

只用一個瀏覽器多好。

有了web,我只須要有一個瀏覽器,而後就能經過互聯網獲取我想要的資源了。這樣不是很美妙嗎?

II.不建議一開始就看視頻,先把那些基礎理論知識過一次,內心有點踏實了,到了須要敲大量代碼的階段再看視頻。

 

模塊三:知識點

javaweb製做流程的形象理解

 

1.有關數據庫的知識點:

 【MYSQL的概述】

  • 什麼是數據庫:

數據庫就是一個文件系統,須要經過標準SQL語句才能訪問.

【MYSQL的安裝和卸載】

安裝和卸載的過程記錄下服務器安裝的路徑和數據文件存放的路徑.卸載的時候將這個兩個路徑下的文件一併都刪除掉.

【建立數據庫】

語法:

    * create database 數據庫名;

【查看數據庫】

* 查看數據庫服務器中的全部的數據庫:show databases;

【刪除數據庫】

* drop database 數據庫名稱;

【修改數據庫】

* alter database 數據庫名 

【其餘的數據庫操做命令】

* 切換數據庫:use 數據庫名;

* 查看正在使用的數據庫:select database();

【建立表】

create table 表名(

   字段名 類型(長度) 約束,

   字段名 類型(長度) 約束

);

單表約束:

    * 主鍵約束:primary key

    * 惟一約束:unique

    * 非空約束:not null

建立一個分類表:

    分類ID int類型主鍵 自動增加

    分類名稱 字符串類型 長度20

create table category(

    cid int primary key auto_increment,

    cname varchar(20)

);

 

***** 注意:建表以前必定先選擇數據庫.

【查看錶】

查看數據庫中的全部表:show tables;

查看錶結構:desc 表名;

【刪除表】

drop table 表名;

【修改表】

alter table 表名 add 列名 類型(長度) 約束;     --修改表添加列.

alter table 表名 modify 列名 類型(長度) 約束;  --修改表修改列的類型長度及約束.

alter table 表名 change 舊列名 新列名 類型(長度) 約束;  --修改表修改列名.

alter table 表名 drop 列名;                  --修改表刪除列.

rename table 表名 to 新表名;                 --修改表名

【插入記錄】

語法:

* insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入某些列

* insert into 表 values (值1,值2,值3..); --向表中插入全部列

【修改記錄】

語法:

* update 表名 set 字段名=值,字段名=值 [where 條件];

【刪除記錄】

語法:

* delete from 表名 [where 條件];

【查詢記錄】

語法:

* select [distinct]*[列名,列名] from 表 [where 條件].

建立商品表:

建立商品表:

create table products(

    pid int primary key auto_increment,

    pname varchar(20),

    price double,

     pnum int,

     cno int,

    pdate timestamp

);

【多表查詢】

  • 交叉鏈接查詢(基本不會使用-獲得的是兩個表的乘積)

語法:

* select * from A,B;

2.有關前端頁面的知識點:

【HTML的概述】

  • 什麼是HTML

HTML:Hyper Text Markup Language 超文本標記語言

l  超文本:比文本功能更增強大

l  標記語言:經過一組標籤對內容進行描述的一門語言

  • 爲何學習HTML

HTML是設計頁面基礎

  • 在哪些地方可使用HTML

設計頁面的時候均可以使用HTML

  • 如何使用HTML

HTML的語法和規範

l  HTML文件的擴展名是.html或者是.htm

l  HTML文件是由頭和體組成

l  HTML這組標籤是不區分大小寫

l  HTML的標記一般是由開始標籤和結束標籤組成:<b>內容</b>  <br/>

【HTML的字體標籤】

<font>標籤

<font 屬性名=」屬性值」>文字</font>

l  size:控制字體大小.最小1 最大7

l  color:控制字體顏色. 使用英文設置 ,使用16進制數設置

l  face:控制字體.

【HTML的排版標籤】

<hn>標題標籤

<h1>b標題</h1>

<p>段落標籤

<p>一段文字</p>

<br/>換行標籤

<br/>表明換行

<hr/>水平線標籤

<b>字體加粗

<b>文字</b>

<i>斜體標籤

<i>斜體</i>

【HTML的圖片標記】

<img />

l  src:圖片的路徑

l  width:圖片寬度

l  height:圖片的高度

l  alt:圖片提示

圖片路徑:

l  分紅相對路徑和絕對路徑

l  相對路徑:

n  ./  :表明當前路徑

n  ../ :表明上一級路徑

【超連接標籤】

<a>超連接</a>

l  href:超連接跳轉的路徑

l  target:打開方式

n  _self:在自身頁面打開

n  _blank:打開一個新窗口

表格的屬性:

l  border  :表格邊框

l  width   :表格寬度

l  height  :表格高度

l  align   :水平方向對齊方式 left center right

l  bgcolor :背景色

 3.使用JDBC完成對於分類的CRUD的操做

【JDBC的回顧】

  • JDBC的概念:

JDBC:Java Data Base Connectivity.

  • 驅動:

 

  • JDBC的開發步驟:

步驟一:註冊驅動.

步驟二:得到鏈接.
    步驟三:建立執行SQL語句對象.

步驟四:釋放資源.

  • JDBC的API的詳解:

DriverManager:

    * 註冊驅動:

    * 得到鏈接:

Connection:

    * 得到執行SQL語句對象.

        * Statement createStatement();

        * PreparedStatement prepareStatement(String sql);

        * CallableStatement prepareCall(String sql);

    * 進行事務管理:

        * setAutoCommit(boolean flag);

        * commit();

        * rollback();

Statement:

    * 執行SQL語句:

        * int executeUpate(String sql); --執行insert update delete語句.

        * ResultSet executeQuery(String sql); --執行select語句.

        * boolean execute(String sql); --執行select返回true 執行其餘的語句返回false.

 

ResultSet:

    * 遍歷結果集:next();

    * 得到結果集中的數據.getXXX(int c); getXXX(String name);

  1 package com.itheima.jdbc.utils;
  2 
  3 import java.io.FileInputStream;
  4 import java.io.FileNotFoundException;
  5 import java.io.IOException;
  6 import java.sql.Connection;
  7 import java.sql.DriverManager;
  8 import java.sql.ResultSet;
  9 import java.sql.SQLException;
 10 import java.sql.Statement;
 11 import java.util.Properties;
 12 
 13 /**
 14  * JDBC的工具類
 15  * @author apple
 16  *
 17  */
 18 public class JDBCUtils {
 19     public static final String DRIVERCLASS;
 20     public static final String URL;
 21     public static final String USERNAME;
 22     public static final String PASSWORD;
 23     
 24     static{
 25         // 得到屬性文件中的數據.
 26         Properties properties = new Properties();
 27         try {
 28             properties.load(new FileInputStream("src/db.properties"));
 29         } catch (FileNotFoundException e) {
 30             e.printStackTrace();
 31         } catch (IOException e) {
 32             e.printStackTrace();
 33         }
 34         
 35         DRIVERCLASS = properties.getProperty("jdbc.driverClass");
 36         URL = properties.getProperty("jdbc.url");
 37         USERNAME = properties.getProperty("jdbc.username");
 38         PASSWORD = properties.getProperty("jdbc.password");
 39     }
 40     
 41     // 加載驅動:
 42     public static void loadDriver(){
 43         try {
 44             Class.forName(DRIVERCLASS);
 45         } catch (ClassNotFoundException e) {
 46             // TODO Auto-generated catch block
 47             e.printStackTrace();
 48         }
 49     }
 50     
 51     // 得到鏈接:
 52     public static Connection getConnection(){
 53         loadDriver();
 54         Connection conn = null;
 55         try {
 56             conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
 57         } catch (SQLException e) {
 58             // TODO Auto-generated catch block
 59             e.printStackTrace();
 60         }
 61         return conn;
 62     }
 63     
 64     // 釋放資源:
 65     public static void release(Statement stmt,Connection conn){
 66         if(stmt != null){
 67             try {
 68                 stmt.close();
 69             } catch (SQLException e) {
 70                 // TODO Auto-generated catch block
 71                 e.printStackTrace();
 72             }
 73             stmt = null;
 74         }
 75         
 76         if(conn != null){
 77             try {
 78                 conn.close();
 79             } catch (SQLException e) {
 80                 e.printStackTrace();
 81             }
 82             conn = null;
 83         }
 84     }
 85     
 86     public static void release(ResultSet rs,Statement stmt,Connection conn){
 87         if(rs!= null){
 88             try {
 89                 rs.close();
 90             } catch (SQLException e) {
 91                 e.printStackTrace();
 92             }
 93             rs = null;
 94         }
 95         if(stmt != null){
 96             try {
 97                 stmt.close();
 98             } catch (SQLException e) {
 99                 // TODO Auto-generated catch block
100                 e.printStackTrace();
101             }
102             stmt = null;
103         }
104         
105         if(conn != null){
106             try {
107                 conn.close();
108             } catch (SQLException e) {
109                 e.printStackTrace();
110             }
111             conn = null;
112         }
113     }
114 }
代碼實現之抽取工具類:

4. 什麼是XML

XML全稱爲Extensible Markup Language,意思是可擴展的標記語言。XML語法上和HTML比較類似,但HTML中的元素是固定的,而XML的標籤是能夠由用戶自定義的。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5">
 3     <servlet>
 4         <servlet-name>HelloMyServlet</servlet-name>
 5         <servlet-class>cn.itcast.HelloMyServlet</servlet-class>
 6     </servlet>
 7     <servlet-mapping>
 8         <servlet-name>HelloMyServlet</servlet-name>
 9         <url-pattern>/hello</url-pattern>
10     </servlet-mapping>
11 </web-app>
配置文件
1 <?xml version="1.0" encoding="UTF-8"?>
2 <persons>
3     <person id="p001">
4         <name>張三</name>
5     </person>
6     <person id="p002">
7         <name>李四</name>
8     </person>
9 </persons>
存放數據

1.1.1.1   XML 語法

l  XML文檔聲明

<?xml version="1.0" encoding="UTF-8"?>

  1. 文檔聲明必須爲<?xml開頭,以?>結束;
  2. 文檔聲明必須從文檔的0行0列位置開始;
  3. 文檔聲明只有三個屬性:

a)       versioin:指定XML文檔版本。必須屬性,由於咱們不會選擇1.1,只會選擇1.0;

b)       encoding:指定當前文檔的編碼。可選屬性,默認值是utf-8;

c)        standalone:指定文檔獨立性。可選屬性,默認值爲yes,表示當前文檔是獨立文檔。若是爲no表示當前文檔不是獨立的文檔,會依賴外部文件。

 

l  元素

<servlet>

  1. 元素是XML文檔中最重要的組成部分,
  2. 普通元素的結構開始標籤、元素體、結束標籤組成。例如:<hello>你們好</hello>
  3. 元素體:元素體能夠是元素,也能夠是文本,例如:<b><a>你好</a></b>
  4. 空元素:空元素只有開始標籤,而沒有結束標籤,但元素必須本身閉合,例如:<c/>
  5. 元素命名:

a)       區分大小寫

b)       不能使用空格,不能使用冒號:

c)        不建議以XML、xml、Xml開頭

  1. 良好的XML文檔,必須有一個根元素。

 

l  屬性

<web-app version="2.5">

  1. 屬性是元素的一部分,它必須出如今元素的開始標籤中
  2. 屬性的定義格式:屬性名=屬性值,其中屬性值必須使用單引或雙引
  3. 一個元素能夠有0~N個屬性,但一個元素中不能出現同名屬性
  4. 屬性名不能使用空格、冒號等特殊字符,且必須以字母開頭

l  註釋

XML的註釋與HTML相同,即以「<!--」開始,以「-->」結束。註釋內容會被XML解析器忽略!

 

l  轉義字符

XML中的轉義字符與HTML同樣。

由於不少符號已經被XML文檔結構所使用,因此在元素體或屬性值中想使用這些符號就必須使用轉義字符,例如:「<」、「>」、「’」、「」」、「&」。

5.Servlet

【Servlet的概述】

  • 什麼是Servlet:

是運行在服務器端的一小的Java程序,接收和響應從客戶端發送請求.

  • Servlet的做用:

處理客戶端的請求,而且對請求做出響應.

  • 使用Servlet:

Servlet的入門:

* 編寫一個類實現Servlet接口.

public class ServletDemo1 implements Servlet{

 

    @Override

    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {

        // System.out.println("");

        response.getWriter().println("Hello Servlet...");

    }

...

}

 

* 配置Servlet到WEB服務器.

  <!-- 配置Servlet -->

  <servlet>

    <!-- Servlet的名稱 -->

    <servlet-name>aaa</servlet-name>

    <!-- Servlet的類的全路徑 -->

    <servlet-class>com.itheima.servlet.demo1.ServletDemo1</servlet-class>

  </servlet>

 

  <!-- 配置Servlet的映射 -->

  <servlet-mapping>

    <!-- Servlet的名稱 -->

    <servlet-name>aaa</servlet-name>

    <!-- Servlet的訪問路徑 -->

    <url-pattern>/servletDemo1</url-pattern>

  </servlet-mapping>

相關文章
相關標籤/搜索