Servlet_总结

Servlet
    是一个接口,定义了生命周期等等方法属性,本身定义的是一种网络服务
    是sun为后续技术发展做的一个接口,目前仅Http协议,今后可能会发展出其他协议
    因此,再有新的协议出现的时候,直接实现Servlet接口即可。
HttpServlet
    HttpServlet遵循HTTP协议并实现了servlet接口,并把servlet接口中的方法实现了
    doget和dopost是执行用户请求的终点,get请求会调用doget方法,post请求会执行dopost方法。
    所以我们可以再这2个方法中定义我们自己的业务逻辑。

实现
    web.xml配置映射  
        <servlet>
            <servlet-name>className</servlet-name>
            <servlet-class>package.class</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>className</servlet-name>
            <url-pattern>/index</url-pattern>
        </servlet-mapping>
    添加注解
        @WebServlet(name = "className", urlPatterns = "/index")
            public class IssuServlet extends HttpServlet {
        }

Request

request
    定义
        封装了客户端请求的信息
        包括
            请求行(General) :请求方式,资源路径,协议
            请求头(Request Headers) Referer用于防盗链
            请求体(Query String Parameters) 请求参数

    demo:
        G:\project\demo\interface\servlert

请求转发     
    request.getRequestDispatcher(String path).forward(request,response);  
    一次请求,服务器跳转
    地址栏不变
    只能在同web内跳转,可传递request对象,不可跨域

 

统一资源定位符    例如 http:/localhost:8080/MavenMyutils/home.do    request.getRuquestURL()

  1. 协议和版本    例如 HTTP/1.1     request.getProtocol()
  2. 协议    例如 http    request.getScheme()
  3. 域名    例如 localhost    request.getServerName()
  4. 端口    例如 8080    request.getServerPort()
  5. 发布到tomcat下的项目名称    request.getContextPath()
  6. servlert路径    request.getServlertPath()
  7.  

 

Response

response
    定义
        封装了服务器返回客户端信息的对象
        包括响应行,响应头,响应体
    demo:
        G:\project\demo\interface\servlert
    重定向
        response.sendRedirect("http://www.baidu.com") 
        可以跨域
        两次请求
        浏览器地址栏改变
        记得重定向完加return 
        两个请求已经不在一个线程了(一个请求就是一个线程,servlert多线程单实例)

 

Cookie对象

cookie
    定义:
        服务器向客户端写的文本内容
    规则:
        服务器只能获取自己写的cookie
        客户端可以阻止服务器写入
    种类:
        属于窗口/子窗口(放在内存中的)
        属于文本(放在本地,有生命周期的)
    作用域:
        对于服务器而言:内存里的cooie只能被同一个浏览器及其子窗口访问
        对于客户端而言:同一个浏览器窗口的cookie能够被同一个webapp(跨域失效)下的url访问
        同一个
    6:一个servlet/jsp设置的cookies能够被同一个路径下面或者子路径下面的servlet/jsp读到 (路径 = URL)(路径 != 真实文件路径)

Session对象

session
    定义:
        一个浏览器访问服务器,服务器自己开辟一块session内存,用来保存访问者信息,因为http协议是非连接的,
        服务器还需要将这个session独一无二的sessionid给浏览器,这样才能保证浏览器每次请求,服务器读取它自己的session信息。
        浏览器关闭,session消失
    作用域:
        对于浏览器而言,同一个webApp(不能跨域)下的所有url共享一个一个session
        对于服务器而言,只能是同机器的同一个浏览器(包括子窗口),再打开一个浏览器 不共享session
    重点:
        1.记录在服务器端内存里的数据
        2.浏览器关闭session结束
    实现:
        将sessionid写给客户端即可实现session功能:cookie实现或者url重写实现
    demo:
        G:\project\demo\interface\servlert
    场景;
        系统权限:session里设置你用户的权限,其他页面的Controller根据session里的权限决定页面哪些隐藏
        登录
        白名单

 

Application对象

post请求和get请求的区别

从底层实现上来看,本质上俩这没什么区别,都是基于通信协议向指定的URL传数据

细节上的区别在于:
get方式一次性将数据放在请求头里,一次性将数据发送到指定URL

post方式分两步,第一步先发送请求头告诉服务器我要传Form Data 数据,服务器响应后在发送Form Data给服务器

因为get方式发送的参数会在URL显示,被缓存到,不安全,而post请求的参数看不到,但是F12就能解决,所以...

get方式发送数据的大小受浏览器对URL长度的限制,比较小,而post请求的大小受到服务器处理数据能力的限制,一般会比较大。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值