jsp主要内置对象有:application、exception、pageContext、request、session、response__out、config、page。
5、 application对象是代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息,而session对象则是每个客户专用的。
JDBC的主要任务是:与数据库建立连接、发送SQL语句、处理结果
7、 一个Bean由三部分组成:实现java.io.serializable接口、提供无参数的构造方法、提供getter()和setter()方法访问它的属性。
9、 Servlet的生命周期分三个时期:装载Servlet、创建一个Servlet实例、销毁。
10、 JSP开发网站的两种模式分为_jsp+javabean_和jsp+javabean+servlet
1. 什么是request对象,它有哪些常用的方法。
1. 答:“request” 对象代表的是来自客户端的请求,例如我们在FORM表单中填写的信息等,是最常用的对象。关于它的方法使用较多的是getParameter、getParameterNames和getParameterValues,通过调用这几个方法来获取请求对象中所包含的参数的值。
3.什么是application对象,application对象与session对象的区别?
1)“application” 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等。
2)与session对象不同:服务器启动后,就产生application对象。当客户访问服务器上的Jsp时,Jsp引擎就为该客户分配这个application对象。所有的客户的application对象都是同一个。即所有的客户共享这个内置的application。
4、这些内置对象都代表什么意思?
答:request,请求对象:代表的是来自客户端的请求
response,响应对象:代表的是对客户端的响应
session,会话对象:代表服务器与客户端所建立的会话
application,应用程序对象:负责提供应用程序在服务器中运行时的一些全局信息
out,输出对象:代表了向客户端发送数据的对象
exception,异常对象:代表了JSP文件运行时所产生的异常对象
5、分页的步骤和关键代码?
答:1)首先取得总的记录数m。
2)根据每页显示的n计算总的页数pageSize。
3)设定一个变量为要显示的页:showPage。
4)设定一个变量为记录显示记录的位置:positoion
如果要显示第showpage页则:
int position=(showPage-1)*pageSize+1;
rs.absolute(postion);//设置游标的位置
…
for(int I=1 ;I
{
out.print(“
”);out.print(“
”+rs.getString(1)+””);…
out.print(“
”);rs.next();
}
2. 什么是URL重写?Jsp中如何实现URL重写?
2.答:URL重写:当客户从一个页面重新连接到另一个页面时,通过向这个新的URL添加参数,把session对象的Id传带过去,这样可以保障客户在客户在该网站各个页面中的session对象是完全相同的。
实现URL重写的方法:使用response对象调用encodeURL()或encodeRedirectURL()实现URL重写。例如:从tom.jsp连接到jerry.jsp
1) String s=session.getId();
2) String str=response.endcodeURL(“jerry.jsp”);
3) //连接目标
3. 从表单中获得参数常用方法有哪些?
1)getParameter() 获取参数的值
2)getParameterNames() 获取参数的名称
3)getParameterValues() 获取多个值
1.简述servlet进行中文处理的方法。
res.setContentType(“text/html;charset=gb2312”);
5.JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
3.简述Jsp的执行过程。
.答: 1)客户端发出Request(请求);
2)JspContainer将Jsp转译成Servlet源代码;(字节码)
3)将产生的Servlet的源代码经过编译后,并加载到内存执行;
把结果Response(响应)至客户端。
2.请写出获取初始化参数的方法。
答:1)使用ServletConfig对象访问初始化参数:
ServletConfigconfig=getServletConfig();
Config.getInitParameter(“name”);
3. 简述使用Cookie进行会话跟踪的过程。(写出主要步骤,即存取数据的步骤)
答:保存到Cookie中:
Cookie=new Cookie(“userType”,user);
从Cookie中取数据:
Cookie[] cookie=req.getCookies();
if (cookies!=null){
for(int I=0;I
{
if (cookies[I].getName().equals(“userType”));
String userType=cookie[I].getValue();
}
4.JavaBeans具有的特点有哪些?
答:1)可以实现代码的重复利用。
2)易编写、易维护、易使用。
3)可以在安装了Java运行环境的平台上使用,而不需要重新编译。
5、简述Jsp 的指令与JspAction 各包包含哪些内容(列举5个以上)
1)page 指令 2)include指令 3)taglib指令4)动作
5)动作 6)〈jsp:useBean/>
6、编写两个过滤器FilterC和FilterD同时作用于一个ServletC。两个过滤器简单打印一句话。然后将两个过滤器的作用顺序发生改变,打印出执行结果,并写出web.xml的配置。
publicclass ServletC extends HttpServlet
{
public void service(HttpServletRequestrequest,HttpServletResponse response)
throws IOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
out.println("This is ServletC!");
}
}
FilterC.java
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
publicclass FilterC implements Filter
{
public void init(FilterConfig config)
{
}
public void doFilter(ServletRequestrequest,ServletResponse response,FilterChain chain)
throws IOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
out.println("This is FilterC before doFilter");
chain.doFilter(request,response);
out.println("This is FilterC after doFilter");
}
public void destroy()
{
}
}
FilterD.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class FilterD implements Filter
{
public void init(FilterConfigconfig)
{
}
public voiddoFilter(ServletRequest request,ServletResponse response,FilterChain chain)
throws IOException,ServletException
{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
out.println("This is FilterD beforedoFilter");
chain.doFilter(request,response);
out.println("This is FilterD afterdoFilter");
}
public void destroy()
{
}
}
web.xml配置为:
FilterC
FilterC
FilterC
/ServletC
FilterD
FilterD
FilterD
/ServletC
1)按上面顺序配置web.xml打印出的结果为:
This is FilterC before doFilter
This is FilterD before doFilter
This is ServletC!
This is FilterD after doFilter
This is FilterC after doFilter
2)过滤器作用顺序发生改变时候的执行结果为:
This is FilterD before doFilter
This is FilterC before doFilter
This is ServletC!
This is FilterC after doFilter
This is FilterD after doFilter