Itellij Idea 创建 Java Web 项目

2019-03-16  本文已影响0人  JinYx

一、创建 Java Web 项目

  1. 点击 File ——> New ——> Project... 打开创建项目面板,左侧选中 Java,右边配置下 Project SDK (JDK) 的路径,下方的 Additional Libraries and Frameworks: 选择 Java EE ——> Web Application,勾上下面的 Create web.xml, 点击 Next 进入下一步;然后填写项目名,点击 Finish,完成项目的创建


    图1. 创建Java Web项目
  2. 展开项目路径,在 web/WEB-INFO 的目录下创建 classes 和 lib 两个文件夹,分别用于放编译后的字节码文件 和 jar 包


    图2. 新建classes和lib目录
  3. 点击 File ——> Project Structure... 选中左侧的 Modules,点击右侧的 Paths 标签,将 Compiler output 选中 Use module compile output path;设置 Output path 和 Test output path 为刚才创建的 classes 目录;


    图3. 项目输出路径设置
  4. 切换到 Paths 右侧的 Dependencies 标签,点击 \color{#AA0000}{+} ,选择 JARs or directories...,然后在弹出的面板 Choose Categorys Of Selected Files 中选择 Jar Directory,点击OK,完成项目设置

    图4. 项目依赖设置

二、配置 Tomcat 服务器

  1. 完成上面的设置之后,接下来就是 Tomcat 的配置了,点击菜单栏的 Run ——> Edit Configurations... 在弹出的面板中,点击左上角的 \color{#AA0000}{+} ,选择 Tomcat Server ——> Local 开始 Tomcat服务器的配置

    图5. 添加 Tomcat Server
  2. 填写服务器的Name,配置 Tomcat 的安装目录,其余的采用默认即可,当然,也可以修改 Http port,服务器的端口号,避免一些端口占用的问题;此时,下方还有一个红色的警告,需要设置 Artifacts。


    图6. Tomcat 基础配置
  3. 切到右侧的 Deployment 标签,点击右侧的 \color{#AA0000}{+} ,选择 Artifact... 默认如下图7 所示,此时可点击右侧的修改图标,修改 Artifact 的Name信息; 点击 OK,完成 Tomcat 的配置

    图7. 部署Tomcat
  4. 启动 Tomcat 服务器验证,点击菜单栏的 Run ——> Run.. 选择刚才设置的 Tomcat8, 也可以直接点击 菜单栏右侧的 绿色三角形 运行按钮,启动 Tomcat 服务;默认在浏览器打开的是项目 web 目录下的 index.jsp

三、访问 MySQL 数据库

  1. 访问 SQL Server 需要添加 jdbc的jar包,而访问 MySQL数据库需要添加 mysql-connector 的 jar包;将jar包导入到之前创建的 lib 目录下,然后右键jar包,选择 Add to library


    图8. 导入mysql-connect.jar
  2. 验证
      现在正好有一个数据库lservice,下面有张video表,存了一些视频数据;可以用来查询验证


    图9. video 表
public class Test {
    public static void main(String[] args) {
        QueryVideoDao qvd = new QueryVideoDaoImpl();
        System.out.println(qvd.queryVideo(1));
    }
}
图10. 查询id=1的结果

QueryVideoDaoImpl 查询代码如下:

public class QueryVideoDaoImpl implements QueryVideoDao {

    @Override
    public String queryVideo(long id) {
        String result = "";
        String querySQL = "SELECT * FROM video WHERE id = ?";
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            conn = DBHelper.getInstance().getConnection();
            ps = conn.prepareStatement(querySQL);
            ps.setLong(1, id);
            rs = ps.executeQuery();
            if (rs.next()) {
                result = rs.getString("title");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBHelper.getInstance().close(conn, ps, rs);
        }
        return result;
    }
}

DBHelper.java

public class DBHelper {

    private static DBHelper mInstance;

    private String driverName = "";
    private String url = "";
    private String user = "";
    private String password = "";

    private DBHelper() {
        InputStream ism = getClass().getClassLoader().getResourceAsStream("com/你的/路径/sql.properties");

        Properties prop = new Properties();

        try {
            prop.load(ism);
        } catch (IOException e) {
            e.printStackTrace();
        }

        driverName = prop.getProperty("driver");
        url = prop.getProperty("url");
        user = prop.getProperty("user");
        password = prop.getProperty("pwd");
    }

    public static DBHelper getInstance() {
        if (mInstance == null) {
            synchronized (DBHelper.class) {
                if (mInstance == null) {
                    mInstance = new DBHelper();
                }
            }
        }
        return mInstance;
    }


    public Connection getConnection() {
        try {
            Class.forName(driverName);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        try {
            return DriverManager.getConnection(url, user, password);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return null;
    }

    public void close(Connection conn, PreparedStatement stat, ResultSet rs) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (stat != null) {
            try {
                stat.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

上面用 ClassLoader 加载的 sql配置文件如下

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/需要访问的数据库名?useUnicode=true&characterEncoding=UTF-8
user=root
pwd=数据库密码

四、接口验证

  1. 通过调用 Servlet 接口,去访问数据库,获取想要的数据,要写 Servlet 接口,同样需要在lib目录下添加 servlet-api.jar; 该jar包在之前装的 tomcat 的 lib 目录下有


    图11. servlet-api.jar
  2. 在需要写Servlet接口的目录下,右键,选择 New ——> Servlet 创建文件; 勾选 Create JavaEE 6 annotated class 会以注解的形式配置 api接口路径,不勾选则需要手动在 web.xml 配置


    图12. 创建 Servlet

    web.xml 配置如下:

    <servlet>
        <servlet-name>FirstServlet</servlet-name>
        <servlet-class>com.lpen.servlet.FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FirstServlet</servlet-name>
        <!-- 此处表示api路径. -->
        <url-pattern>/video/FirstServlet</url-pattern>
    </servlet-mapping>
  1. 以上面访问数据库为例,写个接口接收参数id,用来查询数据表中对应id的数据
public class FirstServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String id = request.getParameter("id");
        String result;
        if (id == null || "".equals(id)) {
            result = "id 不能为空";
        } else  {
            long vid = Long.parseLong(id);
            QueryVideoDao qvd = new QueryVideoDaoImpl();
            result = qvd.queryVideo(vid);
        }

        response.setHeader("Content-type", "text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter writer = response.getWriter();
        writer.println(result);
        writer.flush();
        writer.close();
    }
}
  1. 在浏览器中访问接口地址,添加参数id,返回结果如下;至此,整个调用接口,访问数据库,返回数据的过程就结束了


    图13.浏览器访问接口,输出结果
上一篇 下一篇

猜你喜欢

热点阅读