02-13作业

1.说说jetty与tomcat的区别

  • Jetty是一个轻量级的服务器,更小巧、快速。Tomcat服务器更适合于较大的工程
  • Jetty的内置编码是UTF-8,Tomcat则是latin1。所以使用jetty不会产生乱码的问题

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

  • 打开jetty的文件夹下的start.ini,找到如图的代码,修改即可
    在这里插入图片描述

  • 打开tomcat文件夹下的config文件夹,再打开conf中的service.xml文件,找到如下代码,修改即可
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NgQG7BTi-1581602252785)(C:\Users\Henry哼哼哼\AppData\Roaming\Typora\typora-user-images\1581595970343.png)]

3.如何启动jetty服务器?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iOrRICpr-1581602252787)(C:\Users\Henry哼哼哼\AppData\Roaming\Typora\typora-user-images\1581596101794.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KsBAS69i-1581602252788)(C:\Users\Henry哼哼哼\AppData\Roaming\Typora\typora-user-images\1581596115141.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-waqM1T0n-1581602252789)(C:\Users\Henry哼哼哼\AppData\Roaming\Typora\typora-user-images\1581596274725.png)]

  • 选择相应的工程后,就部署成功了

4、简述Servlet的生命周期

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S4M45GGo-1581602252792)(C:\Users\Henry哼哼哼\AppData\Roaming\Typora\typora-user-images\1581597174019.png)]

  • 我们看到Servlet接口有如下几个方法,查询是否存在servlet,没有了就创建servlet对象,init()方法初始化,创建好之后会判断请求和回应方式是get还是post方法,然后通过service()方法去执行具体的动作,当请求结束之后,destroy()方法用于servlet的销毁

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

  • 通过servlet接口中的service()方法,然后根据不同的请求类型,调用相应的doxx()方法

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

  • get请求会将用户在表单输入的信息展示在地址栏中,不安全,post不会
  • get传送的数据比较小,通常不大于2kb,而post则没有限制

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

  • 相对地址就是某个文件相对于另外一个大一层的文件的位置,使用起来比较好表示,但不是最准确的
  • 绝对地址就是相对于整个盘符的位置,通过绝对地址一定能找到相应的文件,但是表示起来比较繁琐

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

  • 重定向是使用sendRedirect()方法,重定向会发送两次请求,而我们知道servlet是多线程的,所以两次请求就会创建两个不同的request请求,这样之前保存的attribute信息就取不到了,那么地址栏的信息也会发生变化
  • 请求转发是使用getRequsetDispatcher().forward()方法,他只发送一个请求,地址栏的信息不会发生变化

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

  • page、config、out、exception、pageContext页面上下文、session、application整个应用唯一、request、response
  • servlet通过getsession()方法来获取session,application通过getServletContext()方法,通常将名字命名为servletContext

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

  • 单例是指该类的对象只能创建一个,即该类会将构造方法私有,然后对外只提供一个返回对象的静态方法。有懒汉和饿汉模式
  • 1、懒汉模式
public class Only {
	public static Only only;
	private Only() {

	}

	public static Only getInstance() {
		if (only == null) {
			only = new Only();
		}
		return only;
	}
}

  • 但是这样有个问题,在getInstance()中new only对象的时候,如果是多线程,如果线程1正在new还没有结束,此时线程2来了,他判断为null,那么也会new对象。所以为了安全,我们会加锁,但是加锁后要重复的判断是否为空,降低效率。
public class Only {
	public static Only only;
	private Only() {

	}

	public static Only getInstance() {
		if (only == null) {
			synchronized (Only.class){
				if (only == null){
					only = new Only();
				}
			}

		}
		return only;
	}

}
  • 2、饿汉模式
  • 饿汉模式是将成员变量设置为final,构造方法私有
class Only2{
	private static final Only2 only = new Only2();
	private Only2(){

	}
	public static Only2 getInstance(){
		return only;
	}
}
  • 可以看出,饿汉模式更简单、效率高、安全
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值