Servlet

Servlet

  1. 如何使用

    1. 创建类,并且继承 HttpServlet

    2. 覆写doGet()和doPost()方法

    3. 在web.xml里面配置映射

    <servlet>
            <servlet-name>test</servlet-name>
            <servlet-class>com.tredu.demo.TestServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>test</servlet-name>
            <url-pattern>/test</url-pattern>
        </servlet-mapping>

    load-on-startup = 1 : 当服务启动的时候,就是实例化该servlet

  2. 生命周期

    • 请求发送:

      1. 先执行构造方法,用于实例化servlet

      2. 调用 init()做初始化操作

      3. 调用service() – doget(),dopost()方法处理逻辑操作和数据交换

      4. 响应

      5. 当服务停止,执行destroy()方法进行资源释放和销毁

  3. Request

    • 请求

      • get

        • 请求参数在请求行中,在url后。

        • 请求的url长度有限制的

        • 不太安全

      • post

        • 请求参数在请求体中

        • 请求的url长度没有限制的

        • 相对安全

    • req.getParameter(‘username’)

    • req.setCharacterEncoding(“utf-8”)

  4. response

    • 响应状态码

      • 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码

      • 2xx:成功。代表:200

      • 3xx:重定向。代表:302(重定向),304(访问缓存)

      • 4xx:客户端错误。

        • 代表:404(请求路径没有对应的资源)

        • 代表:405:请求方式没有对应的doXxx方法

      • 5xx:服务器端错误。代表:500(服务器内部出现异常)

    • resp.setContentType(“text/html;charset=utf-8”)去1

    • resp.setStatus(302) 设置状态码

    • resp.setHeader(“Location”,”https://www.baidu.com”)

    • 重定向 : resp.sentRedirect(”https://www.baidu.com”)

  5. 转发和重定向的特点

    1. 重定向的特点 redirect:

      • 地址栏发生变化

      • 重定向可以访问其他站点(服务器)的资源

      • 重定向是两次请求。不能使用request对象来共享数据

    2. 转发的特点 forward:

      • 转发地址栏路径不变

      • 转发只能访问当前服务器下的资源

      • 转发是一次请求,可以使用request对象来共享数据

  6. ServletContext

    • 最大作用域,所有请求共享的数据

      1. 通过request对象获取 request.getServletContext()

      2. 通过HttpServlet获取 this.getServletContext()

  7. Servlet底层原理

    1. 配合生命周期使用

    2. init方法

    3. service() —-判断你的请求方式

      • doGet

      • doPost

    4. 响应

    5. 销毁

  8. 初始化数据

    1. xml配置方式

      <servlet>
              <servlet-name>_07_InitParam</servlet-name>
              <servlet-class>com.tledu.zrz.servlet._07_InitParam</servlet-class>
              <!-- 这种参数,只能让当前这一个Servlet去使用,并且获取方式通过ServletConfig对象 -->
              <init-param>
                  <param-name>name</param-name>
                  <param-value>张三</param-value>
              </init-param>
      </servlet>
    2. 注释方式

      @WebServlet(name = "test1", value = "/test1",loadOnStartup = 1,initParams = {
              @WebInitParam(name = "name", value = "张三")
      })

  9. Jsp 三种语法

    • <%! %>类体中

    • <% %>方法体中

    • <%= %>向页面输出

    • 导入包:Import = :java.util.*

    • 错误页面 errorPage = “xxxx.jsp”跳转的页面需要设置isErrorPage属性,isErrorPage可以设置true/false,表示此页面是否为错误页面

    • 合并页面(一般)

      • <%@include file=“fileURL%>静态包含其他页面,两个页面合并为一个页面,只生成一个class文件

      • <jsp:include page=“fileURL” flush="true"> 态包含,两个页面生成两个class , 动态调用

  10. 九大内置对象

    1. pageContext

    2. request :一次请求访问的多个资源(转发)

    3. response : 响应对象

    4. page

    5. out

    6. exception

    7. session : 一次会话的多个请求间

    8. application – 最大的数据共享域

    9. config

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值