利用JavaWeb实现课程信息添加

整体架构 :HTML+JAVABEAN+SERVLET

一.首先先简单介绍一下所需要的组件            原文地址 https://www.cnblogs.com/zll20153246/p/7871723.html

        Servlet 是在服务器上运行的小程序,用来动态的显示 Web 内容。这个流程大概就是

  1. 客户端发送请求至服务器端;
  2. 服务器将请求信息发送至 Servlet;
  3. Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
  4. 服务器将响应返回给客户端。

        JavaBean 说白了就是类而已,只不过现在改了一个名字而已,之前写的时候都是一堆类混在一起,现在就是把他们拆开,按照不同的功能放在一起,一般我们用四个包来区分。

  1.       Bean包:这个包里面放的都是一些属性类,一般数据库里面有什么表,相应的就要有什么bean,当然表里面的数据在bean里面也要全有,比如有一个Student表,表里面有id,name那么在该包下就要建立相应的Studentbean(Studentbean只是一个名字,你自己可以随便取)类,有私有变量id和name,与之对应的get和set函数。
  2.      implement 包:这个包就是放一些类,类里面的函数就是用来对数据库进行操作的,例如增删改查。
  3.      Utils包:这包里面放的就是用来连接数据库的函数,在Dao函数里面直接调用这个就能连接数据库,代码复用。
  4.      Servlet包:这个包放置的就是servlet类,用来网页与后台数据的交互,下面讲解一个简单的登录界面html+javabean+Servlet.

二.环境搭建

1.jdk安装及环境变量配置   (教程地址)https://blog.csdn.net/konggu_youlan/article/details/79942800?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163447732616780255219166%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163447732616780255219166&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-79942800.first_rank_v2_pc_rank_v29&utm_term=jdk%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187

2.tomcat安装及配置 (教程地址)https://blog.csdn.net/qq_40881680/article/details/83582484?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163443660816780357257243%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163443660816780357257243&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-83582484.first_rank_v2_pc_rank_v29&utm_term=tomcat%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187

3.eclipse配置tomcat (教程地址)https://blog.csdn.net/yerenyuan_pku/article/details/51830104?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163447374416780366566928%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163447374416780366566928&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-51830104.first_rank_v2_pc_rank_v29&utm_term=eclipse%E9%85%8D%E7%BD%AEtomcat&spm=1018.2226.3001.4187

 三.建立动态web项目

右侧Dynamic Web Project

建立好之后,各个项目组件在工程目录中的放置位置如上图所示,src/main/java中是按照MVC三层架构进行的包分配

接下来编写相应的组件放到对应的文件目录中(我先把组件的分布情况放到了上面,这样可以更清楚有哪些组件)

四.设计组件

1.设计前端html页面

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    body {
        background-color: #77a3dd;
    }
</style>

<body>
    <form action="/kechengHTML/addServlet" method="POST">
        <table align="center" border="1" width="500">
            <tr>
                <td>课程名称 : </td>
                <td>
                    <input type="text" placeholder="请输入课程名称" name="classname" />
                </td>
            </tr>
            <tr>
                <td>任课教师:</td>
                <td>
                    <input type="text" placeholder="请输入教师名称" name="teachername" />
                </td>
            </tr>
            <tr>
                <td>上课地点:</td>
                <td>
                    <input type="text" placeholder="请输入上课地点" name="place" />
                </td>
            </tr>
            <tr align="center">
                <td colspan="2">
                    <input type="submit" value="提交" />
                    <input type="reset" value="重置" />
                </td>
            </tr>
        </table>
    </form>
</body>

</html>

2.addservlet(前端表单提交的数据被servlet获取)前台表单路径action 为addservlet

package Servlet;

import java.io.IOException;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Bean.UserInformation;
import implement.implementSQL;

/**
 * Servlet implementation class addServlet
 */
@WebServlet("/addServlet")
public class addServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        request.setCharacterEncoding("UTF-8");
          String teachername=request.getParameter("teachername");
          String classname= request.getParameter("classname");
          String place= request.getParameter("place");
          UserInformation User = new  UserInformation();
          User.setClassname(classname);
          User.setTeachername(teachername);
          User.setPlace(place);
          implementSQL ADD = new  implementSQL();
          try {
            ADD.add(User);
        } catch (SQLException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        this.doGet(request, response);
    }

}

3.编写javebean

package Bean;

public class UserInformation {
	private String  teachername;
    private String  place;
    private String  classname;
    public String getTeachername() {
       return teachername;
    }
   public void setTeachername(String teachername) {
        this.teachername = teachername;
    }
    public String getPlace() {
        return place;
   }
   public void setPlace(String place) {
        this.place = place;
    }
    public String getClassname() {
        return classname;     }
   public void setClassname(String classname) {
       this.classname = classname;
   }
}

4.编写Dao层(执行sql语句的代码)

package implement;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import Bean.UserInformation;
import Utils.JDBCUtils;

public class implementSQL {
public void add(UserInformation user) throws SQLException {
	 Connection connection = JDBCUtils.getConnection();
	
	 String sql = "insert into kecheng(teachername,classname,place) values(?,?,?)";
     PreparedStatement preparedStatement = null;
      try {
      //创建语句传输对象
      preparedStatement = connection.prepareStatement(sql);
      
     preparedStatement = connection.prepareStatement(sql);
      preparedStatement.setString(1, user.getTeachername());
     preparedStatement.setString(2, user.getClassname());
      preparedStatement.setString(3, user.getPlace());
    preparedStatement.executeUpdate();
      } catch (SQLException e) {
         // TODO Auto-generated catch block
        e.printStackTrace();
     }finally {
         //关闭资源
          
     	JDBCUtils.release((com.mysql.jdbc.Connection) connection,  preparedStatement);
         //DBUtil.close(connection);
     }
     
 }

}

 现在所有的组件都已经建立完毕,只需要放到相应的工程目录下,并将项目部署到tomcat,在eclipse中启动tomcat即可

ps:还有一些细节需要注意,连接数据库需要导入jar包,放到lib目录中并添加至构建路径,jar包的版本一定要和数据库的版本对应,否则会连接失败

posted @ 2021-10-17 17:26  山海自有归期  阅读(411)  评论(0编辑  收藏  举报