美文网首页
2019-04-22 Servlet

2019-04-22 Servlet

作者: 北街九条狗 | 来源:发表于2019-04-22 21:17 被阅读0次

Servlet的生命周期

构造器 : 当第一次访问Servlet时,会被调用,且只被调用一次
init():在调用构造器之后立即就被调用,且只被调用一次
service():是受理请求的方法,可以被多次调用
destory():是销毁方法,当web应用在服务器上卸载时被调用

Servet

  • Servet初始化配置
    ①. 2.5中需要在web.xml中进行配置
<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">
    <!-- 注册一个Servlet到Tomcat -->
    <servlet>
        <!-- 注册的名字,任意起  -->
        <servlet-name>hello</servlet-name>
        <!-- 要注册的serlvet全限定名 -->
        <servlet-class>com.neuedu.servlet.HelloServlet</servlet-class>
    </servlet>
    <!-- Servlet 映射 -->
    <servlet-mapping>
        <!-- 注册的名字-->
        <servlet-name>hello</servlet-name>
        <!-- hello对应的servlet的映射路径 -->
        <url-pattern>/helloworld</url-pattern>
    </servlet-mapping>
</web-app>

load-on-startup

可以指定Servlet被创建的时机

<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.neusoft.javaweb.HelloServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
 </servlet>

在加载完Servlet后直接就创建了Servlet实例,并进行了初始化,在此期间我们并没有提出请求。
如果配置了多个Servlet, load-on-startup的值越小越先启动(包括0,负数不会被启动,还是需要发出请求才创建实例并初始化);

  • 3.0 还可以简单的在Servlet中通过注释进行通配
@WebServlet(
        urlPatterns="/LoginSerlet",
        initParams= {
                @WebInitParam(name="pasword",value="666")   
            }   
            
        )
或者
@WebServlet("/LoginSerlet")

Servlet映射细节

在Servlet映射到的URL中也可以使用 * 通配符,但是只能有两种固定的格式:
一种格式是“* .扩展名”

<servlet-mapping>
    <servlet-name>AnyName</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
另一种格式是以正斜杠(/)开头并以“/ * ”结尾。
<servlet-mapping>
    <servlet-name>AnyName</servlet-name>
    <url-pattern>/action/*</url-pattern>
</servlet-mapping>
注意:既带 / 又带 * 的,又带扩展名的,是不合法的(例如:/*.do)

全局初始化参数web.xml

<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_3_0.xsd" id="WebApp_ID" version="3.0">
  <context-param>
    <param-name>username</param-name>
    <param-value>mike</param-value>
  </context-param>
</web-app>
  • POST和GET请求

Get 请求是将请求参数拼接在请求URL路径的后面,以?隔开,以key=value的方式传递 ,多个参数xxxx?key1=value1&key2=value2...
Get 是不安全的,因为在传输过程,数据被放在请求的URL 中;Post 的 所有操作对用户来说都是不可见的;
Get 传输的数据量小,这主要是因为受URL 长度限制(1K);而Post 可以传输大量的数据,所以在上传文件只能使用Post;

  • Servet中
    destroy()在销毁是运行
    init() 是初始化方法
    service() 是运行方法
  • 直接建Servet包时,他会自动继承HttpServlet类,其中重写的方法中request是处理请求的量,response是处理响应的量
  • Servet中的几个方法
    请求时支持中文
    request.setCharacterEncoding("utf-8");
    响应时支持中文
    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html; charset=utf-8");
    获取请求参数
    request.getParameter();
    获取全局初始化参数
    getServletContext().getInitParameter();
    获取当前Servlet初始化参数
    getServletConfig().getInitParameter();
    在页面打印,如果在print()输入HTTP语法会自动识别
    response.getWriter().print();
    获取复选框请求参数
    String hobby[] = request.getParameterValues("hobby");
    在servlet获取项目根目录
    request.getContextPath();
    在jsp获取项目根目录
    ${ pageContext.request.contextPath }
  • 请求转发和请求重定向
    它们都能实现资源跳转
    ①请求转发只有一次请求,重定向有两次
    ②请求转发不能看见最终申请资源的URL,而重定向可以
    ③请求转发只能转发站内资源‘,重定向可以请求站外资源
    请求转发的方法:
    request.getRequestDispatcher("/login_success.jsp").forward(request, response);
    不需要写根目录
    请求重定向的方法
    response.sendRedirect("login_success.jsp");
    需要写根目录

相关文章

  • 2019-04-22 Servlet

    Servlet的生命周期 构造器 : 当第一次访问Servlet时,会被调用,且只被调用一次init():在调用构...

  • 【每日经济学人】2019-04-22

    2019-04-22 Hope remains for Western solidarity. Look at e...

  • servlet 笔记

    servlet servlet 声明周期 Servlet 的线程安全 Servlet 获取配置信息 Servlet...

  • Servlet

    Servlet介绍 Servlet开发步骤 创建Servlet 配置Servlet 配置Servlet中设置初始化...

  • 深入理解Servlet技术

    1. 什么是servlet servlet Servlet是javax.servlet.Servlet包中定义的一...

  • Servlet与Jsp(1)

    Servlet 实现原理Servlet接口使Servlet容器能将Servlet类载入内存,并在Servlet实例...

  • web.xml不同版本之间头信息的区别

    一、Servlet 2.3 二、Servlet 2.4 三、Servlet 2.5 四、Servlet 3.0 五...

  • Servlet入门

    Servlet简介 Servlet(Servlet Applet)是Java Servlet的简称,称为小服务程序...

  • Servlet 实例

    Servlet 实例 Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接...

  • Java Servlet API

    Servlet 支持的版本 Servlet 3.0 新特性详解 Servlet 3.0 新特性概述Servlet ...

网友评论

      本文标题:2019-04-22 Servlet

      本文链接:https://www.haomeiwen.com/subject/ajnugqtx.html