环境搭建
一. 安装idea
二. maven环境搭建
2.1) maven 的功能
2.2) maven下载
2.3)maven配置
1. 安装jdk1.8以上版本 创建一个系统变量 JAVA_HOME=JDK的根目录
2. 配置path 在path的最前面加上 %JAVA_HOME%\bin;
3. 安装idea软件,傻瓜式安装
4. 破解idea方法1
参考文档
5. 破解idea方法2
输入激活码
1
2
3
4
5
6
7
1. jar包的依赖管理
网址:https://mvnrepository.com/
2. 多模块的开发
1
2
3
下载地址: http://maven.apache.1 org/download.cgi
1. 配置一个全局变量: MAVEN_HOME=maven的根路径
2. 在path中配置路径: %MAVEN_HOME%\bin;
3. 配置一个本地仓库: 保存从中央仓库或远程仓库下载的jar包和war包
<localRepository>F:\reposity</localRepository>
4. 配置一个国内的maven镜像服务器,推荐使用阿里云服务器,目的加快jar包的下载速度.
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2.4)idea 绑定maven
三.使用idea创建一个maven java项目
3.1)使用maven创建一个java项目
约定优于配置
四. 单元测试
4.1)导入junit.jar包
4.2)编写单元测试类和测试方法
单元测试(unit testing),是指1 对软件中的最小可测试单元进行检查和验证。
<?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>com.hwua</groupId>
<artifactId>java_maven_pro</artifactId>
<version>1.0-SNAPSHOT</version>
<!--导入本项目中所依赖的jar文件-->
<dependencies>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.hwua.test;
import com.hwua.service.UserService;
import org.junit.Assert;
1
2
3
4
4.3)idea Maven修改jdk编译版本
maven配置文件 settings.xml(全局修改)
在idea项目中的pom.xml中修改(局部修改)
四.使用idea创建一个maven java项目
import org.junit.Test;
/**
* 单元测试类
*/
public class UserServiceTest {
//编写测试方法,一般遵循以下格式
/**
* 1.访问修饰符为public
* 2.测试方法的返回类型为void
* 3.方法中不带参数
*/
@Test//代表此方法时可运行的单元测试方法
public void testUserLogin(){
UserService us = new UserService();
String res = us.userLogin();//调用业务方法
Assert.assertEquals("success",res);
}
}
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<profile>
<id>jdk1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersi
on>
</properties>
</profile>
1
2
3
4
5
6
7
8
9
10
11
12
<properties>
<project.build.sourceEncoding>UTF-
8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
1
2
3
4
5
4.1)创建web项目,补全目录结构
4.2)创建jsp和Servlet项目步骤
引入相关的jar包
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
<!--部署到tomcat的时候是不会把jar包打包到项目中的,
因为tomcat中已经有自己的一份ServletAPI,防止冲突-->
1
2
3
4
5
6
7
什么web服务器?
什么是Servlet?
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jspapi
-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
8
9
10
11
12
13
14
15
16
就是提供web资源的一台电脑(配置比较高),电脑中安装一个web服务的软
件,tomcat,websphere,jboss,weblogic
1
就是符合规范的一个java类,这个类由web服务器来管理(什么时候创建,什么时候销毁,什么
使用服务),所以servlet就是运行在服务器上的一个java类.
1
package com.hwua.web.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req,
HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req,
HttpServletResponse resp) throws ServletException, IOException {
String name = req.getParameter("name");
String age=req.getParameter("age");
if(name.equals("陈豪")&&Integer.parseInt(age)==10){
req.setAttribute("user",name);
req.getRequestDispatcher("/main.jsp").forward(req,resp);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
配置Servlet
把项目部署到web服务器上
/*初始化Servlet,当tomcat容器创建此Servlet对象的时候,执行一次*/
@Override
public void init(ServletConfig config) throws ServletException
{
System.out.println("init....");
}
@Override
public void destroy() {
System.out.println("destroy....");
}
}
27
28
29
30
31
32
33
34
35
36
37
38
<!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>userServlet</servlet-name>
<servlet-class>com.hwua.web.servlet.UserServlet</servletclass>
</servlet>
<servlet-mapping>
<servlet-name>userServlet</servlet-name>
<url-pattern>/user.do</url-pattern>
</servlet-mapping>
</web-app>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
4.3)Servlet作用
4.4)HTTP协议
4.5)请求和响应的规范
接受客户端的请求,对1 请求进行处理好以后,响应给客户端浏览器.
超文本传输协议,它的作用就是规定浏览器和服务器之间通信的规则.B/S架构的程序服务就是一问
一答的过程
* 发送请求 request
* 响应请求 response
也就是规定发送request请求的格式和响应response的格式是有规范的,什么规范呢?
1
2
3
4
5
6
HttpServletRequest对象
request规范:
组成:
请求行:
GET /chenhao/user.do?name=%E9%99%88%E8%B1%AA&pwd=123456 HTTP/1.1
* 请求方式 GET
* 请求的资源 /chenhao/user.do?name=%E9%99%88%E8%B1%AA&pwd=123456
* 协议版本 HTTP/1.1
请求头:
客户端向服务器发送的暗号,服务器可以处理感兴趣的暗号,也可以不处理.以键值对的形
式发送
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75
Safari/537.36 浏览器的内核
Referer: http://localhost:8888/chenhao/ 来源
Accept-Language: zh-CN,zh;q=0.9 发送请求的语言编码
请求正文(只有post请求才有)
name=陈豪&pwd=123456
GET /chenhao/user.do?name=%E9%99%88%E8%B1%AA&pwd=123456 HTTP/1.1
Host: localhost:8888
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75
Safari/537.36
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image
/apng,*/*;q=0.8,application/signed-exchange;v=b3
Sec-Fetch-Site: same-origin
Referer: http://localhost:8888/chenhao/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=96E0A377CF0E39FAFEC80FE02A62B8F9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
当客户端发送请求的时候,服务器端会帮我们去创建一个HttpServletRequest对象,里面封装了
HTTP请求协议格式中的所有数据,并作为传输传递给doGet或doPost方法.
1
响应格式:
三部分组成:
* 响应行
HTTP/1.1 200
*协议: HTTP/1.1
* 响应码: 200 成功
1
2
3
4
5
6
HttpServletResponse对象
五.三层架构
404 资源找不到
302 重定向
500 服务器代码出错
* 响应头信息:服务器给客户端浏览器的暗号,键值对组成
Content-Type: text/html;charset=UTF-8 告知客户端浏览器服务器传过来的是
html文件,使用utf-8来进行编码
Content-Length: 110 响应过来的字节数
* 响应正文(响应实体),浏览器解析显式的内容
<html>
<head>
<title>Title</title>
</head>
<body>
欢迎:陈豪惠顾!!!!!!
</body>
</html>