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 > 引用块内容阅读更多
相关文章推荐
- JavaWeb - XML,XML的解析,Tomcat,web服务器,http协议
- 认识JavaWeb,servlet, JSP, Tomcat, http协议,Web服务器
- 大数据WEB阶段(八)Tomcat服务器安装与详解、HTTP协议详解
- 学习Tomcat源码(1) http协议 web服务器原理
- 在Mac上关于tomcat服务器的安装、配置、启动、部署web详细流程
- Maven打包Web 项目并且部署到Linux上的Tomcat服务器下
- Nginx+tomcat搭建高性能web服务器集群
- 基于tomcat服务器的javaweb入门一
- Eclipse开发好的Web项目如何部署到服务器的Tomcat上?
- Java自学之路-Java基础教程-27:Java Web工程的运行和Tomcat服务器
- [Java Web] 6、Tomcat服务器的安装及配置以及JSP技术笔记
- eclipse下新建maven web工程(是web工程!)以及部署maven web工程到tomcat服务器
- tomcat,Jboss,weblogic等web服务器的特点(转)
- 【web】之获取服务器tomcat下webapps目录路径
- 利用“花生壳”和Tomcat建立自己的Web服务器
- Linux 部署服务器实例(web部署在tomcat)
- Ubuntu的web服务器搭建系列之Redis(JDK+Tomcat+MySQL+Nginx+Redis+NodeJS)
- Web服务器父与子 Apache和Tomcat区别
- Web服务器之Tomcat 简介(二)
- 动态JavaWeb项目连接Tomcat服务器的问题