您的位置:首页 > 理论基础 > 计算机网络

web/tomcat服务器/http协议 重要知识点

2018-08-17 13:00 253 查看
*请求:浏览器给服务器发送内容
*响应:服务器响应浏览器
1.软件的架构
[1]*C/S架构的软件:
* Client / Server 客户端和服务器端的软件. 都是需要在PC端安装的软件. 比如 QQ,迅雷,暴风...
* 优点:效果炫,一部分代码写到客户端(速度快).
* 缺点:服务器端更新,客户端都需要更新.

[2]B/S架构的软件:
* Browser / Server 浏览器端和服务器端的软件. 不需要安装到PC端,只需要有一个浏览器即可. 比如 京东,网银,WEBQQ,WEB迅雷...
* 优点:服务器端更新,客户端浏览器不需要进行更新.
* 缺点:效果不炫,所有的代码运行都在服务器端,导致服务器压力过大.
* 效果:使用HTML5,CSS3可以做出很炫效果.
* 服务器端压力:搭建服务器的集群.而且还有AJAX技术.

2.WEB的资源
*静态资源:
* HTML,CSS,JS,图片...     【数据动态】
*动态资源:
* PHP           :
* ASP           :
* Servlet/JSP   :

3.什么是服务器
*  硬件:其实就是一台配置很高的电脑.
*  软件:必须在一台电脑上安装服务器软件.这台电脑称为是WEB服务器.

4.常见WEB服务器
*Apache         :发布PHP的.LAMP:Linux Apache MySQL PHP.
*IIS            :发布ASP的.
*WebSphere      :IBM公司研发,收费的大型服务器软件,支持EE的所有的开发规范.
*WebLogic       :BEA公司研发,收费的大型服务器软件,支持EE的所有的开发规范.
*Tomcat         :Apache组织研发,免费的小型的服务器软件,支持Servlet/JSP的开发规范.
*JBoss      :

5.Tomcat的目录结构
*bin        :tomcat的执行的文件.    【2进制路径】
*conf       :tomcat的配置文件.    【XML啥的配置文件】
*lib        :tomcat运行的需要的jar包.
*logs       :tomcat的运行的日志文件.
*temp       :tomcat产生临时文件存放的路径.
*webapps    :tomcat发布的web项目的路径.
*work       :tomcat运行JSP的时候,JSP翻译成Servlet的代码存放的路径.

6.WEB动态资源目录结构
website
|-----静态资源  HTML 、css、Js
|-----WEB-INF   (不能直接通过浏览器进行访问)
|-----web.xml   :必须的,当前WEB项目的核心配置,servlet
|-----classes   :可选的,当前WEB项目所需要的第三方的jar的存放的位置
|-----lib       :可选的,java源码编译后生成class文件存放的位置

一定要配置JAVA_HOME环境变量.

7.什么是协议
*什么是协议:规定双方需要遵守的规则

8.什么是HTTP协议
*http是超文本传输协议,是互联网上应用最广泛的一种网络协议,用来规定浏览器与服务器之前需要遵守的规则,
所有的www文件都必须遵守这个标准。设计http最初的目的是为了提供一种发布和接收html页面的方法。

9.HTTP协议的作用
*规范浏览器和服务器之间的数据传递

10.HTTP协议的特点
* 基于请求和响应的模型.
* 必须先有请求后有响应.
* 请求和响应必须成对出现.
* 默认的端口号是80.

11.HTTP提交方式及区别 【*****面试可能会问到】★★★★★
* 提交方式有很多,常用的GET和POST
* GET和POST的区别:
* GET的提交的参数会显示到地址栏上,而POST不显示.
* GET往往是有大小限制的,而POST没有大小的限制.        【建议用post】
* GET没有请求体,而POST有请求体.(请求体中存放的都是表单提交的数据)

12.HTTP请求头   【请求的返回值类型都是String类型】
*都是键值对的形式显示的.一般一个key对应一个value,也有个别的是一个key对应多个value.
★*User-Agent        :代表浏览器的类型. --- 文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码.

13.响应行常用状态码(响应码)     示例:  HTTP/1.1 200 OK     【1.1是协议版本、 200 是状态码、 OK是状态码描述】
* 200   :成功
* 302   :重定向(跨网站的访问一般叫做重定向)
* 304   :查找本地缓存
* 404   :资源不存在
* 500   :服务器内部错误

14.响应头
*键值对,一般一个key对应一个value,也有一个key对应多个value.
* Content-type          :服务器设置响应正文的类型和编码
* Last-Modified         :与请求中的If-Modified-Since一起使用查找本地缓存.
* Content-Dispostion    :文件下载的时候使用的一个头信息.
* Location              :重定向的跳转的路径.
* Refresh               :定时刷新/定时跳转.

15.什么是Servlet
* 就是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议.
* Servlet就是SUN公司提供的一个动态网页开发技术.

16.Servlet的作用
*用来处理从客户端浏览器发送的请求,并且可以对请求作出响应

17.代码实现servlet的步骤(使用Servlet)
[1]编写一个类实现Servlet接口
[2]将编写的这个类配置到服务器中
<url-pattern>

18.使用ServletRequest接收参数
*String getParameter(String name);              ---用于接收一个名称对应一个值的数据.
*String[] getParameterValues(String name);      ---用于接收一个名称对应多个值的数据.
*Map getParameterMap();                         ---用于接收表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交参数的值.

===================老师课堂笔记========================

1.HTTP协议-请求协议Request
*概念:包含了浏览器给服务器发送内容
*HTTP组成:请求行、请求头、请求体
*请求行组成:请求方式  请求路径  协议/版本        例如: GET http://localhost:8080/day13/ HTTP/1.1
*请求头:格式key:value            掌握:user-Agent 浏览器内核和操作系统的信息 (文件下载)

2.HTTP协议-响应协议Response
*概念:服务器给浏览器响应的数据
*组成:响应行、响应头、响应体
*响应码:是浏览器和服务器之间用于确定状态的一种标识
*常见响应码:200-成功  302-重定向  304-缓存  **404-服务器资源不存在  **500-服务器内部错误

3.Servlet入门
*概念:servlet applet 运行在服务器端的小程序
*作用:获取请求数据      处理数据    返回响应结果

第二部分    代码实现  ================================================================

1.入门案例:
1. 编写一个类实现Servlet接口,并且实现接口中所有的方法
2. 在 /WebContent/WEB-INF/web.xml配置servlet访问路径
为用户处理请求和响应的方法.
[1]
package com.itheima1_servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class serveltdemo1
* 为用户处理请求和响应的方法.
*/
public class servletdemo1 implements Servlet {       //在项目先创建一个包,在包上面右击,选择new,选择Servlet即可,但是我们现在只要service,所以把他粘贴复制到第一行

@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
res.getWriter().print("Hello Servlet...");

}

@Override
public void init(ServletConfig config) throws ServletException {

}

@Override
public ServletConfig getServletConfig() {
return null;
}

@Override
public String getServletInfo() {

return null;
}

@Override
public void destroy() {

}
}

[2]//在项目下的文件夹的WebContent,选择web-inf,选择web-xml即可生成
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>day13_web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<servlet-name>servletdemo1</servlet-name>
<servlet-class>com.itheima1_servlet.servletdemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletdemo1</servlet-name>
<url-pattern>/servletdemo1</url-pattern>
</servlet-mapping>
</web-app>

2.
[1]
<form action="/day13_web/servletdemo2" method="post">  【一部分】    ===========/day13_web/servletdemo2  路径要一致
<table border="10" width="70%" align="center" bgcolor="white">
<tr>
<td>
用户名:
</td>
<td>
<input type="text" name="userName" value="" size = "15">
</td>
</tr>
<tr>
<td>
密码:
</td>
<td>
<input type="password" name="password"/>
</td>
</tr>

[2]
package com.itheima1_servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class servletdemo2
*/
public class servletdemo2 implements Servlet {

@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");    =================  请求时写 ,一般中文时会乱码
res.setContentType("text/html;charset=utf-8"); ========  响应时写 ,一般中文时会乱码

res.getWriter().print("Hello Servlet...");
String username = req.getParameter("userName");
String password = req.getParameter("password");
String repassword = req.getParameter("repassword");
String emil = req.getParameter("email");
String name = req.getParameter("name");
String sex = req.getParameter("sex");
String[] hobby = req.getParameterValues("hobby");   =====  一般爱好都是多种的,用数组,后面有个Values
String province = req.getParameter("province");
String upload = req.getParameter("upload");
String birthday = req.getParameter("birthday");

System.out.println(username);
System.out.println(password);
System.out.println(repassword);
System.out.println(emil);
System.out.println(name);
System.out.println(sex);
System.out.println(hobby);
System.out.println(province);
System.out.println(upload);
System.out.println(birthday);

res.getWriter().print("你好");   ===========   之前响应改了格式utf-8,所以中文不会乱码
}

@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub

}

@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}

@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}

@Override
public void destroy() {
// TODO Auto-generated method stub

}

}

[3]    【自动生成】
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>day13_web</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<servlet-name>servletdemo1</servlet-name>
<servlet-class>com.itheima1_servlet.servletdemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletdemo1</servlet-name>
<url-pattern>/servletdemo1</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<display-name>servletdemo2</display-name>
<servlet-name>servletdemo2</servlet-name>
<servlet-class>com.itheima1_servlet.servletdemo2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletdemo2</servlet-name>
<url-pattern>/servletdemo2</url-pattern>
</servlet-mapping>
</web-app

> 引用块内容
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: