*请求:浏览器给服务器发送内容
*响应:服务器响应浏览器
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
> 引用块内容
web/tomcat服务器/http协议 重要知识点
最新推荐文章于 2022-06-06 18:28:53 发布