Servlet中的一些小知识点

1.jetty与tomcat的区别。

  • 相同点:
    jetty服务器和tomcat类似都是jsp/servlet容器,都是一种Servlet引擎,他们都支持标准的servlet规范和JavaEE的规范

  • 不同点
    1)jetty更下,更快,更灵活,内核更小。默认使用utf-8字符集,不存在中文乱码情况。不太适合做大型开放。
    2)tomcat比较传统,功能更强大,特别适合大型项目开发。缺点:经常有中文乱码,默认使用ISO_8859_1字符集。

    tomcat服务器中文乱码的解决方案:

  • 1.request.setCharacterEncoding();修改

  • 2.使用过滤器。(推荐使用过滤器) 但是过滤器只能解决 post请求的乱码

  • 3.在Tomcat安装目录下的conf目录下的server.xml添加URLEncoding=“utf-8” 但只能解决get请求的乱码

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URLEncoding="utf-8"/>

2.如何修改jetty默认端口?如何修改tomcat默认端口?

  • 修改jetty默认端口
    在这里插入图片描述在这里插入图片描述
  • 修改tomcat默认端口
    在这里插入图片描述在这里插入图片描述

3.如何启动jetty服务器?

cmd进入文件夹,然后输入java -jar start.jar
在这里插入图片描述

4.简述Servlet的生命周期。

 1.如果是第一次请求。
                          --->doGet
  构造方法-->init-->service            --->destroy
                         --->doPost

 2.如果不是第一次请求

说明这个servlet已经驻留内存了,直接执行Service方法。

            --->doGet
  service --             ---->destroy
            --->doPost

5.Servlet如何处理用户的请求?

在这里插入图片描述
单例多线程的方式处理请求

6.说说get请求和post的请求的区别。

GET:从服务器上获取数据,也就是所谓的查,仅仅是获取服务器资源,不进行修改。
POST:向服务器提交数据,这就涉及到了数据的更新,也就是更改服务器的数据。
GET在浏览器回退时是无害的,而POST会再次提交请求。

GET产生的URL地址可以被Bookmark,而POST不可以。

GET请求会被浏览器主动cache,而POST不会,除非手动设置。

GET请求只能进行url编码,而POST支持多种编码方式。

GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

GET请求在URL中传送的参数是有长度限制的,而POST么有。

对参数的数据类型,GET只接受ASCII字符,而POST没有限制。

GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

GET参数通过URL传递,POST放在Request body中。

7.说说相对地址与绝对地址的区别。

  • 相对地址
    相对当前资源的地址。 容易出错,写法简单
    /photo
  • 绝对地址
    放之四海而皆准的地址。 肯定不会出错,拼起来比较麻烦
    C://User/HTML/photo

8.说说请求重定向与请求转发的区别。

  • 重定向
    什么情况下特别适合使用请求重定向呢?最常见的情形就是权限认证失败后,必须请求重定向到登录页面,重新登录。
    在这里插入图片描述
    B一个web资源收到客户端A请求后,B他会通知A客户端去访问另外一个web资源C,这个过程叫重定向

  • 请求转发
    在这里插入图片描述
    B一个web资源收到客户端A请求后,B他会请求C客户端,C客户端去转发到B,通过B客户端A客户端访问另外一个web资源C,这个过程叫请求转发

    相同点

  • 页面都会实现跳转

    不同点

  • 请求转发的时候,url不会产生变化

  • 重定向时候,url地址栏会发生变化;

9.jsp有哪九大内置对象?servlet如何获取session和application对象?

  • jsp九大内置对象out,page,request,response,session,application,exception,pageContext,config

    常用的是:request,response,session,application, 只需要掌握这四个就够了。

    研究下在servlet中怎么获取这四个最常用的对象

    • request,response本身参数自带
    • request.getSession获取session;
    • request.getServletContext().setAttribute(“nation”,“china”); 获取application

10.什么是单例?单例有哪些设计模式?

保证整个系统中一个类只有一个对象的实例,实现这种功能的方式就叫单例模式。
常见的单例模式实现方式有五种:饿汉式、懒汉式、双重检测锁式、静态内部类式和枚举单例,饿汉式和懒汉式又最为常见!
饿汉式:
线程安全,调用效率高。但是不能延时加载,由于该模式在加载类的时候对象就已经创建了,所以加载类的速度比较慢,但是获取对象的速度比较快,且是线程安全的。

public class SingletonDemo1 {

    //线程安全的
    //类初始化时,立即加载这个对象
    private static SingletonDemo1 instance = new SingletonDemo1();

    private SingletonDemo1() {
    }

    //方法没有加同步块,所以它效率高
    public static SingletonDemo1 getInstance() {
        return instance;
    }
}

懒汉式
线程不安全,由于该模式是在运行时加载对象的,所以加载类比较快,但是对象的获取速度相对较慢,且线程不安全。

public class SingletonDemo2 {

    //线程不安全的

    private static SingletonDemo2 instance = null;

    private SingletonDemo2() {
    }

    //运行时加载对象
    public static SingletonDemo2 getInstance() {
        if (instance == null) {
            instance = new SingletonDemo2();
        }
        return instance;
    }

}

单例模式所属类的构造方法是私有的,所以单例类是不能被继承的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言用于封装代码的单元,可以实现代码的复用和模块化。C语言定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言用于存储同类型数据的结构,可以通过索引访问和修改数组的元素。字符串是C语言用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值