本帖最后由 小石姐姐 于 2018-2-8 14:45 编辑
【软件的架构】 C/S架构的软件: * Client / Server 客户端和服务器端的软件. 都是需要在PC端安装的软件. 比如 QQ,迅雷,暴风... * 优点:效果炫,一部分代码写到客户端(速度快). * 缺点:服务器端更新,客户端都需要更新. B/S架构的软件: * Browser / Server 浏览器端和服务器端的软件. 不需要安装到PC端,只需要有一个浏览器即可. 比如 京东,网银,WEBQQ,WEB迅雷... * 优点:服务器端更新,客户端浏览器不需要进行更新. * 缺点:效果不炫,所有的代码运行都在服务器端,导致服务器压力过大. * 效果:使用HTML5,CSS3可以做出很炫效果. * 服务器端压力:搭建服务器的集群.而且还有AJAX技术. 【WEB的资源】 静态资源: HTML,CSS,JS,图片... 动态资源: PHP : ASP : Servlet/JSP : 【服务器】 硬件:其实就是一台配置很高的电脑. 软件:必须在一台电脑上安装服务器软件.这台电脑称为是WEB服务器. 【常见WEB服务器】 Apache :发布PHP的.LAMP:Linux Apache MySQL PHP. IIS :发布ASP的. WebSphere :IBM公司研发,收费的大型服务器软件,支持EE的所有的开发规范. WebLogic :BEA公司研发,收发的大型服务器软件,支持EE的所有的开发规范. Tomcat :Apache组织研发,免费的小型的服务器软件,支持Servlet/JSP的开发规范. JBoss :
【WEB动态资源目录结构】 website |-----静态资源 |-----WEB-INF |-----web.xml :必须的 |-----classes :可选的 |-----lib :可选的 Tomcat的安装: 【安装Tomcat】--- 解压即可.
【发布一个WEB工程到Tomcat中共有三种方式】 * 1.直接将工程copy到tomcat/webapps下. * 2.配置tomcat虚拟路径: * 3.配置tomcat虚拟路径: 【方式一:直接将项目copy到webapps下】 * 将工程复制到webapps即可. 【方式二:配置tomcat的虚拟路径-不推荐】 * 在tomcat/conf/server.xml文件中进行配置: * 在<Host>标签下配置: * <Context path="/itheima"docBase="C:/website"/> 【方式三:配置tomcat的虚拟路径-推荐】 * 在tomcat/conf/Catalina/localhost/xxx.xml * 配置<ContextdocBase="C:/website"/> * xxx作为虚拟路径的名称. 【Tomcat常见问题】 【没有配置JAVA_HOME引发tomcat一闪消失】 * 一定要配置JAVA_HOME环境变量. 【端口号冲突的问题】 * 一种:将占用端口的应用结束. * netstat -ano * 打开任务管理器结束: * 二种:修改自身应用的端口号.
* tomcat/conf/server.xml
【HTTP的协议的概述】 HTTP协议的特点: 基于请求和响应的模型. 必须先有请求后有响应. 请求和响应必须成对出现. 默认的端口号是80. HTTP协议的版本: 1.0 :每次响应后即刻关闭了连接. 1.1 :现在使用.不是每次响应后挂断,等待长时间以后没有请求会挂断. 【HTTP协议的详解】 请求部分 请求行 提交方式: 提交方式有很多,常用的GET和POST: GET和POST的区别: GET的提交的参数会显示到地址栏上,而POST不显示. GET往往是有大小限制的,而POST没有大小的限制. GET没有请求体,而POST有请求体. 请求头 都是键值对的形式显示的 -- 一般一个key对应一个value,也有个别的是一个key对应多个value. User-Agent :代表浏览器的类型. --- 文件下载:下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64编码. 解决不同版本浏览器冲突/处理方式不同的问题 Referer :代表的是网页的来源. --- 防盗链. If-Modified-Since :通常与响应中的头Last-Modified一起使用查找本地缓存.
响应部分 响应行: 协议版本 状态码 状态码描述 协议版本 状态码 : * 200 :成功 * 302 :重定向 * 304 :查找本地缓存 * 404 :资源不存在 * 500 :服务器内部错误 状态码描述 响应头:键值对,一般一个key对应一个value,也有一个key对应多个value. Last-Modified :与请求中的If-Modified-Since一起使用查找本地缓存. Content-Disposition :文件下载的使用使用的一个头信息. Location :重定向的跳转的路径. Refresh :定时刷新/定时跳转. 响应体:显示浏览器的页面的内容.
【Servlet的概述】 什么是Servlet: 就是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议. Servlet就是SUN公司提供的一个动态网页开发技术. Servlet的作用: 用来处理从客户端浏览器发送的请求,并且可以对请求作出响应 使用Servlet: 编写一个类实现Servlet接口. 将编写的这个类配置到服务器中. 常用方法
* String getParameter(Stringname); ---用于接收一个名称对应一个值的数据. * String[]getParameterValues(String name);---用于接收一个名称对应多个值的数据. * MapgetParameterMap(); ---用于接收表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交参数的值.
*EnumerationgetParameterNames() ---用于获取表单中提交的所有的参数的名称. 【解决乱码问题】
浏览器向服务器携带中文? get方式 get的参数都藏在请求行中,请求行中编码是固定ISO8859-1 解决方案: 通过String的构造方式来解决 例如: 文件名是filename---> new String(filename.getByte("ISO8859-1"),"UTF-8"); post方式 post的方式参数藏在请求体中,将请求体中的编码改成UTF-8就行了 request.setCharacherEnconding("UTF-8"); 服务器向浏览器输出中文的时候乱码解决??? 设置响应头 响应头的编码是固定的ISO-8859-1,所有我们需要给浏览器能看懂的东西 if(header.contains("Firefox")){ filename = base64EncodeFileName(filename); }else{ filename = URLEncoder.encode(filename, "UTF-8"); } public static String base64EncodeFileName(String fileName) { BASE64Encoder base64Encoder = new BASE64Encoder(); try { return "=?UTF-8?B?" + new String(base64Encoder.encode(fileName .getBytes("UTF-8"))) + "?="; } catch (UnsupportedEncodingException e) { e.printStackTrace(); throw new RuntimeException(e); } } 设置响应体 getOutputStream getWriter
setContextType("text/html;charset=UTF-8")---> setHeader("Context-Type","text/html;charset=UTF-8 ") setCharaterEnconding("UTF-8");
|