A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 周杰11 初级黑马   /  2018-2-4 18:34  /  1050 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2018-2-8 16:08 编辑

servlet+tomcat基础

软件的架构
        *C/S架构的软件,pc客户端,如QQ..
                优点:效果炫,速度快
                缺点:后期维护麻烦
        *B/S架构的软件,游览器就可以访问到,如京东...
                优点:维护方便
                缺点:效果不炫,所有代码运行在服务端,导致服务器压力过大.
                                效果可以使用h5和c3,可以做出很炫的效果
                                服务器端压力:搭建集群,而且还有AJAX技术.                                

WEB的资源
        *静态资源:        
                html,css,js,图片...
        动态资源(能和数据库相连):
                php,asp,servlet/jsp
服务器
        *硬件:其实就是一台配置很高的电脑
        *软件:必须在一台电脑上安装服务器的软件,这台电脑才能被称为web服务器
常见的Web服务器
        *Apache:发布php的
        *iis:发布ASP的
        *webSphere:支持EE,收费的,大型的
        *WebLogic:支持EE,收费的,大型的
        *Tomcat:Apache组织研发的,免费的小型额服务器,支持Servlet/JSP
        *JBoss:
        
WEB动态资源的目录结构
        Website
                ----静态资源
                ----WEB-INF
                        ---web.xml(2.5必须[目前我们使用的是2.5],3.0可以没有它)
                        ---classes(java类写的class文件放在这里)
                        ---lib(jar包)               
Tomcat目录结构
        bin:tomcat的执行文件
        conf:配置文件,server.xml核心配置文件
        lib:tomcat需要的jar包
        logs:tomcat运行的日志文件
        temp:临时文件存放的路径
        webapps:tomcat发布web项目的路径
        work:tomcat运行jsp的时候,jsp被翻译成Servlet大代码存放的路径
        
Tomcat一闪消失问题:
        没有配置JAVA_HOME环境变量
        在startup.bat  里写pause,会让dos窗口暂停来查看错误
        Dos命令查看占用端口详情:netstat -ano
        
协议:规定双方需要遵守的规则
http协议的作用:规范游览器和服务器之间的数据传递。
http协议特点:
        基于请求和响应的模型        
                必须先有请求后有响应
                请求和响应必须成对出现
http协议的版本:        
        1.0:每次响应后即刻关闭了连接
        1.1:现在使用,不是每次响应后挂断,等待时间厂里以后没有请求就会挂断
        请求部分
                *请求行
                        *提交方式:常用get和post
                                get的提交方式的参数会显示在地址栏上,而post不会
                                get往往会有大小限制,而post没有大小限制
                                get没有请求体,而post有请求体
                        *提交路径:
                        *协议版本:
                *请求头
                        都是键值对形式,通常是一个key对应一个value,也有一个key对应多个value
                        User-Agent :游览器类型,文件下载,下载中文文件:IE使用URLEncodor进行编码,而Firefox使用Base64
                        Referer:记录网站的来源,防盗链
                        If-MOdified-Since:通常与响应中的头Last-Modified一起使用
        
                *请求体
                        就是post提交方式的提交参数。
响应部分
        *响应行
                协议版本
                状态码:
                        200:成功
                        302:重定向
                        304:查找本地缓存
                        404:资源不存在
                        500:服务器内部错误
                状态码描述
        响应头:键值对,一个key对应一个value 也有一个key对应多个value        
Servlet的概述
        什么是Servlet
                是运行在Web服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用http协议
                Servlet就是SUN公司提供规范,接口,来实现动态网页开发的技术               

        使用Servlet
                编写类来实现Servlet接口               
使用ServletRequest接收参数
        String getParameter(String name)用于接收一个名称对应一个值得数据
        String getParameterValues(String name)用于接收一个名称对应多个值得数据
        Map getParameterMap();用于接收表单中的所有数据,Map的key是表单提交的参数名称,value是提交参数的值            
        *****req.setCharacterEncoding("UTF-8");//设置请求体中的乱码(Post)其他的设置不了
        req.getParameterMap();//得到一个Map集合
        for(String key:map.keySet()){
                String value=map.get(key);
                syso(value);
        }
一、请求的转发:
                1、调用HttpServletRequest的getRequestDispatcher()方法获取RequestDispathcher对象;
                调用getRequestDispatcher()需要传入要转发的地址:
                String path = "testServlet“;(testServlets是地址)
                RequestDispatcher requestDispatcher = request.getRequestDispatcher(”/“+path);

                2、调用HttpServletRequest的forward(request,response)进行请求的转发。
                requestDispatcher.forward(request.response);


                二、请求的重定向方法:
                1、执行请求的重定向,直接调用response.sendredirect(path)方法;
                String path = "testServlet";
                response.sendredirect(path);




                两者的区别:
                请求转发只发出一次请求,重定向发出两次请求;


                1、请求转发:地址栏是初次发出请求的地址;
                请求重定向:地址栏不再是初次发出的请求地址,地址栏为最后相应的那个地址;


                2、请求转发:在最终的Servlet中,request对象和中转的那个热区set是同一个对象;
                请求重定向:在最终的Servlet中,request对象和中转的那个request不是同一个对象;


                3、请求转发:只能钻法给当前web应用的资源;
                请求重定向:可以重定向到任何资源;


                4、请求的转发:"/"代表的是当前web应用的根目录;
                请求重定向:“/”代表的是当前web站点的根目录;
               
               
                        


Post提交方式解决乱码问题
        直接到达后台的Servlet。数据封装到Servlet中的request中
        设置request缓冲区的编码
                request.setCharacterEnconding("UTF-8");
get提交方式解决乱码问题
        修改tomcat字符集的编码(不推荐)
        使用URLEncoder和Decoder
        使用new String()




a标签是get请求方式,用new String()来处理乱码


重定向和转发的区别(redirect和forward的区别):
        重定向的地址栏胡发送生改变,而转发不会发生改变
        重定向两次请求,两次响应, 而转发一次请求一次响应
        重定向路径需要加工程名,而转发不需要加工程名
        重定向可以跳转到任意网站,而转发只能在服务器内部



1 个回复

倒序浏览
我来给你顶顶帖 加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马