`
hanjiangit
  • 浏览: 178985 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jsp常见问题

阅读更多
原文地址:http://liujinpan75.iteye.com/blog/508263
1.Servlet与JSP有什么区别?
Servlet和JSP完成的功能是相同的,都可以接收用户的请求,可以对用户进行响应,可以调用业务方法。
不同点在于JSP是在html或者xml中嵌入了Java代码或者JSP的标记,在制作页面方面具有优势,可以使用网页编辑工具来制作网页,然后 嵌入Java或者JSP的标记。Servlet是纯Java代码,通常用于控制,不用于输出。在MVC模式中,JSP通常充当视图,Servlet通常充 当控制器。另外,JSP在运行的时候还要转换成类似于Servlet的Java代码。

2.Servelt通常有哪些方法
init方法,完成初始化
service方法,包括doGet和doPost,用于接收用户的请求,调用后台的JavaBean或者EJB,选择界面对用户响应。
destroy方法,用于释放资源

3.谈谈Servlet的生命周期
当接收到请求的时候,容器察看对应的Servlet对象是否存在,如果不存在,需要加载Servetl,实例化Servlet,调用init方法 进行初始化。如果已经存在,根据用户的请求创建request和response对象,把这两个对象作为参数调用Servlet对象的service方 法,Servlet通过这个方法与用户进行交互,方法执行完之后,对请求的处理结束。Servelt对象继续等待下一个请求。当应用卸载的时候,调用 destroy方法释放资源。多个请求共享Servelt对象。

4.Servlet API的两个主要包
javax.servlet.*;
javax.servlet.http.*;

5.编写Servlet需要继承的类是什么?
HttpServlet

6.编写Servlet通常需要实现的两个方法是什么?
doGet方法和doPost方法

7.doGet方法和doPost方法中的两个参数是什么?
HttpServletRequest和HttpServletResponse,前者封装了与请求相关的信息,后者封装了与响应相关的信息。要获取请求信息,从第一个参数获取,要对用户响应,通过第二个参数。

8.要获取用户信息,如何获取
request的getParameter方法和getParameterValues方法,前者用于获取单值表单元素的值,或者用于获取多值的情况,典型的复选框。前者返回的是一个字符串,后者返回的是字符串数组。如果参数指定的表单元素不存在,返回null。

9.要给用户响应信息,如何完成?
设置响应内容的类型:response.setContentType(“text/html;charset=gb2312”);
获取输出流对象:PrintWriter out = response.getWriter();
输出信息:通过out的println方法

10.在Servlet中选择接面对用户响应,如何实现
两种方式:使用RequestDispatcher和response的sendRedirect方法
如果使用RequestDispatcher:
RequestDispatcher rd = request,getRequestDispatcher(“目标文件”);
rd.forward(request,response);
如果使用sendRedirect方法
response.sendRedirect(“目标文件”);

11.上面的两种方式有什么区别?
RequestDispatcher的forward方法相当于<jsp:forward>的作用。类似于方法调用,当执行到这行代 码的时候,通过forward方法转向执行目标文件,把request和response作为参数传递到下一个页面,这样当前页面(Servlet或者 JSP)和目标页面共享了request,可以通过request对象传值。response的sendRedirect方法相当于向客户端浏览器发送了 一个消息,让浏览器重新请求目标文件,从用户的角度来说,相当于发送了两次请求,每次请求有独立的request和response对象,不能通过 request在两个页面之间传值。从地址栏看,前一种方式在地址栏中显示的第一个文件的路径,后一种方式显示的第二个文件的路径。

12.在Servlet中如何获取Session对象,如何获取Cookie
使用request对象的getSession方法获取session,通过getCookies获取Cookie

13. Servlet在哪个文件中进行配置?

在Web应用的WEB-INF下面的web.xml中进行配置。

14.如何配置Servlet
包括两步:Servlet的声明和Servlet访问方式的声明。
Servlet的声明:
<servlet>
<servlet-name>servlet的名字(自己定义的)</servlet-name>
<servlet-class>servlet的完整类名</servlet-class>
</servlet>
Servlet访问方式的声明
<servlet-mapping>
<servlet-name>Servlet的名字(应该和声明的时候保持一致)</servlet>
<url-pattern>访问路径</url-pattern>
</servlet-mapping>

15. 编译好的Servlet类放在什么位置?
放在Web应用WEB-INF下面的classes文件夹中。

16. 假设网站的IP地址为1.2.3.4,端口8878,应用的名字hello,servlet的访问方式/hello,现在要访问这个servlet,如何访问?
http://1.2.3.4:8878/hello/hello

17.谈谈Servlet过滤器的作用?
     Servlet是特殊的Servlet,能够对特定的请求路径进行过滤,在访问这个路径之前,先执行过滤器,过滤器进行预处理,过滤器决定是否继续执行后续的文件。典型的应用,可以把用户验证的代码写在过滤器中,然后把过滤的路径配制成需要验证的文件的路径。

18.谈谈Servlet监听器的作用
Servlet监听器对特定的事件进行监听,当产生这些事件的时候,会执行监听器的代码。可以对应用的加载、卸载,对session的初始化、销毁,对session中值变化等事件进行监听.

19.jsp页面怎么使用注释?
有两种方法,一种是纯服务器端注释<%-- --%>客户端是不可见的,web容器不会把它转成html,还有一种就是html注释<!-- -->,客户端可见。

20.jsp标准动作
jsp标准动作有
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"
    isErrorPage="false" buffer="8kb" errorPage="/jsp/error.jsp"%> 定义此jsp的一些属性。
<%@taglib prefix="s"  uri="/struts-tags" %> 引入一个自定义标签。
<%@include  file=""%> 引入一个文件。
<%%> 中间可以嵌入一段java代码。
<%=%> 可以用java代码输出一个值。
<%!%>:这是命令声明,在里面定义的变量时全局变量,除非jsp重新编译,或者web容器关闭值才会失效。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics