美文网首页
Itellij Idea 创建 Java Web 项目

Itellij Idea 创建 Java Web 项目

作者: JinYx | 来源:发表于2019-03-16 19:42 被阅读0次

    一、创建 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.浏览器访问接口,输出结果

    相关文章

      网友评论

          本文标题:Itellij Idea 创建 Java Web 项目

          本文链接:https://www.haomeiwen.com/subject/sdaauqtx.html