JavaWeb 笔记 6 Servlet + JDBC
数据库操作
这里以 MySQL Workbench 为例
创建数据库打开你的 MySQL 实例,在 Schemas 窗口中的空白位置右键,Create Schema
将其命名为自定义的数据库名。他的字符集设置为 utf8,utf8_general_ci
然后在 Schemas 窗口中,点击刚刚创建的数据库的 🔽 符号展开数据库。
创建数据表右键 Tables,点击 Create Table,
在里面自定义表名,数据库字段。初学者先直接用鼠标操作。表名需要为小写
Column Name 字段名
数据库里不区分大小写,但是好习惯是字段名为大驼峰
Datatype 数据类型
INT 整数型
VARCHAR() 可伸缩长度类型,可回收多余
CHAR 不会自动回收
PK - Primary Key 主键
NN - Not Null 非空
UQ - Unique 独特(这个数据只能在整张表同一列中出现一次)
B - Binary 二进制
UN - Unsigned 无标号
ZF - Zero Fill 填充零
AI - Auto Increment 自增
G - Generated ...
JavaWeb 笔记 5 Servlet 入门
这段视频没有声音,我大概猜测一下
在 src / main / java 目录下创建一个 Servlet。名字随意
里面的代码应该如下:
package com.tootaio.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/LoginServlet")public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; public LoginSe ...
JavaWeb 笔记 4 隐含对象
Request 对象首先我们在 login.jsp 中写上:
<form action="userLogin.jsp" method="GET"> <label for="email">邮箱:</label> <input type="email" name="email" id="email" /> <label for="password">邮箱:</label> <input type="password" name="password" id="password" /> <input type="submit" value="登录" /></form>
getParameter 函数用于获取 HTTP GET / POST 的参数
然后 ...
JavaWeb 笔记 3 友好页面
在 WEB-INF 文件下右键 New > Other 搜寻 XML
然后找到 XML File
文件名一定要叫 web.xml
通过点击项目名,然后找到 Java EE Tools > Generate Deployment Descriptor Stubs。等一段时间
Eclipse 会在 src / main / webapp / WEB-INF 目录下生成一个 web.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee; http://xmlns.jcp.org/xml/ns/javaee/web- ...
JavaWeb 笔记 2 导出导入 JavaWeb 项目
导出项目在项目名称点击右键,点击 Export > WAR
项目名千万别改,只需要确定导出位置。
可以在导出之后,修改 .war 文件的项目名
导入项目首先确保该项目有没有 SQL 文件,有的话先导入进数据库。
打开 Eclipse,在 Project Explorer 的空白位置点击右键,Import > Import
选择 General > Existing Projects into Workspace,然后点击 Next
选择我们需要导入的项目目录,然后点击 Finish
然后右键修改他的 Build Path,将 JRE 和 Server Runtime 改为现有工作空间的配置。
作业 1 JSP 错误页面
首先创建一个错误页面 error.jsp
在它的第一行加上 isErrorPage="true",将其声明为错误页面
<%@ page language="java" isErrorPage="true" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
然后在会出错的页面上的第一行加上 errorPage="error.jsp",将其错误页面指向 error.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp"%>
笔记 1 JSP 语法
脚本程序<%// 这是个代码片段// 第一行代码// 第二行代码%>
变量声明<%! int i = 0 %><%! int a, b, c; %><%! Circle a = new Circle(2.0); %>
表达式今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
注释<%-- 该部分注释在网页中不会被显示--%>
指令<%@ page ... %> 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等<%@ include ... %> 包含其他文件<%@ taglib ... %> 引入标签库的定义,可以是自定义标签
隐含对象
request
response
out
session
application
config
pageContext
page
exception
MySQL 安装教学
下载地址 https://dev.mysql.com/downloads/windows/installer/8.0.html
有两个下载按钮,如果网线好可以选择 2M 的那个在线安装包。然后点击 No thanks, just start my download
打开安装包之后,
选择 Developer default
Python 可以忽略,他会给你个提示框,点击 Continue 就行
然后显示需要下载的 MySQL 软件列表,点击 Execute,等待下载
下载完毕之后,点击 Next,然后点击 Install,等待安装
安装完毕之后,点击 Next
接下来都是 Next,直到要你输入密码
然后也是一直 Next、Execute、Finish……
最后让你检查你的服务器是否正常操作,输入密码检查就行了
然后点击 Execute
安装完毕之后,会自动打开 MySQL Workbench
这玩意跟 Navicat 一样,只不过是 MySQL 自带的,比较靠谱。
Eclipse 和 Tomcat 配置教学
环境编译器:eclipse IDE 2021-09JDK:jdk1.8.0_301Tomcat:9.0.53
配置 TomCat 服务器到 https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html 下载 Java JDK
选择自己的版本,如大部分同学的 Windows 64 位架构就选 Windows x64
安装之后添加上环境变量
在环境变量中加上 JAVA_HOME,值是 Java JDK 的安装目录 C:\Program Files\Java\jdk1.8.0_301
在 Path 里加上 %JAVA_HOME%\bin 和 %JAVA_HOME\jre
到 http://tomcat.apache.org/ 下载 Tomcat,直接解压到 C 盘目录下
配置 Eclipse创建一个工作环境,先不用创建项目
在菜单栏点击 Window > Preferences 以下操作都在这个界面完成
先配置 Java找到 Java > Installed ...
React 笔记
善于提取组件,把组件拆分成更小的组件
props 只读。
不要直接修改 state ,应该调用 this.setState()否则不会重新渲染组件。
构造函数是唯一可以给 this.state 赋值的地方
state 的更新可能是异步的出于性能考虑,React 可能会把多个 setState() 调用合并成一个调用。因为 this.props 和 this.state 可能会异步更新,所以你不要依赖他们的值来更新下一个状态。让 setState() 接收一个函数而不是一个对象。这个函数用上一个 state 作为第一个参数,将此次更新被应用时的 props 做为第二个参数
state 的更新会被合并
React 事件的命名采用小驼峰式(camelCase),而不是纯小写。使用 JSX 语法时你需要传入一个函数作为事件处理函数,而不是一个字符串。在 React 中另一个不同点是你不能通过返回 false 的方式阻止默认行为。你必须显式的使用 preventDefault 。
class 的方法默认不会绑定 this。如果你忘记绑定 this.handleClick 并把它传入了 onCli ...