JavaWeb (crazy God says Java)
Java Web
1. Basic concepts
1.1 Preface
web development:
-
Web is the meaning of web page development, which means that we can get resources from the web page www.baidu.com com
-
Static web
-
html css
-
The data provided to everyone will never change
-
-
Dynamic web
-
Taobao, almost all websites are dynamic web
-
The data provided to everyone will change. Everyone will see different information at different times and places
-
Technology stack: Servlet/JSP, ASP,PHP
In Java, the technology of dynamic web resource development is called JavaWeb
-
1.2 web application
web application: a program that provides browser access
- Many web resources, such as a.html and b.html, can be accessed by the outside world and provide services
- Any page or resource we can access exists on a computer in a corner of the world
- url: uniform resource locator? Look back
- This unified web resource will be placed under the same folder, but we can't access these web applications directly. We need to use Tomcat server
- A web application consists of several parts (static web, dynamic web)
- html css js
- jsp servlet
- java program
- jar package
- Configuration files (Properties)
After the web application is written, if you want to provide access to the outside world, you need a server to manage it uniformly
1.3 static web
- .html,.htm these are suffixes of web pages. If these things always exist on the server, we can read them directly
-
Disadvantages of static web
-
The web page cannot be updated dynamically. Everyone sees the same page
- Rotation map, click special effects: made a pseudo dynamic effect
- We can use JavaScript to make dynamic effects
-
It cannot interact with the database, data cannot be persisted, and users cannot interact
-
1.4 dynamic web
The page will be displayed dynamically, and its display effect varies from person to person
Disadvantages:
- If there is an error in the dynamic web resources added to the server, we need to rewrite our background program and publish it again
- This means shutdown and maintenance
advantage
-
web pages can be updated dynamically
-
It can interact with the database (data persistence, such as registration information)
[external link image transfer fails, and the source station may have anti-theft chain mechanism. It is recommended to save the image and upload it directly (img-0zkoz899-164496614664) (C: \ users \ 17614 \ appdata \ roaming \ typora \ typora user images \ image-20220215222108427. PNG)]
2.web server
2.1 technical explanation
JSP/Servlet:
B/S: browser, server
C/S client and server
- b/s architecture mainly promoted by sun company
- Based on Java language (all large companies or some open source components are written in Java)
- It can bear the impact of three high problems: high performance, high concurrency and high availability
2.2 web server
Receive the user request and return the response to the user
Server is a passive operation, which is used to process some requests of users and give users some corresponding information
Tomcat
Tomcat actually runs JSP pages and servlets
After working for 3-5 years, you can try to write Tomcat server
Download Tomcat:
1. Install or unzip
2. Understand the configuration file and directory structure
3. Know the function of this thing
3.Tomcat
3.1 installing Tomcat
1.Tomcat official website https://tomcat.apache.org/
3.2 startup and configuration
Folder function
bin directory: used to put startup and shutdown script files
conf: Configuration
lib: put the dependent jar package
Logs: send and store the logs of the website
A folder represents a web application?
Startup and shutdown
Click the bin directory - startup Bat - double click to start
Note: startup Do not close bat after it is opened
Then enter localhost:8080 on the website
In this way, you can enter the tomcat website
Access test http://localhost:8080
Possible problems:
1. The Java environment is not configured because Tomcaat is written in Java
2. Flash back problem: compatibility needs to be configured
3. Garbled code problem: it needs to be set in the configuration file
Click conf
3.3 configuration
- The default port number of Tomcat is 8080
- mysql:3306
- http:80
- https:443
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
You can configure the name of the host
- The default host name is localhost – > 127.0.0.1
- Location of default website application: webapps
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
3.4 difficult interview questions
Please talk about how the website is accessed
1. Enter a domain name: then press enter
2. Check whether there is a mapping of this domain name under the configuration file C:\Windows\System32\drivers\etc\hosts of this machine
1.Yes: directly return the corresponding ip Address. In this address, we need to visit web program
2. No: go to the DNS server (DNS is where all domain names are managed)
Return if found, return if not found
understand:
The client initiates a request, assuming that the request sent is: www.baidu.com COM, this request is not received directly
The client has a hosts configuration file in C:\Windows\System32\drivers\etc
The client will first go to hosts to see if there is a configuration file for this domain name
3.5 publish a web site
If not, imitate first
- Put the website written by yourself under the web apps folder specified in the server (Tomcat),
You can access the structure of the website
---webapps :Tomcat Server web catalogue -ROOT -kuangstudy :Directory name of the web site -WEB -INF -classes : Java program -lib:web Application dependent jar package -web.xml:Site profile -index.html:Default home page of the website -static :Static resource file -css -style -js -img ...
4.Http
4.1 what is HTTP
HTTP (Hypertext Transfer Protocol) is a simple request response protocol, which usually runs on top of TCP
- Text: html, string
- Picture, sound, video, location, map
- Default port number: 80
HTTPS: Secure
Default port: 443
4.2 two times
- http1.0
- HTTP/1.0: after the client can connect with the web server, it can only obtain one web resource
- When we request a second time, we can't get resources because we're disconnected
- http2.0
- HTTP/1.1: after the client can connect with the web server, it can obtain multiple web resources
4.3 HTTP request
-
Client – send request – server
We enter Baidu address, click enter and view the request process on the web page
Request URL:https://www.baidu.com / request address Request Method:GET Request method Status Code:200 OK Status code Remote(long-range) Address:14.215.177.39:443 Reffer Policy:no-referrer-when-downgrade
Accept:text/html Accept-Encoding:gzip,deflate,br Accept-Language:zh-CN,zh;q=0.9 language Cache-Control:max-age=0 Connection:keep-alive
1. Request line
- Request method in request line: GET
- Request method: * * get * *, post, head, delete, put, trace
- get: the request method can carry fewer parameters and has limited size. It will display data information in the URL address bar of the browser. It is not safe, but it is efficient
- post: there is no limit on the parameters that can be carried by the request method, and there is no limit on the size. The data information will not be displayed at the URL address of the browser, but it is safe
2. Message header
Accept: Tell the browser what data types it supports Accept-Encoding:Which encoding method is supported Accept-Language: Tell the browser its locale Cache-Control: Cache control Connection: Tell the browser whether to disconnect or remain connected when the request is completed HOST: host
4.4 HTTP response
- Server - response - client
Baidu:
Cache-Control:private Cache control Connection:Keep-Alive connect Content-Encoding:gzip code Content-Type:text/html type
1. Responder
Accept: Tell the browser what data types it supports Accept-Encoding:Which encoding method is supported Accept-Language: Tell the browser its locale Cache-Control: Cache control Connection: Tell the browser whether to disconnect or remain connected when the request is completed HOST: host Refresh: Tell the client how often to refresh Location: Repositioning web pages
2. Response status code (key)
200: request response succeeded
3 * *: request redirection
- Redirect: you go back to the new location I assigned you
4 * *: resource 404 Not Found
- Resource does not exist
5 * *: server code error 500
502 call gateway error
Common interview questions (during Java Web Learning)
When you enter the address in the address bar of your browser and press enter, what happens when the page can be displayed back?
5.Maven
Why learn this technology
1. In Java Web development, you need to use a large number of jar packages and import them manually
2. How can we make something automatically import and configure this jar package for us
Thus Maven was born
Maven is foreign
5.1Maven project architecture management tool
The jar package we are using to import
Maven's core idea: Convention is greater than configuration
- There are constraints. Don't break them
Maven will specify how to write our java code. We must follow this requirement, mainly to standardize which directory our code should be written in
5.2 download and install Maven
Official website https://maven.apache.org
After downloading, unzip it
5.3 configuring environment variables
In our system environment variables
Configure the following variables:
- M2_ bin directory under home Maven directory
- MAVEN_ Home: Maven directory
- Configure Maven in the path of the system_ HOME %MAVEN_ HOME%\bin
- Test whether maven is installed
5.4 Alibaba cloud image
- Mirroring: mirrors
- Function: speed up our download
- Alibaba cloud image is recommended in China
<mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/repository/public </url> </mirror> </mirrors>
5.5 local warehouse
Local warehouse, original warehouse
Set up a local repository: localRepository
<localRepository> D:\Program Files\apache-maven-3.8.4-bin\apache-maven-3.8.4\maven-repo </localRepository>
5.6 maven operation in IDEA
Create maven project (created through template)
1. Create Maven web project
2. Wait for the initialization of the project
BUILD SUCCESS indicates success
3. Observe what's more about maven project
4. maven setting in idea
4. maven setting in idea
After the idea project is successfully created, take a look at the maven configuration
Click menu bar view - > tool windows - > Maven projects
Create a normal maven project
This can only be found in Web applications
5.7 marking folder function
5.8 configuring Tomcat
Resolve warning issues
Why is there a warning problem
Must be configured: why is this problem: when we visit a website, we need to specify the name of a folder
Then start Tomcat
5.9 pom documents
pom.xml is the core configuration file of maven
<?xml version="1.0" encoding="UTF-8"?> <!--Maven Version and header file --> <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> <!--Here is what we just configured GAV--> <groupId>com.kuang</groupId> <artifactId>javaweb-01-maven</artifactId> <version>1.0-SNAPSHOT</version> <!--java Packaging method of jar:java application war:JavaWeb application --> <packaging>war</packaging> <name>javaweb-01-maven Maven Webapp</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <!--configuration file--> <properties> <!--Default code of the project--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--Compiled version--> <maven.compiler.source>1.8</maven.compiler.source> <!--configuration file--> <maven.compiler.target>1.8</maven.compiler.target> </properties> <!--Project dependency--> <dependencies> <!--Statically dependent jar Package configuration file--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> </dependencies> <!--Things for project construction--> <build> <finalName>javaweb-01-maven</finalName> <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --> <plugins> <plugin> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --> <plugin> <artifactId>maven-resources-plugin</artifactId> <version>3.0.2</version> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version> </plugin> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>2.22.1</version> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <version>3.2.2</version> </plugin> <plugin> <artifactId>maven-install-plugin</artifactId> <version>2.5.2</version> </plugin> <plugin> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> </plugin> </plugins> </pluginManagement> </build> </project>
maven's high-level feature is that it will help you import other jar packages needed for this jar package
maven's convention is greater than configuration. It specifies which package our java code should be written under. If we don't do so, we can't even build Java
maven's agreement is greater than the configuration. We may encounter the problem that the configuration file we wrote cannot be exported or take effect later. Solution:
<!--stay build Medium configuration resources: To prevent our resource export from failing--> <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>