1 Maven概述
why?
擅长管理大型项目
自动管理你需要的jar包
自动进行下载我们需要的jar包。
1.1 Maven的概念模型
jar java rar java工程的压缩包
war web rar web工程的压缩包
1.2 Maven的仓库
1.2.1仓库中存放的内容
- Maven自身运行所需要的插件
- 第三方框架(spring/mybatis/springmvc)和工具类的jar包
- 我们自己开发的maven项目安装后的jar包
2 maven的安装(软件)
2.1 下载maven
2.2 安装maven
将maven压缩包解压, 复制到没有中文没有空格的目录下,即安装完毕
2.3 配置环境变量
MAVEN_HOME=E:\apache-maven-3.2.1
Path=%MAVEN_HOME%\bin;... ...
2.4 配置本地仓库
1、找到Maven解压目录\conf\settings.xml
2、在setting.xml 文件中找到 localRepository 标签
3、将 <localRepository>/path/to/local/repo</localRepository>从注释中取出
4、将标签体内容修改为自定义的Maven仓库目录
2.5.1 将/资料/本地仓库/xxx.zip 解压
复制 E盘根目录下
2.5.2 配置本地仓库
在maven的安装目录中 apache-maven-3.2.1/conf/settings.xml 配置本地仓库:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>E:\\Maven_Repository</localRepository>
2.5.3 配置阿里云远程仓库
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
2.6 测试maven安装成功
打开cmd本地控制台, 输入 mvn -version
3 IDEA整合本地Maven
4 idea创建maven工程
4.1 创建跳过骨架的java项目
4.1.1 how
标准的java项目骨架
4.1.2 创建java代码
package cn.itcast.dao;
public class ProductDao {
public void add() {
System.out.println("--------------------1 ProductDao.add()... ...");
}
public void del() {
System.out.println("--------------------2 ProductDao.del()... ...");
}
public void edit() {
System.out.println("--------------------3 ProductDao.edit().... ...");
}
public void query() {
System.out.println("--------------------4 ProductDao.query()... ...");
}
}
4.1.3 生成测试代码
正式上线前, 每个方法都必须经过测试, 目前我们能够想到的就是main方法.
因为一个类只有一个main方法, 一个类可能有上千个方法, 那得需要多少个方法, 所以 迫切需要更高效方法, junit测试登场了.
为什么junit报红? 因为缺少junit包, 导入缺少的junit包即可.
4.1.4 导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itcast.maven</groupId>
<artifactId>javase01</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<!--导入junit包-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
4.1.5 一个一个测试
完成测试代码:
package cn.itcast.dao;
public class ProductDaoTest {
@org.junit.Test
public void add() throws Exception {
ProductDao productDao = new ProductDao();
productDao.add();
}
@org.junit.Test
public void del() throws Exception {
ProductDao productDao = new ProductDao();
productDao.del();
}
@org.junit.Test
public void edit() throws Exception {
ProductDao productDao = new ProductDao();
productDao.edit();
}
@org.junit.Test
public void query() throws Exception {
ProductDao productDao = new ProductDao();
productDao.query();
}
}
4.1.6 测试所有
一个一个测试,太累了, 给大家介绍一个简单的.
4.2 创建有骨架 java工程
4.2.1 how?
4.2.2 java工程目录结构
4.2.3 编写 Hello World!
[外链图片转存失败(img-6I19Y5n1-1567147909052)(assets/1530974689084.png)]
[外链图片转存失败(img-0PSobCIo-1567147909052)(assets/1530974710619.png)]
package cn.itcast;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
总结: 因为创建有骨架的java工程会产生很多多余的配置, 所以实际开发中一般不用.
4.3 创建有骨架的web工程(了解)
4.3.1 how?
[外链图片转存失败(img-ege8A630-1567147909053)(assets/1537365103745.png)]
[外链图片转存失败(img-Any4CJu6-1567147909054)(assets/1537365186876.png)]
[外链图片转存失败(img-0SBG61l3-1567147909055)(assets/1537365255650.png)]
[外链图片转存失败(img-LD8Hb1MJ-1567147909055)(assets/1537365307514.png)]
[外链图片转存失败(img-3PPmvTCE-1567147909056)(assets/1537365332661.png)]
[外链图片转存失败(img-dqEYtrtS-1567147909057)(assets/1537365369141.png)]
4.3.2 标准web工程目录结构
[外链图片转存失败(img-hf0m0SWe-1567147909057)(assets/1537365617727.png)]
经过对比发现如下问题:
4.3.3 缺少java目录
[外链图片转存失败(img-f5Y3WBD7-1567147909058)(assets/1537365726887.png)]
[外链图片转存失败(img-jfnZXXxO-1567147909058)(assets/1537365747597.png)]
[外链图片转存失败(img-VWYcBn8Z-1567147909060)(assets/1537365811337.png)]
更改java目录属性
[外链图片转存失败(img-KBHmL7hd-1567147909060)(assets/1537365915916.png)]
[外链图片转存失败(img-8rjTLx4v-1567147909061)(assets/1537365941638.png)]
4.3.4 缺少resources目录
[外链图片转存失败(img-aBtsqI38-1567147909062)(assets/1537365960822.png)]
[外链图片转存失败(img-SfW9V0qX-1567147909062)(assets/1537365982221.png)]
[外链图片转存失败(img-YbKiPuQg-1567147909062)(assets/1537365994589.png)]
[外链图片转存失败(img-RBtSzXt1-1567147909064)(assets/1537366029843.png)]
4.3.5 缺少test.java目录
4.3.5.1 新建test目录
[外链图片转存失败(img-4o5qcxJz-1567147909065)(assets/1537366119328.png)]
[外链图片转存失败(img-F0VJBWMM-1567147909066)(assets/1537366137117.png)]
[外链图片转存失败(img-4BsXYtdR-1567147909066)(assets/1537366151796.png)]
4.3.5.2 新建test.java目录
[外链图片转存失败(img-wTSDnzp3-1567147909067)(assets/1537366176109.png)]
[外链图片转存失败(img-rldc1kVU-1567147909068)(assets/1537366192184.png)]
[外链图片转存失败(img-GK7yRrFJ-1567147909069)(assets/1537366210414.png)]
[外链图片转存失败(img-dfMdqWS4-1567147909070)(assets/1537366237164.png)]
总结: 使用骨架创建的web项目 在开发时不常用!
理由1: 在pom.xml增加不必要的配置
理由2: 完整的web工程缺的东西太多!
4.4 创建跳过骨架的web工程(重点重点重点)
4.4.1 how?
[外链图片转存失败(img-35LXwh4r-1567147909070)(assets/1537365495730.png)]
[外链图片转存失败(img-OWGhb7Vn-1567147909071)(assets/1537365531863.png)]
[外链图片转存失败(img-jyBXLhwW-1567147909071)(assets/1537366671631.png)]
复制webapp目录到项目2中
修改pom.xml 增加打包方式为war包
[外链图片转存失败(img-waAqwFpO-1567147909072)(assets/1537366829609.png)]
4.4.2 配置tomcat插件
因为 web项目最终跑在web服务器中, 所以需要配置 web服务器(tomcat只是其中一个)
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itcast.maven</groupId>
<artifactId>web02</artifactId>
<version>1.0-SNAPSHOT</version>
<!--
java工程: jar 含义是 java rar
web工程: war 含义是 web rar
-->
<packaging>war</packaging>
<!--配置插件-->
<build>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!--配置端口号-->
<port>80</port>
<!--配置项目路径-->
<path>/web02</path>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.4.2.1 启动tomcat
[外链图片转存失败(img-TiAMsimO-1567147909073)(assets/1537403214801.png)]
[外链图片转存失败(img-So00t9Gv-1567147909074)(assets/1537403281859.png)]
测试:
[外链图片转存失败(img-Kpxs4wUa-1567147909075)(assets/1537403340916.png)]
4.4.2.2 简化启动tomcat
[外链图片转存失败(img-zorxDup0-1567147909076)(assets/1537403402117.png)]
[外链图片转存失败(img-TT7V3p0r-1567147909079)(assets/1537403454188.png)]
[外链图片转存失败(img-dCMrnpyq-1567147909088)(assets/1537403529493.png)]
[外链图片转存失败(img-PyjgYoCE-1567147909090)(assets/1537403652165.png)]
4.4.3 创建servlet
[外链图片转存失败(img-wV43kzvH-1567147909091)(assets/1537403783543.png)]
[外链图片转存失败(img-Xp74Mns0-1567147909092)(assets/1537403850393.png)]
[外链图片转存失败(img-IM7SepmD-1567147909094)(assets/1537403892894.png)]
在web.xml中注册和映射浏览器访问servlet的路径:
[外链图片转存失败(img-0QH0ZTbR-1567147909095)(assets/1537403953074.png)]
4.4.3.1 servlet因为缺少servlet.jar包报错
[外链图片转存失败(img-3Pz5kvNL-1567147909096)(assets/1537404030481.png)]
解决: 在pom.xml增加servlet依赖
[外链图片转存失败(img-HysT6lLr-1567147909097)(assets/1537404118528.png)]
经过观察,servlet不再报错
[外链图片转存失败(img-SlM8rDpY-1567147909098)(assets/1537404374088.png)]
4.4.3.2 一启动Tomcat 访问就报错
[外链图片转存失败(img-iuFiazc5-1567147909099)(assets/1537404411900.png)]
[外链图片转存失败(img-G5PuY03r-1567147909100)(assets/1537404548534.png)]
原因:
因为我们导入的jar包和tomcat服务器携带的jar包冲突了, 所以才会报错.
解决:
设置自定义导入jar包的范围, 只在编译和测试有效. 这样就不会在运行时 导致jar运行冲突了.
how? [外链图片转存失败(img-KAp7ydX3-1567147909102)(assets/1537404772420.png)]
测试:
[外链图片转存失败(img-ZnHXHB8L-1567147909104)(assets/1537404806135.png)]
[外链图片转存失败(img-h9Ix4knm-1567147909105)(assets/1537404819674.png)]
4 maven的常用指令
[外链图片转存失败(img-zKoH8pFf-1567147909107)(assets/1531018377581.png)]
4.1 clean命令
[外链图片转存失败(img-MRGviXFn-1567147909109)(assets/1530977033459.png)]
[外链图片转存失败(img-pCdBlXVb-1567147909111)(assets/1530977194707.png)]
4.2 compile命令
[外链图片转存失败(img-5xkmjA32-1567147909113)(assets/1530977220710.png)]
[外链图片转存失败(img-J6J6j2yv-1567147909114)(assets/1530977330244.png)]
4.3 test命令
测试命令: 执行 src/test/java 下junit的测试用例
- 在src/test/java下创建测试类DemoTest
[外链图片转存失败(img-IXrEABur-1567147909115)(assets/1530977995615.png)]
[外链图片转存失败(img-Uo9hupNb-1567147909148)(assets/1530978026962.png)]
控制台测试结果如下:
[外链图片转存失败(img-mGKLKSyN-1567147909151)(assets/1530978086143.png)]
4.4 package命令
mvn package, 打包项目
[外链图片转存失败(img-pawpQ4UX-1567147909153)(assets/1530978233759.png)]
打包后的项目会在target目录下找到
[外链图片转存失败(img-VMgA8Tcw-1567147909165)(assets/1530978308805.png)]
4.5 install命令
mvn install, 打包后将其安装在本地仓库
[外链图片转存失败(img-PIkK09cW-1567147909173)(assets/1530978522982.png)]
安装完毕后,可以在本地仓库中找到 对应的项目
[外链图片转存失败(img-vxkP5Gdt-1567147909177)(assets/1530978655471.png)]
5 依赖管理
5.1 maven插件
[外链图片转存失败(img-nSd2Bga6-1567147909182)(assets/1530978764025.png)]
5.1.1 jdk编译版本的插件
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itcast</groupId>
<artifactId>maven_javaweb02</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
[外链图片转存失败(img-5l2vi39D-1567147909191)(assets/1530979577630.png)]
[外链图片转存失败(img-9iP3Bk7Q-1567147909197)(assets/1530979550060.png)]
5.1.2 tomcat7服务端的插件
- 配置tomcat插件
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/aaa</path>
<port>8888</port>
</configuration>
</plugin>
- 运行tomcat插件
[外链图片转存失败(img-W15dhTWQ-1567147909199)(assets/1530979853605.png)]
-
tomcat 插件注意问题
Maven的中央仓库中只有tomcat7.X版本
如果想使用tomcat8.X版本,
1. 需要从第三方仓库查找 2. 或者使用idea集成外部的tomcat插件
5.2 导入依赖
5.2.1 导入junit依赖
- 导入junit坐标
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
[外链图片转存失败(img-wvKiq1SR-1567147909225)(assets/1530980380837.png)]
- 进行单元测试
import org.junit.Test;
public class DemoTest {
@Test
public void demo1() {
System.out.println("敢于亮剑,绝不后退!");
}
}
[外链图片转存失败(img-qJXITndf-1567147909227)(assets/1530980434008.png)]
5.2.2 导入servlet的依赖
- 创建servlet, 但是发现报错,原因是没有导入servlet的坐标依赖
[外链图片转存失败(img-MGAJ4aaW-1567147909228)(assets/1530980596377.png)]
- 导入servlet的坐标依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
- 原有的servlet报错恢复正常
[外链图片转存失败(img-hMVW5JKC-1567147909230)(assets/1530980728536.png)]
5.3 依赖范围
[外链图片转存失败(img-UCkCCvg4-1567147909231)(assets/1530980805944.png)]
[外链图片转存失败(img-LQpZ9b3k-1567147909234)(assets/1530980856407.png)]
6 maven案例: 完成用户列表显示功能
6.0 需求分析
[外链图片转存失败(img-DHREPs2q-1567147909246)(assets/1531021609684.png)]
6.1 准备数据
create database day20_db;
use day20_db;
create table user(
id int primary key auto_increment,
name varchar(50),
age int
);
insert into user(id, name, age) values(null, '张三', 13);
insert into user(id, name, age) values(null, '李四', 14);
insert into user(id, name, age) values(null, '王五', 15);
6.2 创建跳过骨架的web项目
[外链图片转存失败(img-30l2E1Te-1567147909247)(assets/1532790634814.png)]
[外链图片转存失败(img-ZNwoXNPA-1567147909248)(assets/1532790658947.png)]
[外链图片转存失败(img-qyZyXIGp-1567147909254)(assets/1532790675519.png)]
[外链图片转存失败(img-TznODkco-1567147909256)(assets/1532790714939.png)]
复制webapp目录到src/main目录
[外链图片转存失败(img-CAy6epW5-1567147909257)(assets/1532790784495.png)]
6.3 准备工作
6.3.1 导入所需的api和jar包
- mysql驱动
- c3p0连接池
- DbUtils框架
- Servlet
- jstl
- jsp-api
- tomcat插件
- 1.8 jdk插件
6.3.2 maven坐标
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itcast</groupId>
<artifactId>maven_web03</artifactId>
<version>1.0-SNAPSHOT</version>
<!--表名当前是web项目-->
<packaging>war</packaging>
<dependencies>
<!--jsp-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- msyql , c3p0, dbutils-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
</dependencies>
<!--引入tomcat插件-->
<build>
<plugins>
<!-- java编译插件 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!--tomcat-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<path>/web03</path>
<port>8888</port>
</configuration>
</plugin>
</plugins>
</build>
</project>
6.3.3 搭建包结构
[外链图片转存失败(img-uohhaci9-1567147909259)(assets/1532791394428.png)]
[外链图片转存失败(img-LLRaAjj6-1567147909261)(assets/1532791412569.png)]
[外链图片转存失败(img-1haRXC6t-1567147909261)(assets/1532791425070.png)]
[外链图片转存失败(img-Jvs0Fmxo-1567147909265)(assets/1532791491615.png)]
6.3.4 复制和创建需要的文件
[外链图片转存失败(img-b7iWtOH3-1567147909269)(assets/1532791685589.png)]
6.4 how
6.4.1 入口页面 index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<body>
<h2>Hello World!</h2>
${pageContext.request.contextPath}
<h3><a href="${pageContext.request.contextPath}/UserFindListServlet">跳转到 用户列表页面</a></h3>
</body>
</html>
6.4.2 web层
[外链图片转存失败(img-Qus3FwBR-1567147909271)(assets/1531024240103.png)]
package cn.itcast.web;
import cn.itcast.domain.User;
import cn.itcast.service.UserService;
import cn.itcast.service.impl.UserServiceImpl;
import java.io.IOException;
import java.util.List;
public class UserFindListServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
// 1 调用业务层 查询用户集合
UserService userService = new UserServiceImpl();
List<User> userList = userService.findList();
// 2 将用户集合转发给用户列表页
request.setAttribute("userList", userList);
request.getRequestDispatcher("/user_list.jsp").forward(request, response);
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
doPost(request, response);
}
}
web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>UserFindListServlet</servlet-name>
<servlet-class>cn.itcast.web.UserFindListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserFindListServlet</servlet-name>
<url-pattern>/UserFindListServlet</url-pattern>
</servlet-mapping>
</web-app>
6.4.3 业务层
[外链图片转存失败(img-GFIwrkrB-1567147909272)(assets/1531024222761.png)]
package cn.itcast.service;
import cn.itcast.domain.User;
import java.util.List;
public interface UserService {
public List<User> findList();
}
package cn.itcast.service.impl;
import cn.itcast.dao.UserDao;
import cn.itcast.dao.impl.UserDaoImpl;
import cn.itcast.domain.User;
import cn.itcast.service.UserService;
import java.sql.SQLException;
import java.util.List;
public class UserServiceImpl implements UserService {
public List<User> findList() {
// 调用dao 查询用户集合
UserDao userDao = new UserDaoImpl();
List<User> userList = null;
try {
userList = userDao.findUserList();
} catch (SQLException e) {
e.printStackTrace();
}
return userList;
}
}
6.4.4 数据层
[外链图片转存失败(img-atI3LX7R-1567147909274)(assets/1531024203337.png)]
package cn.itcast.dao;
import cn.itcast.domain.User;
import java.sql.SQLException;
import java.util.List;
public interface UserDao {
public List<User> findUserList() throws SQLException;
}
package cn.itcast.dao.impl;
import cn.itcast.dao.UserDao;
import cn.itcast.domain.User;
import cn.itcast.utils.JDBCUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import java.sql.SQLException;
import java.util.List;
public class UserDaoImpl implements UserDao {
public List<User> findUserList() throws SQLException {
QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
String sql = "select * from user";
List<User> userList = queryRunner.query(sql, new BeanListHandler<User>(User.class));
return userList;
}
}
6.4.5 列表显示页面 user_list.jsp
[外链图片转存失败(img-FKTLc9bR-1567147909278)(assets/1531024181895.png)]
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<table border="1px" cellspacing="0px" cellpadding="10px" width="50%" align="center">
<tr>
<td>序号</td>
<td>姓名</td>
<td>年龄</td>
</tr>
<c:forEach items="${userList}" var="user" varStatus="vs">
<tr>
<td>${vs.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
idea的常用快捷键
ctrl + y 删除当前行
ctrl + d 复制当前行
ctrl + alt + L 格式化代码
alt + shift + 向下箭头 将行向下移动
alt + shift + 向上箭头 将行向上移动
Ctrl+Shift+Enter 将输入的if、for、函数等等补上{}或者;使代码语句完整
shift + 回车 在当前行下方插入新行
ctrl + alt + 回车 在当前行上方插入新行
shift + f6 重命名
ctrl + o 添加未实现的方法
ctrl + alt + shift + c 拷贝类的全路径
ctrl + alt + v 起变量名
alt + 回车 处理异常
ctrl + alt + m 提取方法
ctrl + shift + u 大小写切换
ctrl + n 搜索类
ctrl + shift + n 搜索文件
itar 循环遍历数组
itli 循环遍历集合
iten 遍历枚举
iter 增强for循环
ctrl + alt + b 实现方法
ctrl + h 查看继承和实现关系
ctrl + r 替换
ctrl + shift + f 根据关键字查询
ctrl + h 查看当前类的实现类
debug调试
F7 下一步,会到方法内部
F8 下一步,不会到方法内部
F9 调到下一个断点
7 常见问题汇总
1 tomcat插件重复启动:导致端口占用
2 index.html放到WEB-INF下面,导致访问不到这个html页面
3 名称不叫index.html,结果直接输入localhost:8080,访问不到这个页面
4 关联了jre,需要使用JDK
5 需要使用我给的仓库
<tr>
<td>${vs.count}</td>
<td>${user.name}</td>
<td>${user.age}</td>
</tr>
</c:forEach>
</table>
```
idea的常用快捷键
ctrl + y 删除当前行
ctrl + d 复制当前行
ctrl + alt + L 格式化代码
alt + shift + 向下箭头 将行向下移动
alt + shift + 向上箭头 将行向上移动
Ctrl+Shift+Enter 将输入的if、for、函数等等补上{}或者;使代码语句完整
shift + 回车 在当前行下方插入新行
ctrl + alt + 回车 在当前行上方插入新行
shift + f6 重命名
ctrl + o 添加未实现的方法
ctrl + alt + shift + c 拷贝类的全路径
ctrl + alt + v 起变量名
alt + 回车 处理异常
ctrl + alt + m 提取方法
ctrl + shift + u 大小写切换
ctrl + n 搜索类
ctrl + shift + n 搜索文件
itar 循环遍历数组
itli 循环遍历集合
iten 遍历枚举
iter 增强for循环
ctrl + alt + b 实现方法
ctrl + h 查看继承和实现关系
ctrl + r 替换
ctrl + shift + f 根据关键字查询
ctrl + h 查看当前类的实现类
debug调试
F7 下一步,会到方法内部
F8 下一步,不会到方法内部
F9 调到下一个断点
7 常见问题汇总
1 tomcat插件重复启动:导致端口占用
2 index.html放到WEB-INF下面,导致访问不到这个html页面
3 名称不叫index.html,结果直接输入localhost:8080,访问不到这个页面
4 关联了jre,需要使用JDK
5 需要使用我给的仓库