2019-04-22 Servlet

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");
    需要写根目录
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • IOC 控制反转容器控制程序对象之间的关系,而不是传统实现中,有程序代码之间控制,又名依赖注入。All 类的创建,...
    irckwk1阅读 4,629评论 0 0
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 5,279评论 0 10
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,924评论 1 14
  • 16. Web MVC 框架 16.1 Spring Web MVC 框架介绍 Spring Web 模型-视图-...
    此鱼不得水阅读 4,734评论 0 4
  • Servlet Interface 是Java Servlet API的核心抽象。所有的servlets都直接或者...
    Lucky_Micky阅读 5,745评论 2 2

友情链接更多精彩内容