IT兄弟连 Java Web教程 经典面试题2

1.Servlet的工作流程?

Servlet是运行在Servlet容器中的,由Servlet容器来负责Servlet实例的查找、创建以及整个生命周期的管理,Servlet整个生命周期可以分为四个阶段:类装载及实例创建阶段、实例初始化阶段、服务阶段以及实例销毁阶段。

1)类装载及实例创建阶段:默认情况下,Servlet实例是在接受到第—个请求时进行创建并且以后的请求进行复用,如果有Servlet实例需要进行一些复杂的操作,需要在初始化时就完成,比如打开文件、初始化网络连接等,可以配置在服务器启动时就创建实例,具体配置方法为在声明servlet标签中添加<load-on-sta rtup >l</load-on-startup>标签。

2)初始化init(ServletConfig config):一旦Servlet实例被创建,将会调用Servlet的init方法,同时传入ServletConfig实例,传入Servlet的相关配置信息,init方法在整个Servlet生命周期中只会调用一次。

3)服务service():为了提高效率,Servlet规范要求—个Servlet实例必须能够同时服务于多个客户端请求,即service()方法运行在多线程的环境下,Servlet开发者必须保证该方法的线程安全性。

4)销毁destory0:当Servlet容器将决定结束某个Servlet时,将会调用destory0方法,在destory方法中进行资源释放,—旦destory方法被调用,Servlet容器将不会再发送任何请求给这个实例,若Servlet容器需再次使用该Servlet,需重新再实例化该Servlet实例。

 

2.简述如何处理表单提交的中文

处理表单提交的中文,分为两种情况,—是post方式提交表单、—是get方式提交表单。

1.处理post方式提交表单时的中文,步骤如下:

确保表单所在的页面按照指定的字符集打开,在HTML中设置如下:

<meta http-equiv = "content-tlrLoe" content = "text/html;charset=utf-8">

另外,在HTML中,将表单form的提交方式设置为POST。

在服务器端按照上述设置的编码格式进行解码,代码如下:

request.setCharacterEncoding("UTF-8");

该行代码要在第一次使用raquest的时候进行设置。

 

2.处理GET方式提交表单时的中文,步骤如下:

使用meta确保表单所在页面按指定字符集打开,在HTML中设置如下:

<meta chaset="UTF-8">

另外,在HTML中,将表单form的提交方式设置为GET。

将从表单中获取的信息使用上述设置的字符集utf-8进行重新编码。

例如:将从表单获取的username进行重新编码,代码如下:

String username - request.getParameter("username");

username = new String(username.getBytes("iso-8859-1"),"utf-8");

 

3.简述GET和POST的区别

GET和POST的区别如下:

1.从提交的数据量上来说,get方式会将请求参数及参数值放在请求资源路径里面,携带的数据大小有限制,不适合提交大量的数据;post方式会将请求参数及参数值放在实体内容里面,理论上没有限制,适合大量数据的提交。

2.从安全上来讲,post方式相对安全(困为请求参数及值存放在实体内容里面,而get方式会将请求参数及值显示在浏览器地址栏)。但是要注意,post方式并没有将数据加密。

4.如何重form表单中获取checkbox的值?

可在页面把checkbox的name属性取同一个,value属性取每个条目的id,在Servlet中使用HttpServletRequest的getParamterValues(”name”)能取到checkbox的一组值。

5.Servlet的生命周期

Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init方法进行Servlet的初始化,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

转载于:https://www.cnblogs.com/itxdl/p/10842764.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值