• 完成一个JavaWeb项目的全过程(从软件安装到代码)


    内容目录:

    一、软件安装教程

    二、抬头看路:前辈们的经验

    三、最近的一个程序展示

    四、近期学习总结与体会

    第一大步骤:软件安装教程;

    1.eclipse安装

    https://www.cnblogs.com/ForestDeer/p/6647402.html

    2.tomcat安装

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

    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项目

    https://www.cnblogs.com/optblogs/p/7880996.html

    3.javaweb学习路线

    https://www.cnblogs.com/aishangJava/p/5970576.html

    https://blog.csdn.net/yl1712725180/article/details/79329865

    Javaweb学习总结

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

    Java Web项目开发到底需要掌握哪些技术?

    https://blog.csdn.net/javaniuniu/article/details/51880901

    零基础如何系统学习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          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>

  • 相关阅读:
    箭头函数 -ES6
    遍历
    类型转换
    遍历数组
    【四】将vue项目打包至阿里云服务器,并进行配置nginx
    IdentityServer4 系列 【四】-- 客户端使用jquery获取token,并使用token获取Api端数据
    IdentityServer4 系列 【三】-- 资源Api端开发
    IdentityServer4 系列 【二】-- 创建鉴权端,使用PostMan获取Token
    IdentityServer4 系列 【一】-- 简介
    【三】阿里云服务器安装docker,结合.net core mvc应用程序运行容器
  • 原文地址:https://www.cnblogs.com/daisy99lijing/p/10091948.html
Copyright © 2020-2023  润新知