- 浏览: 84229 次
- 性别:
- 来自: 河南
文章分类
最新评论
-
halu126:
GeekDonie 写道引用所以得出结论:字符流使用了缓冲区, ...
java 字节流与字符流的区别 -
GeekDonie:
引用所以得出结论:字符流使用了缓冲区,而字节流没有使用缓冲区。 ...
java 字节流与字符流的区别
1. 列举 6 个常用的 EL 隐式对象 .
答 : pageContext , pageScope , requestScope , sessionScope , applicationScope , param , paramValues
2. servlet 中如何创建会话 (session) 对象,如何销毁会话?
答:创建会话:调用 request.getSession() 或 request.getSession(true) 销毁 : a) 超过最大非活动时间,
即超过 setMaxInactiveInterval() 所设定的时间 b)invalidate(), 手动注销会话对象 c. 关闭浏览器
3. 请写出 Java Web 应用程序的核心目录结构
答:工程名 WEB-INF classes lib web.xml
4. 请列举 8 个 jsp 页面隐式对象
答: request , response , application , session , pageContext , config , page , exception , out
5. include 指令和 include 标准动作有什么区别?
答: a) 一 : 执行时间上 :
i. <%@ include file= ” relativeURI ” %> 是在翻译阶段执行
ii. <jsp:include page= ” relativeURI ” flush= ” true ” /> 在请求处理阶段执行 .
b) 二 : 引入内容的不同 :
i. <%@ include file= ” relativeURI ” %> 引入静态文本 (html,jsp), 在 JSP 页面被转化
成 servlet 之前和它融和到一起 .
ii. <jsp:include page= ” relativeURI ” flush= ” true ” /> 引入执行页面或 servlet 所生成的应答文本 .
Include- 指令与 Include 动作的区别如下 :
(1). 动态包含使用 <jsp:include> 标签来实现 (2).<jsp:include page= “ included.jsp ” flush= “ true ” /> 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 (3). 动态包含可以给被包含的页面传递参数 (4). 静态包含使用 include 伪码实现 (5). 不会检查所含文件的变化,适用于包含静态页面 (6). 静态包含不能给被包含的页面传递参数
6. MVC 设计模式中包含哪三种角色在 Java Web 应用程序中分别由哪三种组件扮演并说明作用?
答: M 是指 : 模型 <Model> -- 由 dao 组建和 javaBean 组件来承担
V 是指 : 视图 <View> -- 由 HTML 和 JSP 页面来承担 ;
C 是指 : 控制器 <Controller> -- 由 servlet 组建来承担 ;
Javabean 充当模型,用来封装数据,实现业务 Jsp 充当视图,用来显示数据
Servlet 充当控制器,用来接收并处理请求,控制页面跳转
7. 现有一个 servlet ,要求跳转到相同 web 目录下的名为 display.jsp 的页面,现要求写出两
种 servlet 到 jsp 页面的跳转语句,并说明跳转语句和重定向的区别
答: 重定向: response.sendRedirect( “ display.jsp ” );
转发: request.getRequestDispatcher( “ display.jsp ” ).forward(request,response);
a.A 与 B 页面之间发生重定向或转发 , 重定向时 ,A 与 B 使用不同的请求对象 , 转发时 ,A 与 B
使用同一个请求对象
a. 重定向可跳转到任何页面 , 包括外部应用程序 , 转发只限于本应用程序之内
c. 转发属于服务器端跳转 , 地址栏不会改变 , 一次请求 . 转发只能争对于当前应用 , 不能跨应用 ;
d. 重定向属于客户端跳转 , 地址栏改变 , 多次请求 . 重定向可以跨应用 ;
8 .请解释数据库连接池的原理?
答: 理解 : 连接池它是由容器进行管理 , 不需要用户去关心 , 由容器管理事务 , 支持声明式事务 , 全局事务 , 两阶段提交 , 节省编码时间 . 提交效率 , 配置一定数目的连接对象 , 随时可以取到连接对象 , 将资源统一进行管理 ;
基本原理 : (1) 数据库连接池在初始化的时候 , 将创建一定数量的数据库连接到连接池中 , 这些数据库连接的数量 , 是由最小数据库连接数俩设定的 , (2) 无论这些数据库 , 是否被使用 , 连接池都将一直保持至少拥有这么多的连接数量 , 连接池数量限定了这个连接池能占有的最大连接数 ,(3) 当应用程序向连接池请求的连接数,超过最大的连接数是 , 这些请求将加入队列之中 .
9 .现有一 Servlet ,在其中声明两个 Users 类型的对象,给 age 属性赋值,并将他们分别存
入 request 和 session 作用域,当该 servlet 跳转至一个名为 list.jsp 的页面时,要求在 list.jsp
页面显示 request 和 session 作用域中存储的 Users 对象的 age 属性值。核心代码如下,请按
要求完成代码填空。
servlet
Public class MyServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
HttpSession session=request.getSession();
Users mary=new Users(); mary.setAge(18);
Users jack=new Users(); jack.setAge(22);
request.setAttribute( “ student ” ,mary); // 将 mary 对象放入 request 作用域,属性名是 student
session.setAttribute( “ student ” ,jack);// 将 jack 对象放入 session 作用域,属性名是 student
request.getReqeustDispatcher(“list.jsp”).forword(request,response);
// 页面跳转至 list.jsp , list.jsp 与 servlet 在同一目录下 }}
Jsp 代码:
<body>
Name: ${reqeuestScope.student.age} <! —用 EL 表达式显示 mary 的年龄: 18 -->
或者 Name: ${student.age} <! —用 EL 表达式显示 mary 的年龄: 18 -->
Name: ${sessionScope.student.age} <!-- 用 EL 表达式显示 jack 的年龄: 22 -->
</body>
9.Servlet--servlet( 代码题目 ), 会写 Servlet,( 继承什么父类 , 重写什么方法 ?), 会将对象 ( 比如 User) 保存到不同作用域 , 会区别转发和重定向的区别
答 : 自定义 testServlet 继承至 HttpServlet 父类 , 一般重写父类的 doPost() 与 doGet();
request.setAttribute("Zhou",User); // 保存到 request 作用域中 ;
HttpSession session=request.getSession(); // 保存到 session 作用域中 ;
session.setAttribute("Zhou", User);
转发和重定向的区别如下 :
转发属于服务器端跳转 , 地址栏不会改变 , 一次请求 . 转发只能争对于当前应用 , 不能跨应用 ;
重定向属于客户端跳转 , 地址栏改变 , 多次请求 . 重定向可以跨应用 ;
10 .写出 <jsp:useBean> 动作的主要属性和属性取值的含义?
答: <jsp:useBean id=”name” class=”package.class” scope=”scope”/>
id 属性: javaBean 的引用名
class 属性: javaBean 所属的类名;
scope 属性:指定 javaBean 对象存在范围,包含( page , request , session , application )四个范围值。
11 .在一个处理登录的业务中,给定 login.jsp 登录页面,表单提交登录后,发送请求到一个
名为 LoginServ 的 Servlet 中验证用户名和密码。有名为 UserDao 的业务类,其中有原型为
boolean checkUser(String username,String pwd) 的方法用来验证用户名和密码,用户名与密码
正确返回 true ,否则返回 false 。现要求在 LoginServ 中接收用户名和密码,调用业务验证其
正确性,并完成转发和重定向的任务。请按上述题意完成以下相关代码填空。
答:
LoginServ.java
main.jsp
public class LoginServ extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
String uname=request.getParameter("uname"); // 获取用户名
String pwd=request.getParameter("pwd");// 获取密码
UserDao dao=new UserDao(); // 创建业务类对象
if(dao.checkUser(uname, pwd)){ // 如果通过验证
// 在 request 作用域中设置欢迎信息,在 main.jsp 中显示
request.setAttribute("welcome", "Welcome");
request.getRequestDispatcher("main.jsp").forward(request,
response); // 转发到 main.jsp
}else{ response.sendRedirect("error.jsp");// 重定向到 error.jsp}}}
<%@ page language="java" pageEncoding="utf-8"%>
<!-- 用 EL 显示 request 中的 welcome 属性 -->
${requestScope.welcome} 或 ${welcome}
11.Servlet--servlet( 代码题目 ) 代码填空 , 如何从请求中获得数据 ? 处理数据 ( 比如验证 )? 保存数据 ? 转发或重定向 答 : String str=request.getParameter(" 参数 ") 获得请求数据的值 ;
request.setAttribute("str",str); // 把 str 字符串保存在 request 范围内 ;
12 .假设在 jsp 页面的 session 中存有一个名为“ bookList ”的 List 集合对象, List 集合中存
放 Book (包括 bid , bname , bprice 三个属性,并有相应的 get 和 set 方法)类型的对象,现
在要求写出在 jsp 页面中引用 jstl 的 taglib( 核心标签对应 url 为
“ http://java.sun.com/jsp/jstl/core ”,前缀 prefix="c") 指令,并写出使用 jstl 的 forEach 标签遍
历 List 集合 , 并将数据显示在 table 中。
答:
<%@ taglib uri= ” http://java.sun.com/jsp/jstl/core ” prefix= ” c ” > --1 分
<table>
<c:forEach items= ” ${bookList} ” var= ” book ” > -- 写出 foreach 标签,属性取值正确
<tr>
<td>${book.bid}</td>
<td>${book.bname}</td>
<td>${book.bprice}</td>
</tr>
</c:forEach></table> --- 正确结束标签
13 .如何设置一个 WEB 程序的默认欢迎页为 welcome.jsp( 写出 web.xml 文档中间的具体配置 ) ?
答:在当前 WEB 工程的 web.xml 文件中添加如下设置:
<web-app> .....
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>
</web-app>
14 .请谈谈 session 与 application 的区别?
答: session: 该对象是 HttpSession 类型的对象,描述一个客户端与服务器之间的一次通话时
段,该段时间内包含客户端的若干次请求和服务器的相应响应,整个时间段 session 对象都
存在。常用来实现购物车之类的存储当前用户的数据。不同用户有各自的不同 session 对象。
application : 该对象是 ServletContext 类型的对象,描述的是本身 Web 程序。该对象在
Web 程序部署到 tomcat 服务器时由容器产生,其生命周期至 Web 程序从 tomcat
服务器卸载出去时消失。是所有客户端能共享的一个全局对象,整个系统只有一份。
session -- 是会话对象 , 当用户请求服务器的时候 , 则就为浏览器创建了一个 httpSession 对象 ,
只要在这个会话中 , 都能进行访问。 application -- 是应用程序对象 , 在整个应用程序 , 都能访问的到 .
15 . HTTP 协议请求方法 GET 与 POST 的区别?( 2 点以上区别)
GET 方法 : 1.GET 方法提交数据不安全,数据置于请求行,客户端地址栏可见 ;
2.GET 方法提交的数据大小限制在 255 个字符之内 3.GET 方法可以设置书签 和使用电子邮件发送
2.POST 方法 : 1.POST 方法提交数据安全,数据置于消息主体内,客户端地址栏不可见
2.POST 方法提交的数据大小没有限制 3.POST 方法不可以设置书签 或不能通过电子邮件发送 .
get 请求是通过 url 方式进行提交 , 使用 get 方式提交数据不安全 , 有长度的限制 , 不能超过 255 个字节 ,
可以添加到收藏夹 , 可以设置成书签 , 以邮件的方式 , 进行发送 .
post 是以数据包传替数据 , 地址栏内不可见 . 相对于 get 来说 , 比较安全 . 参数没有长度的限制 ,
不能以邮件的方式发送书签。
16 . HTTP 协议消息的分类与组成?
1. 请求消息组成:请求行、消息头、空行、消息主体
2. 响应消息组成:状态行、消息头、空行、消息主体
http 协议是一种无状态协议 , 当客户端像服务器端发送请求时 , 服务器端根据请求 , 响应至客户端 , 比较之间断开连接 , 不保存客户端的信息。 这就是 HTTP 无状态会话;
我们除了提交的请求数据外 , 浏览器同时也把 HTTP 协议的相关信息提交给了服务器 . 客户端发送的请求消息文本流 , 由以下内容组成
(1) 请求行 : 包括方法 , 统一资源标示符 (URI) 和 HTTP 协议版本 ;
(2) 头信息 : 典型的请求信息类型于以下内容 ;
GET/monitor/test.jsp?username=a&userpass=b HTTP/1.1 -- 使用的是 get 方式提交的请求数据 , 并指定现在使用是 HTTP 协议的 1.1 版本
Host:localhost:8088 -- 主机使用的端口是 8088;
User-Agent:Mozilla/5.0(window;U;Window NT 5.1;ZH-CN;) --User-Agent 头 , 指的是客户端使用的浏览器 ;
Accept:text/xml,application/xml,test/html;text/plain; --Accept 头信息提供有关客户端可以接受 MIME 类型列表 ;
在头信息之后 , 客户端发送一个空白行 , 指示请求消息结束 , 请求消息有服务器进一步处理 , 并生成相应的响应消息 ;
17 .请详细说明什么是 Servlet ? (50 字以上 )
Servlet(Server Letter) 即小的服务器端程序,是一个特殊的 Java 类,该类必需直接或间接实现 javax.servlet.Servlet 接口。 Servlet 类在服务器端运行,由 Web 容器管理与维护,专用于客户端的请求处理。基于 Java 多线程机制,能满足多个用户的请求与响应。
18 .请详细说明 Servlet 的生命周期以及其对应调用的方法?( 50 字以上)
Servlet 从被客户第一次请求开始,由 Web 容器加载并实例化对象,随后进行:初始化、服务和销毁。一个 Servlet 在初始化时会执行其 init() 方法,在服务阶段执行 serivce() 方法,之后一直常驻内存,直至 Web 容器停止才会执行其 destroy() 方法进行对象的销毁工作。
第一阶段 : 加载和实例化 ;-- 当容器启动时 , 容器会在内存中查找是否存在 servlet 实例 , 如果不存在 . 则会创建一个 servlet 实例 , 如果存在 , 容器则会直接从内存中读取该 servlet 实例 , 进行加载 ;
第二阶段 :servlet 实例加载完之后 , 就进行初始化工作 , 。则通过 init() 方式进行初始化 , 。
第三阶段 :servlet 初始化完毕后 , 就处于响应请求的就绪状态 .servelt 给客户端的响应由一个 Servlet Response 对象代表 , 当客户端有个请求时, Servlet 容器将 Servlet Request 和 Servlet Response 对象都转交给 servlet ,这两个对象以参数的形式传给 service() 方法内 , 根据请求进行判断 , 如果请求是 get 请求 , 则会调用 doGet 方法 ; 如果请求是 post 请求 , 则会调用 doPost 方法 ;
第四阶段 : 销毁由容器调用 Destroy() 方法进行销毁 servlet 实例 , 指定哪些资源可以被回收 .
19 .请详细说明 Servlet 与 Jsp 的异同点 ?(3 点以上)
1 .Servlet 是一个 Java 类,用于处理客户端的请求,运行于服务器上。 Jsp 是一个动态网页,支持强大的页面动态数据处理,由服务器与客户端共同处理并解释执行。 2 .Servlet 是 Jsp 的实现基础 ,Jsp 翻译后的类也实现了 Servlet 接口。 3. Servlet 善长业务逻辑的处理,比 Jsp 运行速度快 ;Jsp 善于页面表示,运行速度比 Servlet 慢。
jsp 和 servelt 的区分是具体到 MVC 模式的出现越发清晰的 , 在这个设计模式下 :
jsp 只要负责显示层 , 不负责业务逻辑的实现 , 即 view 。 servelt 里面主要负责业务流程的控制 , 即 controller, 而数据模型一般通过 javaBean 和 java 类来封装 ; jsp 简单的点就是另一套间的规则写的 servelt 程序,它可以写 java 代码 , 还可以写 html 代码 ,javascript , css. 代码 . 等等 . 首先服务器端 , 会先转成 servlet 程序后 , 就按照 servlet 的执行顺序执行了 . 简单点就是 : jsp 就是 servlet 的扩展 ,jsp 第一次执行的时候 , 容器会把 jsp 文件转换成 java 文件 , 然后 , 在编译成 .class 文件 , 而那个 java 文件就是 servlet ;
20 .请详细说明 Jsp 页面的执行过程 ? ( 50 字以上) ( 几个阶段 ? 生命周期描述 ?)
当一个 Jsp 被客户第一次访问时, Web 容器查找并处理该 Jsp 页面。在处理过程中先将该 Jsp 转译成 Java 源文件,再编译成 class 文件,随后加载并实例化对象,依次执行初始化、服务等方法,最后也长期驻留在内存中,
直到 Web 容器停止时才会执行其销毁方法。
JSP 文件会被 Web 容器中的 JSP 引擎转换成 JAVA 源码 , 将产生的 java 的源代码经过编译成 .class 文件后,并加载到内存执行 ;Response( 响应 ) 把结果至客户端。
一般人都会以为 JSP 的执行性能会和 Servlet 相差很多,其实执行性能上的差别只在第一次的执行。因为 JSP 在执行第一次后,会被编译成 Servelt 的类文件,当再重复调用执行时,就直接执行第一次所产生的 Servlet ,而不用再重新把 JSP 编译成 Servlet 。因此,除了第一次的编译花较久的时间之外,之后 JSP 和 Servlet 的执行速度就几乎相同了。
在执行 JSP 网页时,通常可分为两个时期,转译时期 (Translation Time) 和翻译时期 (compilation Time), 执行时期。
21. 请说说会话及会话跟踪的思想与实现 ?(150 字以上 )
客户端从发出请求到服务器,服务器接收请求并响应,随后的客户端与服务器一系列的交互的一段时间,称为会话。
在会话过程中,服务器为客户端分配一块内存空间,该内存空间称为会话对象。同时产生一个唯一的会话标识 (SessionID), 在第一次响应后把 sessionid 发往客户端。客户端在随后的请求时再次将会话标识返回给服务器。服务器就是通过会话标识来区分不同客户以及跟踪客户。
在会话跟踪过程中,客户端与服务器是通过会话标识来达到区分与跟踪的。而会话标识又是借助于 cookie 技术在服务器与客户端之间来回传递。在客户端如果禁用 cookie 时,则会话标识就会丢失,会话跟踪将不法跟踪。
所以有了补充会话跟踪技术 : 隐藏表单项与 URL 重写。
21.Servlet-- 会话和会话跟踪 , 描述你对会话和会话跟踪的理解 , 会话跟踪的手段有几种 ?
一个会话就是用户通过浏览器与服务器之间进行的一次通话 , 它包含浏览器与服务器之间的多次请求,与响应的过程 ;
会话跟踪的手段有 3 中分别是 : (1)cookie 文件用来保存 sessionId 的文件 ; (2)session 比 cookie 安全不可见 , 但占用 service 资源 ; (3)url 重写 , 这是在用户的 IE 禁止 Cookie 的时候采用的方法 , 因为不管是 Cookie 还是 session 都要借助 Cookie;
22 .列举至少 4 个 JSP 标准动作。
<jsp:useBean id="test" class="pack.mvc.javabean.student" scope="page"> -- 实例化一个 javaBean 对象 ;
<jsp:setProperty name="test" praperty="name" value="ZhouHaiTao"> -- 设置 javaBean 属性 ;
<jsp:getProperty name="test" praperty="name"> -- 获得 javaBean 属性 ;
<jsp:include page="/BookManger/view/show.jsp"> -- 当页面被请求时引入一个文件 ;
<jsp:forward page="/BookManager/view/index.jsp"> -- 把请求转到一个新页面 ;
23 .写出 <jsp:setProperty> 标记的主要属性和属性取值的含义?
答:
<jsp:setProperty name=”BeanName” property=”propertyName” value=”Value”param=”parameter”>
name: 和 <jsp:useBean> 标记中的 id 相同。
property: 对应 javaBean 的属性名
value: 被设置的 javaBean 的属性值,不能和 param 同时使用
param: 被设置的 javaBean 的属性值,来自于某个请求参数。
24 .在 accp.servlet 包中定义一个 UserListServlet.java 的 servlet 子类,用于列出系统用户列表,如果用户想通过浏览器地址栏键入地址: http://localhost:8080/projectname/userlist 访问这个页面,请写出这个 servlet 的配置文件。
<servlet>
<servlet-name> userlist </servlet-name>
<servlet-class>accp.servlet. UserListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> userlist </servlet-name>
<url-pattern>/ userlist </url-pattern>
</servlet-mapping>
25 .请编写一个简单的过滤器 HelloFilter ,每当经过这个过滤器时都能向控制台输出字符串
“ Hello ”,并且配置它过滤 /UI 目录下所有的内容(主要代码 + 配置文件)。
package filters;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloFilter implements Filte{
public void destroy() { }
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws
IOException, ServletException {
System.out.println(“Hello”);
}
public void init(FilterConfig arg0) throws ServletException { }
}
Web.xml 配置文件 :
<filter>
<filter-name>Check</filter-name>
<filter-class>filters. HelloFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Check</filter-name>
<url-pattern>/UI/*</url-pattern>
</filter-mapping>
public class testFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
System.out.println(" 过滤器销毁 "); }
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
request.setCharacterEncoding("GBK"); // 设置编码格式 ;
response.setCharacterEncoding("GBK");
// 进入下一个过滤器 ;
System.out.println(" 第一次处理乱码 ");
chain.doFilter(request, response);
System.out.println(" 第二次处理乱码 ");
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println(" 过滤器加载 !");} }
26.Servlet--simpletag,SimpleTag 接口的生命周期描述 ( 几个主要方法 ? 什么时候被调用 ?) SimpleTagSupport 是实现类 .
1.JSP2.0 中为了简化标签的复杂性,增加了制作 SimpleTag 的标签接口 SimpleTag 以及 SimpleTagSupport 标签类。
2.SimpleTagSupport 类是实现 SimpleTag 接口的。它只需要实现一个 doTag() 方法即可,而不需要一堆回传值。
3. 创建一个标签处理程序,可以直接或间接地实现 SimpleTag 接口。
simpleTag 的生命周期描述如下 :
(1) 每次遇到标签时,容器构造一个 SimpleTage 的实例,并且这个构造方法没有参数。和经典的标签是一样的, SimpleTag 不能进行缓冲,故不能重用,每次都需要构造新的实例。
(2) 调用构造方法后,就用 setJspContext() 和 setParent() 方法,只有这个标签在另一个标签内时,才调用 setParent() 方法。
(3) 容器调用每个属性的 setter 方法以设置这些属性的值。 (4) 如果存在 Body ,那么就使用 setJspBody 方法设置这个标签的标签体。 (5) 容器调用 doTag 方法,所有的标签的逻辑,迭代和 Body 计算都在这个方法中。
1. 什么是 HTTP ?作用是什么?( 20 字以上描述)
HTTP(Hypertext Transfer Protocol) 即超文本传输控制协议,是 WWW 服务程序所用的协议。
作用:该协议用于计算机与计算机之间进行通讯。是 Web 程序客户端与服务器交互必备的协议 HTTP 协议是一种无状态的协议。
10. 请解释 Cookie 和 URL 重写实现会话跟踪的原理 (50 字以上 ) ?
1)Cookie 是一个服务器发往客户端的一小段信息。它主要用于在客户端与服务器之间来回传递会话标识。
2)URL 重写是一种会话跟踪技术,它采用在服务器上开辟会话对象来存储客户信息,并以字符串的形式来传递会话标识,而不是借用 Cookie 来传递会话标识。它是保证在客户端即使禁用 Cookie 而仍然维持会话跟踪的最有效技术之一。
12. 请说说连接池技术有何优点所在?( 50 字以上)
连接池技术是一种基于 JDBC 技术而实现数据库连接的技术,其主要的思想是预先与数据库建立若干的连接对象存储于服务器内存缓冲区中,当客户需要与数据库建立连接时,直接从服务器的内存中拿取一个连接对象,当用完之后,又将连接对象放回服务器。其优点是能提供客户最快捷的数据库连接体验,以及实现数据库服务的分布式应用。
11.JSTL 标签库中包括哪些核心标签 , 并说明它们各自的作用?
核心标签 : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set>: 定义一个作用域变量 <c:remove>: 删除一个作用域变量 <c:out>: 输出一个表达式的值
<c:catch>: 捕获一个异常 <c:if>: 条件判断 <c:forEach>: 循环处理
<c:forTokens>: 分割字符串 <c:choose>: 多分支处理
文章信息来源:http://aguang520.iteye.com/blog/744365
答 : pageContext , pageScope , requestScope , sessionScope , applicationScope , param , paramValues
2. servlet 中如何创建会话 (session) 对象,如何销毁会话?
答:创建会话:调用 request.getSession() 或 request.getSession(true) 销毁 : a) 超过最大非活动时间,
即超过 setMaxInactiveInterval() 所设定的时间 b)invalidate(), 手动注销会话对象 c. 关闭浏览器
3. 请写出 Java Web 应用程序的核心目录结构
答:工程名 WEB-INF classes lib web.xml
4. 请列举 8 个 jsp 页面隐式对象
答: request , response , application , session , pageContext , config , page , exception , out
5. include 指令和 include 标准动作有什么区别?
答: a) 一 : 执行时间上 :
i. <%@ include file= ” relativeURI ” %> 是在翻译阶段执行
ii. <jsp:include page= ” relativeURI ” flush= ” true ” /> 在请求处理阶段执行 .
b) 二 : 引入内容的不同 :
i. <%@ include file= ” relativeURI ” %> 引入静态文本 (html,jsp), 在 JSP 页面被转化
成 servlet 之前和它融和到一起 .
ii. <jsp:include page= ” relativeURI ” flush= ” true ” /> 引入执行页面或 servlet 所生成的应答文本 .
Include- 指令与 Include 动作的区别如下 :
(1). 动态包含使用 <jsp:include> 标签来实现 (2).<jsp:include page= “ included.jsp ” flush= “ true ” /> 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。 (3). 动态包含可以给被包含的页面传递参数 (4). 静态包含使用 include 伪码实现 (5). 不会检查所含文件的变化,适用于包含静态页面 (6). 静态包含不能给被包含的页面传递参数
6. MVC 设计模式中包含哪三种角色在 Java Web 应用程序中分别由哪三种组件扮演并说明作用?
答: M 是指 : 模型 <Model> -- 由 dao 组建和 javaBean 组件来承担
V 是指 : 视图 <View> -- 由 HTML 和 JSP 页面来承担 ;
C 是指 : 控制器 <Controller> -- 由 servlet 组建来承担 ;
Javabean 充当模型,用来封装数据,实现业务 Jsp 充当视图,用来显示数据
Servlet 充当控制器,用来接收并处理请求,控制页面跳转
7. 现有一个 servlet ,要求跳转到相同 web 目录下的名为 display.jsp 的页面,现要求写出两
种 servlet 到 jsp 页面的跳转语句,并说明跳转语句和重定向的区别
答: 重定向: response.sendRedirect( “ display.jsp ” );
转发: request.getRequestDispatcher( “ display.jsp ” ).forward(request,response);
a.A 与 B 页面之间发生重定向或转发 , 重定向时 ,A 与 B 使用不同的请求对象 , 转发时 ,A 与 B
使用同一个请求对象
a. 重定向可跳转到任何页面 , 包括外部应用程序 , 转发只限于本应用程序之内
c. 转发属于服务器端跳转 , 地址栏不会改变 , 一次请求 . 转发只能争对于当前应用 , 不能跨应用 ;
d. 重定向属于客户端跳转 , 地址栏改变 , 多次请求 . 重定向可以跨应用 ;
8 .请解释数据库连接池的原理?
答: 理解 : 连接池它是由容器进行管理 , 不需要用户去关心 , 由容器管理事务 , 支持声明式事务 , 全局事务 , 两阶段提交 , 节省编码时间 . 提交效率 , 配置一定数目的连接对象 , 随时可以取到连接对象 , 将资源统一进行管理 ;
基本原理 : (1) 数据库连接池在初始化的时候 , 将创建一定数量的数据库连接到连接池中 , 这些数据库连接的数量 , 是由最小数据库连接数俩设定的 , (2) 无论这些数据库 , 是否被使用 , 连接池都将一直保持至少拥有这么多的连接数量 , 连接池数量限定了这个连接池能占有的最大连接数 ,(3) 当应用程序向连接池请求的连接数,超过最大的连接数是 , 这些请求将加入队列之中 .
9 .现有一 Servlet ,在其中声明两个 Users 类型的对象,给 age 属性赋值,并将他们分别存
入 request 和 session 作用域,当该 servlet 跳转至一个名为 list.jsp 的页面时,要求在 list.jsp
页面显示 request 和 session 作用域中存储的 Users 对象的 age 属性值。核心代码如下,请按
要求完成代码填空。
servlet
Public class MyServlet extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
HttpSession session=request.getSession();
Users mary=new Users(); mary.setAge(18);
Users jack=new Users(); jack.setAge(22);
request.setAttribute( “ student ” ,mary); // 将 mary 对象放入 request 作用域,属性名是 student
session.setAttribute( “ student ” ,jack);// 将 jack 对象放入 session 作用域,属性名是 student
request.getReqeustDispatcher(“list.jsp”).forword(request,response);
// 页面跳转至 list.jsp , list.jsp 与 servlet 在同一目录下 }}
Jsp 代码:
<body>
Name: ${reqeuestScope.student.age} <! —用 EL 表达式显示 mary 的年龄: 18 -->
或者 Name: ${student.age} <! —用 EL 表达式显示 mary 的年龄: 18 -->
Name: ${sessionScope.student.age} <!-- 用 EL 表达式显示 jack 的年龄: 22 -->
</body>
9.Servlet--servlet( 代码题目 ), 会写 Servlet,( 继承什么父类 , 重写什么方法 ?), 会将对象 ( 比如 User) 保存到不同作用域 , 会区别转发和重定向的区别
答 : 自定义 testServlet 继承至 HttpServlet 父类 , 一般重写父类的 doPost() 与 doGet();
request.setAttribute("Zhou",User); // 保存到 request 作用域中 ;
HttpSession session=request.getSession(); // 保存到 session 作用域中 ;
session.setAttribute("Zhou", User);
转发和重定向的区别如下 :
转发属于服务器端跳转 , 地址栏不会改变 , 一次请求 . 转发只能争对于当前应用 , 不能跨应用 ;
重定向属于客户端跳转 , 地址栏改变 , 多次请求 . 重定向可以跨应用 ;
10 .写出 <jsp:useBean> 动作的主要属性和属性取值的含义?
答: <jsp:useBean id=”name” class=”package.class” scope=”scope”/>
id 属性: javaBean 的引用名
class 属性: javaBean 所属的类名;
scope 属性:指定 javaBean 对象存在范围,包含( page , request , session , application )四个范围值。
11 .在一个处理登录的业务中,给定 login.jsp 登录页面,表单提交登录后,发送请求到一个
名为 LoginServ 的 Servlet 中验证用户名和密码。有名为 UserDao 的业务类,其中有原型为
boolean checkUser(String username,String pwd) 的方法用来验证用户名和密码,用户名与密码
正确返回 true ,否则返回 false 。现要求在 LoginServ 中接收用户名和密码,调用业务验证其
正确性,并完成转发和重定向的任务。请按上述题意完成以下相关代码填空。
答:
LoginServ.java
main.jsp
public class LoginServ extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.setContentType("text/html");
request.setCharacterEncoding("utf-8");
String uname=request.getParameter("uname"); // 获取用户名
String pwd=request.getParameter("pwd");// 获取密码
UserDao dao=new UserDao(); // 创建业务类对象
if(dao.checkUser(uname, pwd)){ // 如果通过验证
// 在 request 作用域中设置欢迎信息,在 main.jsp 中显示
request.setAttribute("welcome", "Welcome");
request.getRequestDispatcher("main.jsp").forward(request,
response); // 转发到 main.jsp
}else{ response.sendRedirect("error.jsp");// 重定向到 error.jsp}}}
<%@ page language="java" pageEncoding="utf-8"%>
<!-- 用 EL 显示 request 中的 welcome 属性 -->
${requestScope.welcome} 或 ${welcome}
11.Servlet--servlet( 代码题目 ) 代码填空 , 如何从请求中获得数据 ? 处理数据 ( 比如验证 )? 保存数据 ? 转发或重定向 答 : String str=request.getParameter(" 参数 ") 获得请求数据的值 ;
request.setAttribute("str",str); // 把 str 字符串保存在 request 范围内 ;
12 .假设在 jsp 页面的 session 中存有一个名为“ bookList ”的 List 集合对象, List 集合中存
放 Book (包括 bid , bname , bprice 三个属性,并有相应的 get 和 set 方法)类型的对象,现
在要求写出在 jsp 页面中引用 jstl 的 taglib( 核心标签对应 url 为
“ http://java.sun.com/jsp/jstl/core ”,前缀 prefix="c") 指令,并写出使用 jstl 的 forEach 标签遍
历 List 集合 , 并将数据显示在 table 中。
答:
<%@ taglib uri= ” http://java.sun.com/jsp/jstl/core ” prefix= ” c ” > --1 分
<table>
<c:forEach items= ” ${bookList} ” var= ” book ” > -- 写出 foreach 标签,属性取值正确
<tr>
<td>${book.bid}</td>
<td>${book.bname}</td>
<td>${book.bprice}</td>
</tr>
</c:forEach></table> --- 正确结束标签
13 .如何设置一个 WEB 程序的默认欢迎页为 welcome.jsp( 写出 web.xml 文档中间的具体配置 ) ?
答:在当前 WEB 工程的 web.xml 文件中添加如下设置:
<web-app> .....
<welcome-file-list>
<welcome-file>welcome.jsp</welcome-file>
</welcome-file-list>
</web-app>
14 .请谈谈 session 与 application 的区别?
答: session: 该对象是 HttpSession 类型的对象,描述一个客户端与服务器之间的一次通话时
段,该段时间内包含客户端的若干次请求和服务器的相应响应,整个时间段 session 对象都
存在。常用来实现购物车之类的存储当前用户的数据。不同用户有各自的不同 session 对象。
application : 该对象是 ServletContext 类型的对象,描述的是本身 Web 程序。该对象在
Web 程序部署到 tomcat 服务器时由容器产生,其生命周期至 Web 程序从 tomcat
服务器卸载出去时消失。是所有客户端能共享的一个全局对象,整个系统只有一份。
session -- 是会话对象 , 当用户请求服务器的时候 , 则就为浏览器创建了一个 httpSession 对象 ,
只要在这个会话中 , 都能进行访问。 application -- 是应用程序对象 , 在整个应用程序 , 都能访问的到 .
15 . HTTP 协议请求方法 GET 与 POST 的区别?( 2 点以上区别)
GET 方法 : 1.GET 方法提交数据不安全,数据置于请求行,客户端地址栏可见 ;
2.GET 方法提交的数据大小限制在 255 个字符之内 3.GET 方法可以设置书签 和使用电子邮件发送
2.POST 方法 : 1.POST 方法提交数据安全,数据置于消息主体内,客户端地址栏不可见
2.POST 方法提交的数据大小没有限制 3.POST 方法不可以设置书签 或不能通过电子邮件发送 .
get 请求是通过 url 方式进行提交 , 使用 get 方式提交数据不安全 , 有长度的限制 , 不能超过 255 个字节 ,
可以添加到收藏夹 , 可以设置成书签 , 以邮件的方式 , 进行发送 .
post 是以数据包传替数据 , 地址栏内不可见 . 相对于 get 来说 , 比较安全 . 参数没有长度的限制 ,
不能以邮件的方式发送书签。
16 . HTTP 协议消息的分类与组成?
1. 请求消息组成:请求行、消息头、空行、消息主体
2. 响应消息组成:状态行、消息头、空行、消息主体
http 协议是一种无状态协议 , 当客户端像服务器端发送请求时 , 服务器端根据请求 , 响应至客户端 , 比较之间断开连接 , 不保存客户端的信息。 这就是 HTTP 无状态会话;
我们除了提交的请求数据外 , 浏览器同时也把 HTTP 协议的相关信息提交给了服务器 . 客户端发送的请求消息文本流 , 由以下内容组成
(1) 请求行 : 包括方法 , 统一资源标示符 (URI) 和 HTTP 协议版本 ;
(2) 头信息 : 典型的请求信息类型于以下内容 ;
GET/monitor/test.jsp?username=a&userpass=b HTTP/1.1 -- 使用的是 get 方式提交的请求数据 , 并指定现在使用是 HTTP 协议的 1.1 版本
Host:localhost:8088 -- 主机使用的端口是 8088;
User-Agent:Mozilla/5.0(window;U;Window NT 5.1;ZH-CN;) --User-Agent 头 , 指的是客户端使用的浏览器 ;
Accept:text/xml,application/xml,test/html;text/plain; --Accept 头信息提供有关客户端可以接受 MIME 类型列表 ;
在头信息之后 , 客户端发送一个空白行 , 指示请求消息结束 , 请求消息有服务器进一步处理 , 并生成相应的响应消息 ;
17 .请详细说明什么是 Servlet ? (50 字以上 )
Servlet(Server Letter) 即小的服务器端程序,是一个特殊的 Java 类,该类必需直接或间接实现 javax.servlet.Servlet 接口。 Servlet 类在服务器端运行,由 Web 容器管理与维护,专用于客户端的请求处理。基于 Java 多线程机制,能满足多个用户的请求与响应。
18 .请详细说明 Servlet 的生命周期以及其对应调用的方法?( 50 字以上)
Servlet 从被客户第一次请求开始,由 Web 容器加载并实例化对象,随后进行:初始化、服务和销毁。一个 Servlet 在初始化时会执行其 init() 方法,在服务阶段执行 serivce() 方法,之后一直常驻内存,直至 Web 容器停止才会执行其 destroy() 方法进行对象的销毁工作。
第一阶段 : 加载和实例化 ;-- 当容器启动时 , 容器会在内存中查找是否存在 servlet 实例 , 如果不存在 . 则会创建一个 servlet 实例 , 如果存在 , 容器则会直接从内存中读取该 servlet 实例 , 进行加载 ;
第二阶段 :servlet 实例加载完之后 , 就进行初始化工作 , 。则通过 init() 方式进行初始化 , 。
第三阶段 :servlet 初始化完毕后 , 就处于响应请求的就绪状态 .servelt 给客户端的响应由一个 Servlet Response 对象代表 , 当客户端有个请求时, Servlet 容器将 Servlet Request 和 Servlet Response 对象都转交给 servlet ,这两个对象以参数的形式传给 service() 方法内 , 根据请求进行判断 , 如果请求是 get 请求 , 则会调用 doGet 方法 ; 如果请求是 post 请求 , 则会调用 doPost 方法 ;
第四阶段 : 销毁由容器调用 Destroy() 方法进行销毁 servlet 实例 , 指定哪些资源可以被回收 .
19 .请详细说明 Servlet 与 Jsp 的异同点 ?(3 点以上)
1 .Servlet 是一个 Java 类,用于处理客户端的请求,运行于服务器上。 Jsp 是一个动态网页,支持强大的页面动态数据处理,由服务器与客户端共同处理并解释执行。 2 .Servlet 是 Jsp 的实现基础 ,Jsp 翻译后的类也实现了 Servlet 接口。 3. Servlet 善长业务逻辑的处理,比 Jsp 运行速度快 ;Jsp 善于页面表示,运行速度比 Servlet 慢。
jsp 和 servelt 的区分是具体到 MVC 模式的出现越发清晰的 , 在这个设计模式下 :
jsp 只要负责显示层 , 不负责业务逻辑的实现 , 即 view 。 servelt 里面主要负责业务流程的控制 , 即 controller, 而数据模型一般通过 javaBean 和 java 类来封装 ; jsp 简单的点就是另一套间的规则写的 servelt 程序,它可以写 java 代码 , 还可以写 html 代码 ,javascript , css. 代码 . 等等 . 首先服务器端 , 会先转成 servlet 程序后 , 就按照 servlet 的执行顺序执行了 . 简单点就是 : jsp 就是 servlet 的扩展 ,jsp 第一次执行的时候 , 容器会把 jsp 文件转换成 java 文件 , 然后 , 在编译成 .class 文件 , 而那个 java 文件就是 servlet ;
20 .请详细说明 Jsp 页面的执行过程 ? ( 50 字以上) ( 几个阶段 ? 生命周期描述 ?)
当一个 Jsp 被客户第一次访问时, Web 容器查找并处理该 Jsp 页面。在处理过程中先将该 Jsp 转译成 Java 源文件,再编译成 class 文件,随后加载并实例化对象,依次执行初始化、服务等方法,最后也长期驻留在内存中,
直到 Web 容器停止时才会执行其销毁方法。
JSP 文件会被 Web 容器中的 JSP 引擎转换成 JAVA 源码 , 将产生的 java 的源代码经过编译成 .class 文件后,并加载到内存执行 ;Response( 响应 ) 把结果至客户端。
一般人都会以为 JSP 的执行性能会和 Servlet 相差很多,其实执行性能上的差别只在第一次的执行。因为 JSP 在执行第一次后,会被编译成 Servelt 的类文件,当再重复调用执行时,就直接执行第一次所产生的 Servlet ,而不用再重新把 JSP 编译成 Servlet 。因此,除了第一次的编译花较久的时间之外,之后 JSP 和 Servlet 的执行速度就几乎相同了。
在执行 JSP 网页时,通常可分为两个时期,转译时期 (Translation Time) 和翻译时期 (compilation Time), 执行时期。
21. 请说说会话及会话跟踪的思想与实现 ?(150 字以上 )
客户端从发出请求到服务器,服务器接收请求并响应,随后的客户端与服务器一系列的交互的一段时间,称为会话。
在会话过程中,服务器为客户端分配一块内存空间,该内存空间称为会话对象。同时产生一个唯一的会话标识 (SessionID), 在第一次响应后把 sessionid 发往客户端。客户端在随后的请求时再次将会话标识返回给服务器。服务器就是通过会话标识来区分不同客户以及跟踪客户。
在会话跟踪过程中,客户端与服务器是通过会话标识来达到区分与跟踪的。而会话标识又是借助于 cookie 技术在服务器与客户端之间来回传递。在客户端如果禁用 cookie 时,则会话标识就会丢失,会话跟踪将不法跟踪。
所以有了补充会话跟踪技术 : 隐藏表单项与 URL 重写。
21.Servlet-- 会话和会话跟踪 , 描述你对会话和会话跟踪的理解 , 会话跟踪的手段有几种 ?
一个会话就是用户通过浏览器与服务器之间进行的一次通话 , 它包含浏览器与服务器之间的多次请求,与响应的过程 ;
会话跟踪的手段有 3 中分别是 : (1)cookie 文件用来保存 sessionId 的文件 ; (2)session 比 cookie 安全不可见 , 但占用 service 资源 ; (3)url 重写 , 这是在用户的 IE 禁止 Cookie 的时候采用的方法 , 因为不管是 Cookie 还是 session 都要借助 Cookie;
22 .列举至少 4 个 JSP 标准动作。
<jsp:useBean id="test" class="pack.mvc.javabean.student" scope="page"> -- 实例化一个 javaBean 对象 ;
<jsp:setProperty name="test" praperty="name" value="ZhouHaiTao"> -- 设置 javaBean 属性 ;
<jsp:getProperty name="test" praperty="name"> -- 获得 javaBean 属性 ;
<jsp:include page="/BookManger/view/show.jsp"> -- 当页面被请求时引入一个文件 ;
<jsp:forward page="/BookManager/view/index.jsp"> -- 把请求转到一个新页面 ;
23 .写出 <jsp:setProperty> 标记的主要属性和属性取值的含义?
答:
<jsp:setProperty name=”BeanName” property=”propertyName” value=”Value”param=”parameter”>
name: 和 <jsp:useBean> 标记中的 id 相同。
property: 对应 javaBean 的属性名
value: 被设置的 javaBean 的属性值,不能和 param 同时使用
param: 被设置的 javaBean 的属性值,来自于某个请求参数。
24 .在 accp.servlet 包中定义一个 UserListServlet.java 的 servlet 子类,用于列出系统用户列表,如果用户想通过浏览器地址栏键入地址: http://localhost:8080/projectname/userlist 访问这个页面,请写出这个 servlet 的配置文件。
<servlet>
<servlet-name> userlist </servlet-name>
<servlet-class>accp.servlet. UserListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> userlist </servlet-name>
<url-pattern>/ userlist </url-pattern>
</servlet-mapping>
25 .请编写一个简单的过滤器 HelloFilter ,每当经过这个过滤器时都能向控制台输出字符串
“ Hello ”,并且配置它过滤 /UI 目录下所有的内容(主要代码 + 配置文件)。
package filters;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloFilter implements Filte{
public void destroy() { }
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws
IOException, ServletException {
System.out.println(“Hello”);
}
public void init(FilterConfig arg0) throws ServletException { }
}
Web.xml 配置文件 :
<filter>
<filter-name>Check</filter-name>
<filter-class>filters. HelloFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Check</filter-name>
<url-pattern>/UI/*</url-pattern>
</filter-mapping>
public class testFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
System.out.println(" 过滤器销毁 "); }
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
request.setCharacterEncoding("GBK"); // 设置编码格式 ;
response.setCharacterEncoding("GBK");
// 进入下一个过滤器 ;
System.out.println(" 第一次处理乱码 ");
chain.doFilter(request, response);
System.out.println(" 第二次处理乱码 ");
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
System.out.println(" 过滤器加载 !");} }
26.Servlet--simpletag,SimpleTag 接口的生命周期描述 ( 几个主要方法 ? 什么时候被调用 ?) SimpleTagSupport 是实现类 .
1.JSP2.0 中为了简化标签的复杂性,增加了制作 SimpleTag 的标签接口 SimpleTag 以及 SimpleTagSupport 标签类。
2.SimpleTagSupport 类是实现 SimpleTag 接口的。它只需要实现一个 doTag() 方法即可,而不需要一堆回传值。
3. 创建一个标签处理程序,可以直接或间接地实现 SimpleTag 接口。
simpleTag 的生命周期描述如下 :
(1) 每次遇到标签时,容器构造一个 SimpleTage 的实例,并且这个构造方法没有参数。和经典的标签是一样的, SimpleTag 不能进行缓冲,故不能重用,每次都需要构造新的实例。
(2) 调用构造方法后,就用 setJspContext() 和 setParent() 方法,只有这个标签在另一个标签内时,才调用 setParent() 方法。
(3) 容器调用每个属性的 setter 方法以设置这些属性的值。 (4) 如果存在 Body ,那么就使用 setJspBody 方法设置这个标签的标签体。 (5) 容器调用 doTag 方法,所有的标签的逻辑,迭代和 Body 计算都在这个方法中。
1. 什么是 HTTP ?作用是什么?( 20 字以上描述)
HTTP(Hypertext Transfer Protocol) 即超文本传输控制协议,是 WWW 服务程序所用的协议。
作用:该协议用于计算机与计算机之间进行通讯。是 Web 程序客户端与服务器交互必备的协议 HTTP 协议是一种无状态的协议。
10. 请解释 Cookie 和 URL 重写实现会话跟踪的原理 (50 字以上 ) ?
1)Cookie 是一个服务器发往客户端的一小段信息。它主要用于在客户端与服务器之间来回传递会话标识。
2)URL 重写是一种会话跟踪技术,它采用在服务器上开辟会话对象来存储客户信息,并以字符串的形式来传递会话标识,而不是借用 Cookie 来传递会话标识。它是保证在客户端即使禁用 Cookie 而仍然维持会话跟踪的最有效技术之一。
12. 请说说连接池技术有何优点所在?( 50 字以上)
连接池技术是一种基于 JDBC 技术而实现数据库连接的技术,其主要的思想是预先与数据库建立若干的连接对象存储于服务器内存缓冲区中,当客户需要与数据库建立连接时,直接从服务器的内存中拿取一个连接对象,当用完之后,又将连接对象放回服务器。其优点是能提供客户最快捷的数据库连接体验,以及实现数据库服务的分布式应用。
11.JSTL 标签库中包括哪些核心标签 , 并说明它们各自的作用?
核心标签 : <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:set>: 定义一个作用域变量 <c:remove>: 删除一个作用域变量 <c:out>: 输出一个表达式的值
<c:catch>: 捕获一个异常 <c:if>: 条件判断 <c:forEach>: 循环处理
<c:forTokens>: 分割字符串 <c:choose>: 多分支处理
文章信息来源:http://aguang520.iteye.com/blog/744365
发表评论
-
Servlet的线程安全问题
2011-05-07 13:36 758Servlet的线程安全问题 1. Servle ... -
servlet中web.xml配置详解
2011-05-07 13:16 1310Web.xml常用元素 [color=darkblue]&l ... -
Servlet url重写实现Session跟踪以Session的持久化
2011-05-07 11:46 2698使用url重写实现Session跟 ... -
Servlet请求重定向与请求转发 以及RequestDispatcher接口中的include()方法和forward()方法的区别
2011-05-07 11:42 3099在Servlet程序中 有时需要调用另外一个资源来对浏览器的请 ... -
Servlet执行时一般要实现的几个方法
2011-05-07 11:26 2663Servlet类要继承的GenericServlet与Http ... -
Servlet的特点及运行过程
2011-05-07 11:16 1120Servlet的特点 Servle ... -
Servlet类的装载机制
2011-05-07 10:53 526类装载器,学习Servlet的 ...
相关推荐
这个压缩包"Servlet复习代码"很可能是为了帮助开发者回顾或学习Servlet的相关知识。在Servlet中,我们主要涉及以下几个关键概念和技术点: 1. **Servlet接口**:Servlet是Java API中的一个接口,定义了服务器端应用...
### JSP与Servlet复习知识点详解 #### 一、JSP与Servlet基础知识 **1. JSP简介** - **定义**: Java Server Pages (JSP) 是一种基于Java技术的服务器端脚本语言,用于创建动态网页。 - **特点**: JSP页面可以将...
《JSP与Servlet复习指南》 在Web开发领域,JSP(JavaServer Pages)和Servlet是两个至关重要的技术,它们为构建动态网页提供了强大的支持。本文将对这两者进行深入的复习,帮助初学者巩固和提升相关知识。 首先,...
Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mhtJsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht
【标题】"员工管理系统小demo, Servlet复习"指的是一个基于Java Web开发的简单员工管理系统的示例项目,其中重点使用了Servlet技术。Servlet是Java语言中用于动态网页开发的一种技术,它扩展了Web服务器的功能,使得...
jsp&Servlet复习总结.txt
本复习题主要涵盖了Servlet的基础知识,包括Servlet的部署、URL路径、JSP元素以及与数据库交互的相关概念。 1. Servlet的访问URL:Servlet的访问路径通常由Web应用的上下文路径和Servlet的映射路径组成。在本题中,...
**JSP(Java Server Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建动态Web应用程序方面发挥着关键...这个Jsp.ppt和Servlet.ppt的复习资料集将提供详细的指导,帮助你巩固理论知识,并提升实际开发技能。
让你对jsp和servlet有一个完整的认识,有助于理解学习开发web项目。
【XML知识点】 XML,全称为Extensible Markup Language,是一种用于标记数据的...综上,这些知识点涵盖了Oracle数据库管理、XML数据处理以及Java Web开发的Servlet技术,对于理解和应用这些技术在实际项目中至关重要。
- 在`web.xml`配置文件中定义Servlet,通过`servlet-name`和`servlet-class`指定Servlet的名称和实现类,以及通过`servlet-mapping`指定请求映射URL。 6. **请求与响应对象**: - `HttpServletRequest`代表HTTP...
基于这个例子,"jspservlet复习例子"可能包含了以下文件: - `index.jsp`:用户界面,用于展示数据和提供CRUD操作的表单。 - `AddServlet`、`EditServlet`、`DeleteServlet`、`ListServlet`等:分别对应增、改、...
对于认证考试的准备,书中还特别整理了相关的复习资料和模拟试题,帮助考生更好地理解和记忆关键知识点,提高考试通过率。 总之,《jsp&servlet电子书》是学习JSP和Servlet的理想教材,无论你是初学者还是有一定...
【Servlet 概述】 Servlet 是 JavaEE(Java Platform, Enterprise Edition)中的核心组件,主要用于处理 Web 应用中的服务器端任务。它与 HTTP 协议紧密相关,能够处理 HTTP 请求的各个方面,包括接收请求、处理...
Java Servlet是Java Web开发中的核心组件之一,它用于构建动态网站和Web应用程序。...学习笔记中可能包含了从基础概念到实践操作的全过程,通过不断复习和实践,可以逐步提升对Servlet的理解和运用能力。
Servlet小程序是一种在Java平台上运行的服务器端程序,主要用于处理HTTP请求。在Web应用程序开发中,...对于有经验的开发者,这个小例子也是一个很好的复习和参考资源,可以帮助他们快速上手新的煤炭管理系统开发。
Servlet和JSP是Java Web开发中的核心技术,它们用于构建动态、交互式的Web应用程序。...这份"Servlet和JSP学习指南.pdf"应能提供详尽的教程和实例,帮助初学者快速入门,同时也为经验丰富的开发者提供参考和复习材料。
以上内容涵盖了JSP基础、Tomcat配置、异常处理、内置对象、HTTP方法、JDBC、JavaBean、Servlet生命周期等多个方面,对于大学生复习JSP知识具有很高的参考价值。通过深入理解和实践这些知识点,能帮助开发者更好地...