• Web


    IDEA项目创建

    创建项目时记得选择Web Application模版。
    image.png

    Tomcat安装

    brew install tomcat
    

    image.png

    Tomcat配置

    添加项目启动配置。
    image.png

    加入刚才用brew安装的Tomcat安装目录。

    /usr/local/Cellar/tomcat/9.0.33/libexec
    

    image.png

    添加默认的启动root。
    image.png

    运行web服务

    image.png
    image.png
    可以看到,我们的web服务跑起来了。

    让我们跑一个hello world。

    Hello World!<br/>
    <%
    out.println("你的 IP 地址 " + request.getRemoteAddr());
    %>
    

    image.png

    OK了,配置一下热更新吧:
    image.png

    虽然这样方便,不用按键了,但不是推荐的省电方案哦(

    解决语法高亮

    假如界面上jsp代码没有高亮。
    image.png

    打开项目结构。
    image.png

    添加项目依赖。
    image.png

    添加Tomcat的jar包。

    image.png

    问题解决。
    image.png

    Mysql安装

    brew install mysql
    

    image.png

    运行并测试一下mysql的安装,这里不设密码了,反正只自己连接。
    image.png

    Mysql连接库下载

    下载地址:https://dev.mysql.com/downloads/connector/j/

    选择平台无关版本。
    image.png
    选择直接下载。
    image.png

    下载好后解压到WEB-INF到lib下面:
    image.png

    设置lib文件为项目lib。
    image.png

    测试数据

    创建一下测试数据库。

    CREATE DATABASE RUNNOOB;
    USE RUNNOOB;
    CREATE TABLE `websites` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
      `url` varchar(255) NOT NULL DEFAULT '',
      `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
      `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
    

    image.png

    插入一些数据。

    INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '菜鸟教程', 'http://www.runoob.com', '5892', ''), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
    

    image.png

    JDBC测试

    新建一个sql_test.java:

    import java.sql.*;
    
    public class sql_test {
        // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
    //    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    //    static final String DB_URL = "jdbc:mysql://localhost:3306/RUNNOOB";
    
        // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
        static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
        static final String DB_URL = "jdbc:mysql://localhost:3306/RUNNOOB?useSSL=false&serverTimezone=UTC";
    
    
        // 数据库的用户名与密码,需要根据自己的设置
        static final String USER = "root";
        static final String PASS = "";
    
        public static void main(String[] args) {
            Connection conn = null;
            Statement stmt = null;
            try {
                // 注册 JDBC 驱动
                Class.forName(JDBC_DRIVER);
    
                // 打开链接
                System.out.println("连接数据库...");
                conn = DriverManager.getConnection(DB_URL, USER, PASS);
    
                // 执行查询
                System.out.println(" 实例化Statement对象...");
                stmt = conn.createStatement();
                String sql;
                sql = "SELECT id, name, url FROM websites";
                ResultSet rs = stmt.executeQuery(sql);
    
                // 展开结果集数据库
                while (rs.next()) {
                    // 通过字段检索
                    int id = rs.getInt("id");
                    String name = rs.getString("name");
                    String url = rs.getString("url");
    
                    // 输出数据
                    System.out.print("ID: " + id);
                    System.out.print(", 站点名称: " + name);
                    System.out.print(", 站点 URL: " + url);
                    System.out.print("
    ");
                }
                // 完成后关闭
                rs.close();
                stmt.close();
                conn.close();
            } catch (SQLException se) {
                // 处理 JDBC 错误
                se.printStackTrace();
            } catch (Exception e) {
                // 处理 Class.forName 错误
                e.printStackTrace();
            } finally {
                // 关闭资源
                try {
                    if (stmt != null) stmt.close();
                } catch (SQLException se2) {
                }// 什么都不做
                try {
                    if (conn != null) conn.close();
                } catch (SQLException se) {
                    se.printStackTrace();
                }
            }
            System.out.println("Goodbye!");
        }
    }
    
    

    输出结果,显示JDBC安装正常。

    连接数据库...
     实例化Statement对象...
    ID: 1, 站点名称: Google, 站点 URL: https://www.google.cm/
    ID: 2, 站点名称: 淘宝, 站点 URL: https://www.taobao.com/
    ID: 3, 站点名称: 菜鸟教程, 站点 URL: http://www.runoob.com
    ID: 4, 站点名称: 微博, 站点 URL: http://weibo.com/
    ID: 5, 站点名称: Facebook, 站点 URL: https://www.facebook.com/
    Goodbye!
    

    JSTL标准标签库下载

    下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/

    找一个最新的下载。
    image.png

    将lib里的两个jar拷贝到Tomcat的lib目录。
    image.png

    连接库配置

    回到IDEA,和Tomcat一样的地方,添加整个lib文件夹为依赖。
    image.png

    测试JSP连接数据库

    测试的jsp文件:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
             pageEncoding="UTF-8"%>
    <%@ page import="java.io.*,java.util.*,java.sql.*"%>
    <%@ page import="javax.servlet.http.*,javax.servlet.*" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
    
    <html>
    <head>
        <title>SELECT 操作</title>
    </head>
    <body>
    <!--
    JDBC 驱动名及数据库 URL
    数据库的用户名与密码,需要根据自己的设置
    useUnicode=true&characterEncoding=utf-8 防止中文乱码
     -->
    <sql:setDataSource var="snapshot" driver="com.mysql.cj.jdbc.Driver"
                       url="jdbc:mysql://localhost:3306/RUNNOOB?useUnicode=true&characterEncoding=utf-8"
                       user="root"  password=""/>
    
    <sql:query dataSource="${snapshot}" var="result">
        SELECT * from websites;
    </sql:query>
    <h1>JSP 数据库实例 - 菜鸟教程</h1>
    <table border="1" width="100%">
        <tr>
            <th>ID</th>
            <th>站点名</th>
            <th>站点地址</th>
        </tr>
        <c:forEach var="row" items="${result.rows}">
            <tr>
                <td><c:out value="${row.id}"/></td>
                <td><c:out value="${row.name}"/></td>
                <td><c:out value="${row.url}"/></td>
            </tr>
        </c:forEach>
    </table>
    
    </body>
    </html>
    

    运行结果:
    image.png

  • 相关阅读:
    新框架的选择
    ‘’火星文‘’的解析
    http.request请求及在node中post请求参数解析
    http.request的请求
    ReactNative环境配置的坑
    return false与return true的区别
    什么是DOM,DOM level 123 的区别是什么
    页面重绘和回流以及优化
    时代人物之任正非
    Adriod与HTML+JS的交互
  • 原文地址:https://www.cnblogs.com/licsber/p/web-jsp-env.html
Copyright © 2020-2023  润新知