Servlet知识点整理(3)

Servlet知识点整理(3)

1.Servlet 调用过程(在浏览器输入地址以后,到获取数据的过程中,都经历了什么?)
答:首先,客户机浏览器根据IP地址,找到要访问的服务器;连接上这台服务器;然后客户机的浏览器发送http请求头给服务器;服务器收到请求头以后分析协议请求头,得知客户机要访问的主机、web应用、哪一个资源;服务器上的动态资源,都对应着一个servlet类,如果该资源是第一次被外部访问,也就意味着servlet类是第一次被访问,那么,服务器会创建一个该servlet类的一个对象,这个对象有生命周期方法,创建完毕后自动执行init()方法,进行初始化(只要这里,才对第一次很在意);然后,服务器创建代表请求的ServletRequest对象;代表回应的ServletResponse对象,这时候的ServletResponse是空的回应头;接着调用Servlet的service()方法,来响应客户机的请求;执行我们写的逻辑;Servlet对象将service()方法的处理结果返回;也就是将数据写到了ServletResponse对象中;服务器发现ServletResponse对象中有数据了,就会从ServletResponse中取出数据,构建一个http响应头,回送给客户机;客户机的浏览器收到回应,解析出数据。

2.解决乱码问题的几种策略。
情景一:页面本身有中文的时候。
解决办法:Servlet:resp.setContentType(“text/html;charset=gbk”);
Jsp:<%@page cont entType=“text/html;charset=gb2312”%>
注意:一定要写在PrintWriter out = resp.getWriter();之前
情景二:解决get方式乱码问题:
解决方法:修改server.xml URLEncoding=“GBK”
情景三:解决post方式提交内容的乱码
解决办法:request.setCharacterEncoding(“GBK”);
注意:一定要写在存取第一个参数之前,不要调用response.setCharacterEncoding(“GBK”);
情景四:<jsp:param name=“user” value="<%=s%>"/>,url地址包含中文参数
解决办法:<%request.setCharacterEncoding(“GBK”);%>

3.Cookie和Session的区别。

CookieSession
存储在客户端服务器端
两种类型:有声明周期:无声明周期两种实现方式:依赖于cookie;重写URL
不可靠可靠
父路径不能访问子路径的cookie同一个session的窗口共享一个session
典型应用:3个月不用再登录;购物车用户登录;购物车也可以用session实现

4.WEB-INF目录下面不能放置html,jsp等文件
答:不能直接打开

5.jsp/servlet连接数据库的注意事项
答:拷贝数据库的jar包到apache-tomcat-6.0.14\webapps\Test\WEB-INF\lib文件夹下;确认数据库已经启动;用户名、密码正确;

6.配置缺省的servlet
答:如果某个Servlet的映射路径仅仅是一个正斜杠/,那么这个Servlet就成为当前web应用程序的缺省Servlet;凡是在web.xml中,找不到匹配的元素的URL,他们的访问请求都会交给缺省的Servlet处理。

7.Servlet线程安全问题
答:线程安全就是多线程访问同一段代码不会产生不同的结果,编写线程安全的代码是依靠线程同步。Servlet不是线程安全的,工作效率高。所以不要在Servlet中创建成员变量,创建局部变量即可。如果创建成员变量,那么它可以是无状态的(不保存数据)。可以创建有状态的成员(保存数据),那么他必须是只读的。防止一个线程执行读操作,一个线程执行写操作。

8.读取资源文件的三种方式。

Web应用中的servlet程序读取资源文件                 

通过servletContext对象的getResourceAsStream(配置文件在服务器的路径) 方法获得 input 流
通过servletContext对象的 getRealPath(配置文件在服务器的路径) 返回配置文件的绝对路径;获得文件的 绝对路径 然后就可以使用 FileInputStream 读取了 ;这种方式,一般用在下载的时候,需要获取资源的名称 ;从绝对路径中截取 ;
Web应用中的普通java文件读取资源文件
如果读取资源文件的程序不是servlet的话,那就没有servletContext对象给我们用了;就只能通过类加载器来读取了 ;但是资源文件不能太大 ;它会把资源文件当做类一样,加载到内存中,文件太大,内存就会溢出 ;

9.ServletConfig 
答:ServletConfig是Servlet的配置文件。对应于web.xml中的标签。ServletConfig是由java提供的一个接口,其实现类是由tomcat提供。其API有:
String getServletName();//获取中的内容
ServletContext getServletContext();//获取Servlet上下文对象
String getInitParameter(String name)//通过名称获取指定初始化参数的值
Enumeration getInitParameterNames()//获取所有初始化参数的名称

10.ServletContext 
答:一个项目只有一个ServletContext,相当于标签。可以在不同的Servlet中获得这个唯一的对象,可以给多个Servlet传递数据。tomcat启动时创建,在tomcat关闭时才销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值