JavaWeb期末
重点复习知识点:
servlet程序
-
深刻理解servlet程序的含义、生存周期、部署及调用。
Servlet 运行在服务端的Java 小程序 ,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。 但servlet的实质就是java代码,通过java的API动态地向客户端输出内容。
servlet规范:包含三个技术点
1)servlet技术
2)filter技术---过滤器
3)listener技术---监听器
Servlet 的 API(生命周期 )分为三个阶段,分别是初始化阶段,运行阶段和销毁阶段
1)初始化阶段
通过调用init()方法实现Servlet的初始化工作。在Servlet的整个生命周期内,它的init()方法只被调用一次。
2)运行阶段
在Servlet的整个生命周期内,对于**servlet** 的每一次访问请求,servlet 容器都会调用一次servlet 的service ()方法,并且创建新的ServletRequest 和ServletResponse 对象 ,也就是说,service()方法在Servlet的整个生命周期内会被调用多次。
3)销毁阶段
当服务器关闭或Web 应用被移出容器时,Servlet 随着Web 应用的销毁而销毁 。 在销毁Servlet之前,Servlet容器会调用Servlet的destroy() 方法,以便让Servlet对象释放它所占用的资源。在Servlet的整个生命周期内,它的destroy()方法也只被调用一次。
Servlet的部署和访问
打开【servers】选项卡,选中部署web应用的Tomcat服务器,右键单击并选择【Add and Remove】选项,进入部署web应用的界面,选中"chapter03",单击【Add】按钮,将chapter03项目添加到Tomcat服务器中,单击【finish】按钮,完成web应用的部署。
接下来启动eclipse中的Tomcat服务器,在浏览器的地址栏上输入地址"http://localhost:8080/chapter03/TestServlet01"访问TestServlet01
1、请列举Servlet接口中的方法,并分别说明这些方法的特点及其作用。
Servlet接口中有init 、service 、destroy 、getServletConfig 和getServletInfo 这 5个方法,这些方法的特点及其作用具体如下:
1)init(ServletConfig config)方法,该方法在服务器对Servlet第一次访问时调用,负责Servlet 初始化 工作。在一个Servlet的生命周期中只执行一次。该方法接收一个ServletConfig类型的参数,Servlet容器可以通过这个参数向Servlet传递初始化配置信息。
2)service(ServletRequest request ,ServletResponse response) 方法,该方法负责响应用户的请求 ,当容器接收到客户端访问Servlet对象的请求时,就会调用此方法。
3)destroy()方法,该方法方法负责释放Servlet 对象占用的资源 。当Servlet对象被销毁时,容器会调用此方法。
4)getServletConfig()方法,该方法返回容器调用init(ServletConfig config) 方法时传递给Servlet 的ServletConfig 对象 。
5)getServletInfo()方法,该方法返回一个字符串 ,其中包含了关于Servlet的信息,例如,作者、版本和版权等信息。
2、简述ServletContext接口的三个主要作用。
1 )获取Web 应用程序的初始化参数
2 )实现多个Servlet对象共享数据
3 )读取Web 应用下的资源文件
2、<!-- 配置Servlet -->
<servlet>
<servlet-name>xxx</servlet-name>
<servlet-class>xxx.xxx.xxx</servlet-class>
</servlet>
<!-- 配置Servlet映射路径 -->
<servlet-mapping>
<servlet-name>xxx</servlet-name>
<url-pattern>/xxx</url-pattern>
</servlet-mapping>
3、在程序中的部署和使用。
9大内置对象
-
深刻理解9大内置对象的含义,以及重点对象的方法及存储范围
9大内置对象的含义:
1.request**:对象主要用于** 处理客户端 请求 ,在(页面转发,获取cookie)用到
2.response**:用于处理** 响应客户端 请求 ,在(页面重定向)中使用
3.session:在网络中被称为会话 ,一个会话就是浏览器与服务器之间的一次通话(保存登录状态时)
4.application:就像全局变量,用于保存应用程序中的共有数据 (上传时获取真实路径)
5.out:对象用于在web浏览器内输出信息 ,数据输出完,要及时关闭输出流
6.pageContext:用于获取页面的上下文 ,通过此对象可以获取页面的其他8个内置对象
7.config:用于取得服务器的配置信息
8.page:代表jsp本身,只有在jsp页面内才是合法的
9.exception:用于处理 jsp页面发生的异常
下面的好像是重点对象
pageContext JSP页面容器 -->当前页面有效
request 请求对象 -->同一次请求有效(请求转发还是有效,重定向[两次请求]无效)
session 会话对象 -->同一次会话有效(只要不关闭或者切换浏览器)
application 全局对象 -->全局有效(整个项目有效,切换浏览器有效,关闭server、其他项目无效)
1、请求转发与重定向的异同点如下:
-
请求转发和重定向都可以实现访问一个资源时转向当前应用资源
-
请求转发是一次请求一次响应,而重定向为两次请求两次响应
3)一般情况下应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力
4)如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向
2、Request
Request.setCharacterEncoding="UTF-8";
String request.getParameter(String name);
String[] request.getParameterValue(String name);
RequestDispatcher request.getRequestDispatcher(String path);
request.getRequestDispatcher.forward(request,response);
Public void setAttribute(string name,object );
Public object getAttribute(string name);
Public void removeAttribute(string name);
3、response
response.setHeader("refresh","2");
response.setHeader("refresh","3;URL=hello.jsp") ;
response.sendRedirect(String location) ;
response.addCookie(Coolie cookie) ;
cookie和session的关系
-
深刻理解cookie和session的关系。
1.Cookie
通俗讲,是访问某些网站后在本地存储的一些网站相关信息,下次访问时减少一些步骤。更准确的说法是:Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一服务器,是在客户端保持状态的方案。
Cookie的主要内容包括:名字,值,过期时间,路径和域。
2.Session
存在服务器的一种用来存放用户数据的类HashTable结构。
浏览器第一次发送请求时,服务器自动生成了一HashTable和一Session ID来唯一标识这个HashTable,并将其通过响应发送到浏览器。浏览器第二次发送请求会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到这个用户对应的HashTable。
一般这个值会有个时间限制,超时后毁掉这个值,默认30分钟。
当用户在应用程序的 Web页间跳转时,存储在 Session 对象中的变量不会丢失而是在整个用户会话中一直存在下去。
Session的实现方式和Cookie有一定关系。建立一个连接就生成一个session id。
++Cookie++ ++与Session++ ++主要有如下区别:++
1)Cookie和HttpSession是保存会话相关数据的技术,其中Cookie将信息存储在++浏览器端++ ,是客户端技术,Session将数据保存在++服务器端++ ,是服务器端技术
2)Cookie是基于HTTP协议中的Set-Cookie响应头和Cookie请求头进行工作的
3)默认情况下HttpSession是基于一个名称为JSESSIONID 的特殊Cookie工作的
4)浏览器对Cookie具有严格的限制,一个网站能在浏览器中保存多少Cookie是有限制的
5)HttpSession默认是基于Cookie运作的。
2、cookie
Public Cookie(string name,string value)
Public string getName()
Public string getValue()
Public void setMaxAge(int expiry)
Public void addCookie(Cookie cookie)
Public Cookie[] getCookies()
3、session
public String getId()
public boolean isNew()
public void setMaxInactiveInterval(int interval)
public int getMaxInactiveInterval()
public long getCreationTime()
public long getLastAccessedTime()
public void setAttribute(String name, Object value)
public Object getAttribute(String name)
public void removeAttribute(String name)
public void invalidate()
JSP
1、JSP基本结构:java程序段、声明、输出表达式
<% java程序段 %>
<%! 声明 %>
<%= %>相当于out.print()
out.println()和out.print()效果是一样的。如果要换行</br>
2、JSP注释:<!-- HTML注释 -->、//java语句注释、/* java程序段注释...*/、<%-- jsp注释 --%>
3、文档UTF-8设置
打开Eclisps软件时整体设置--属性;
项目属性设置;
request.setCharacterEncoding="UTF-8";;
response.setCharacterEncoding="UTF-8";
4、重点JSP指令:
<%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
<%@ page errorPage="..." iserrorPage="true" %>
<%@ page import="..." %>
<%@ include file="..." %>
动作指令:
<jsp:include page="..." flush="true"/>
<jsp:include page="..." flush="true">
<jsp:param name="..." value="...">
</jsp:include>
<jsp:forward page="...">
<jsp:param name="..." value="..." />
<jsp:forward>
跳转方式:
<a href="...?param=...¶m1=...&...">
重定向:(两次请求,地址栏看的到变化,数据丢失)
response.sendRedirect("相对路径");
请求转发:(一次请求,地址栏看不到改变,数据不丢失,可以getParameter数据,也可以getAttribute数据)
request.getRequestDispatcher("相对路径").forward(request,response);
过滤器&&监听器
-
理解概念、原理,掌握配置。
过滤器
Filter被称作过滤器或者拦截器,其基本功能就是对**Servlet** 容器调用Servlet 的过程进行拦截 ,从而在Servlet进行响应处理前后实现一些特殊功能。
Filter工作原理(执行流程)
当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求数据进行检查或改动,并依次通过过滤器链,最后把请求/响应交给请求的Web资源处理。请求信息在过滤器链中可以被修改,也可以根据条件让请求不发往资源处理器,并直接向客户机发回一个响应。当资源处理器完成了对资源的处理后,响应信息将逐级逆向返回。同样在这个过程中,用户可以修改响应信息,从而完成一定的任务。
监听器
Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理。
2、简述Servlet事件监听器的作用。(写出三点)
1)监听Web应用程序中ServletContext、HttpSession和ServletRequest等域对象的创建和销毁过程。
2)监听ServletContext、HttpSession和ServletRequest等域对象属性的修改。
3)感知绑定到HttpSession域中某个对象的状态。
-
过滤器处理过程:对请求、响应进行过滤;对数据放行。
3、Filter过滤器就是一个实现了javax.servlet.Filter接口的类:
实现三个核心方法:init()、destroy()、doFilter();
其中init()、destroy()原理、执行时机同Servlet一样;
过滤器为了实现过滤谁,需要配置拦截谁,过程类似servlet;
拦截路径或通配符拦截;
过滤器链:可以配置多个过滤器,过滤器的先后顺序是由<filter-mapping>的位置决定。
dispatcher请求方式:
request:拦截HTTP请求 get post;
forward:只拦截通过请求转发方式的请求;
通过doFilter()处理拦截,并且通过chain.doFilter(request,response)放行;
4、在程序中的部署和使用,网站统一字符编码过滤器的使用。
JDBC
第9章重点记忆归纳:++(题目分布:简答、程序)++
1.理解JDBC存在的意义、概念、原理。
概念:Java DataBase Connectivity:使用Java代码发送sql语句的技术就是jdbc技术
作用:与数据建立起连接,使java能实现对数据库的操作。
++请简述什么是++ ++JDBC++ ++。++
JDBC的全称是Java 数据库连接 (Java Database Connectivity),它是一套用于执行**SQL** 语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等处理。
++简述++ ++JDBC++ ++的实现步骤。++
JDBC的实现步骤 如下:
1)加载并注册数据库驱动
2)通过DriverManager获取数据库连接
3)通过Connection对象获取Statement对象
4)使用Statement执行SQL语句
5)操作ResultSet结果集
6)关闭连接,释放资源
请编写一个用于读取数据库中users表信息的JDBC程序,要求分别获取字段id、name、password和email字段的值。
public class Example01 { public static void main(String[] args) throws SQLException { // 1. 注册数据库的驱动 **DriverManager.registerDriver(new com.mysql.jdbc.Driver());** **Class.forName("com.mysql.jdbc.Driver");** // 2.通过DriverManager获取数据库连接 **String url = "jdbc:mysql://localhost:3306/jdbc";** String username = "root"; String password = "itcast"; **Connection conn = DriverManager.getConnection(url, username, password);** // 3.通过Connection对象获取Statement对象 **Statement stmt = conn.createStatement();** // 4.使用Statement执行SQL语句。 String sql = "select \* from users"; **ResultSet rs = stmt.executeQuery(sql);** // 5. 操作ResultSet结果集 System.out.println("id \| name \| password \| email \|"); while (rs.next()) { int id = rs.getInt("id"); // 通过列名获取指定字段的值 String name = rs.getString("name"); String psw = rs.getString("password"); String email = rs.getString("email"); System.out.println(id + " \| " + name + " \| " + psw + " \| " + email); }
// 6.回收数据库资源
rs.close();
stmt.close();
conn.close();
2.JDBC API主要功能:通过以下类/接口实现
DriverManager:管理jdbc驱动
Connection:连接(通过DriverManager产生)
Statement(PreparedStatement):增删改查(通过Connection产生)
CallableStatement:调用数据库中的存储过程/存储函数(通过Connection产生)
Result:返回的结果集(Statement,PreparedStatement产生)
3.jdbc 访问数据库的具体步骤:
a. 导入驱动,加载具体的驱动类
b. 与数据库建立连接
c. 发送sql,执行
d. 处理结果集(查询)
e. 关闭
4.推荐使用PreparedStatement:原因如下:
1、编码简便,不易写错
String name="ls";
String password="1234";
stmt:
String sql="insert into user(name,password)values('"+name+"','"+password+"')";
stmt.executeUpdate(sq1);
pstmt:
String sql="insert into user(name,password) values(?,?)";
pstmt=connection.prepareStatement(sq1);//预编译SQL
pstmt.setString(1 ,name);
pstmt.setString(2 ,password);
2、性能高,预编译速度快。
3、有效防止SQL注入漏洞。
stmt:存在被sq1注入的风险
(例如: 输入用户名:任意值'or 2=2-- 密码:任意值)
select count(*)from user where name='"+name+"' and password='"+password+"';
select count(*)from user where name='ls'and password='1234';
select count(*)from user where name='任意值'or 2=2--'and password='任意值';
select count(*)from user where name='任意值'or 2=2;
select count(*)from user;
pstmt:有效防止sql注入
数据库连接池
-
重点概念、原理。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不是直接创建Connection,而是向连接池"申请"一个Connection。如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。使用完毕后,连接池会将该Connection回收,并交付其他的线程使用,以减少创建和断开数据库连接的次数,提高数据库的访问效率。
2、不用连接池
Class.forName();
Connection connection =DriverManager.getConnection();//连接指向数据库
3、用连接池的核心:将连接的指向数据源而不是数据库。
...->DataSource ds=....
Connection connection =ds.getConnection();//指向的是数据源的连接
数据库访问核心->pstmt/stmt->connection->1.直接数据库 2.数据源
JSP Model1和JSP Model2
-
重点JSP Model1和JSP Model2的原理及使用过程。
Model1应用了JavaWeb开发当中的两种技术,即JSP 和JavaBean 技术,所以Model1就是JSP+JavaBean 模式。其中JSP需要独自完成响应用户的请求并将处理结果返回给用户,同时还需要完成流程的控制处理;而JavaBean进行辅助,如保存从数据库中查询出来的数据等。
Model 2架构模式是一种把JSP与Servlet联合使用来实现动态内容服务的方法,所以Model2就是JSP+Servlet+JavaBean 模式。它吸取了两种技术各自的突出优点,使用JSP生成表达层的内容,使用Servlet完成深层次的处理任务。在Model 2中,Servlet 充当控制者的角色, 负责管理对请求的处理,创建JSP页面所需的JavaBean和对象,同时根据用户的动作决定把哪个JSP页面传给用户。特别要注意,在JSP页面内没有处理逻辑,它仅负责检索原先由Servlet创建的对象或JavaBean,然后从Servlet中提取动态内容插入到静态模板中进行页面显示。
简述什么是MVC设计模式。
MVC设计模式是编程语言的一种软件设计模式 ,提供了一种按功能对软件进行模块划分 的方法。MVC设计模式将软件程序分为三个核心模块:模型(Model)、视图(View)和控制器(Controller)。
简述MVC设计模式中模型(Model)模块的作用。
MVC设计模式中模型(Model)模块的作用如下:
-
管理 应用程序的业务数据 。
-
定义访问控制和修改 这些数据的业务规则 。
-
当模型的状态发生改变 时,它会通知视图 发生改变,并为视图提供查询模型状态的方法 。
文件上传、下载原理
-
重点理解文件上传、下载原理。 、
JSP页面的page指令主要用于设置该页面的各种属性,page指令的language属性的作用是:
指定JSP页面使用的脚本语言,默认为Java
Servlet的作用是处理客户端请求并做出响应,Servlet是一个符合特定规范的java程序,是运行在服务器端的一个基于java技术的web组件
Servlet的生命周期方法有init()、service()、destroy()
在<servlet>元素中增加<load-on-startup>元素可以指定在容器启动时Servlet的加载次序
在JSP中使用JDBC语句访问数据库,正确导入SQL类库的语句是:
<%@ page import="java.sql.*" %>
JSP应用程序配置文件的根元素为<web-app>,JSP中的隐式注释为:<%--注释内容--%>,在JSP中如果要导入java.util.*包要使用page指令
JSP文件请求需要经过翻译阶段 编译阶段 执行阶段三个阶段
抽象类GenericServlet实现了Servlet接口和ServletConfig接口
编写Servlet时只需要根据应用的需要,重写doGet()或者doPost()方法即可
向请求作用域中存放数据 可以用request对象的setAttribute(String,Object)方法,取数据可以用getAttribute(String)方法
JSP和Servlet的关系是:JSP会被翻译成Servlet
转发不会产生新的request对象,重定向是发送一个新的请求,发送一次请求会产生一个response与request对象
request对象通过哪个方法是根据组件名称获取提交数据的:getParameter()
在JSP中,以下哪个方法可以正确获取复选框的值:request.getParameterValues()
Servlet中获取请求的参数值用getParameter()方法,同名的多个参数使用request.getParameterValues()方法
以下哪个对象提供了访问和放置页面共享数据的方式:session
在JSP中,session技术最适合实现购物车的存储
在JSP页面中,下列( )表达式语句可以获取页面请求中名字为title的文本框的内容:
<%=request.getParameter("title")%>
cookie的作用表现在以下方面:
1.对特定对象的追踪,如访问者的访问次数、最后访问时间、路径等。
2.统计网页浏览次数。
3.在cookie有效期内,记录用户登录信息。
4.实现各种个性化服务,如针对不同用户喜欢以不同的风格展示不同的内容。
服务器为每一个浏览器分配一个session,但是session不会再浏览器关闭的时候销毁,只有过期或服务器关闭才会销毁。释放 session 对象时,使用 session 对象的 invalidate ()方法
cookie由Netscape公司发明,是最常用的跟踪用户会话的方式。它是由服务端、客户端 产生,发送给浏览器
我们第一次访问服务器的时候,如果只是通过请求连接一个 jsp 页面,不提交任何信息,会触发哪个事件:建立 session
会话跟踪技术可以通过以下哪些技术实现:cookie、session
在web.xml中使用<filter>和<filter-mapping>标签配置过滤器
MVC模式
MVC模式中,M指的是模型Model,V指的是视图View,C指的是控制器Controller
MVC模式中,模型对应的组件在: JavaBean
MVC模式中,视图对应的组件是: JSP 或 HTML 文件
MVC模式中,控制器的作用是:控制器负责转发请求,对请求进行处理
M(模型层)指的是:实体类、Service层、dao层
MVC 模式的优点有:各司其职,互不干涉、利于分工、利于重用和扩展
Model1模式下的程序流程控制是在JSP页面中实现的,这使得JSP页面中的嵌入大量的Java代码,Model1模式是JSP + JavaBean的结合,在JSP技术发展的初识阶段被广泛使用,Model2模式(MVC)是在JSP+JavaBean的设计模式基础上加入Servlet来实现程序控制层
整个MVC的流程就是:用户发送一个请求,首先由控制层 接收,然后根据请求去调用模型层 处理并返回数据,接着调用相应的视图层把数据响应给用户
JavaBean
-
JavaBean技术概念和使用。
Javabean是Java开发语言中一个可以重复使用的软件组件,它本质上就是一个Java类。
<jsp:useBean>标签用来声明JavaBean对象
JSP提供了访问JavaBean属性的标签,如果要将JavaBean的某个属性输出到网页上,可以用<jsp:getProperty>标签。如果要给JavaBean的某个属性赋值,可以用<jsp:setProperty>标签
-
EL表达式以及JSTL标签库的基本使用。
EL表达式定义规则:以$符号开头,内容写在{}中,例如:$(test)
EL表达式的隐形变量:
pageContext:用来访问JSP的隐形对象。
pageScope:page对象的Map
requestScope:request对象的Map
sessionScope:session对象的MAP
applicationScope:application对象的MAP
param:包含请求的参数的字符串MAP
cookie:按照名称存储请求附带cookie的MAP
假设我们是想要session中的name值,那么我们可以使用:${sessionScope.name},
request.getParamter(name)相当于是${param.name}
如果我们想要得到一个参数的数组,可以使用:${paramValues.name},当然,返回的是一个数组对象。
简述Javabean规范都有哪些?
1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的缺省构造方法。
2)它提供公共的setter方法和getter方法让外部程序设置和获取JavaBean的属性。
3)它是一个公有类。
4)通常需要实现java.io.Serializable,用于序列化。
++简述定义++ ++EL++ ++标识符的规范。++
-
可以由任意顺序的大小写字母、数字和下划线组成
-
不能以数字开头
-
不能是EL中的保留字,如and、or、gt;
-
不能是EL隐式对象,如pageContext;
-
不能包含单引号(')、双引号(")、减号(-)和正斜线等特殊字符
JavaWeb期末题库
选择题
-
在WEB项目的目录结构中,web.xml文件位于( C )中(选择一项) A. Src B. META-INF C. WEB-INF D. WebRoot
-
在Servlet生命周期中,对应服务阶段的方法是( C )(选择一项) A. init() B. destroy() C. service() D. initial()
-
在web编程中,对于cookie的作用说法正确的有( A )(选择一项) A. 为了识别不同的用户信息 B. 为了简化程序开发 C. 为了提高程序执行速度 D. 以上说法都不对
-
对于ServletRequest接口的getAttribute()方法,说法正确的是( A )(选择一项) A. 获取指定名称的属性值 B. 设置指定属性的值 C. 删除指定属性的值 D. 以上都不对
<servlet><servlet-name>testServlet</servlet-name><servlet-class>com.accp.servlet.TestServlet</servlet-class> </servlet>
对于以上代码片段,说法正确的是( AB )(选择二项) A. 配置了逻辑名为testServlet的Servlet组件 B. 其对于的类的路径是:com.accp.servlet.TestServlet C. 客户端可以通过testServlet访问 D. 以上说法都不对
-
在java Web应用开发中,Servlet程序需要在( B )文件中配置。(选择一项) A. Jsp B. web.xml C. struts.xml D. servlet.xml
-
在Java EE中,HttpServletResponse的( B )方法用于一个HTTP请求重定向到另一个资源。(选择一项) A. sendURL() B. sendRedirect() C. forward() D. redirectURL()
-
以下哪种格式是正确的URL( A )(选择一项) A. http://localhost:8080/news/index.jsp> B. http://localhost/8080/news/index.jsp> C. http://localhost/8080:news/index.jsp> D. http:localhost://8080/news/index.jsp
-
以下代码中可以正确设置客户端请求编码为UTF-8 的是( A )(选择一项) A. request.setCharacterEncoding("UTF-8") B. request.setCharset("UTF-8") C. request.setContentType("UTF-8") D. request.setEncoding("UTF-8")
-
通过response的( A )方法可以设置响应所采用的字符编码类型。(选择一项) A. setCharacterEncoding() B. setCharset() C. setEncoding() D. setContentType()
-
在部署带有Servlet的Java Web程序时,( D )不是必需的。(选择一项) A. web.xml文件 B. WEB-INF文件夹 C. classes文件夹 D. csses文件夹
-
对于servlet在程序中的作用,以下说法正确的是( AB )(选择二项) A. 分离业务逻辑代码与表现层代码 B. 让程序执行流程更加清晰 C. 加快了程序访问速度 D. 大大减少了编码工作量
-
在WEB应用程序开发中,有时会出现Tomcat端口号已经被占用的情况,为此我们需要修改配置文件,下列选项中修改正确的是( B )(选择一项) A. 在tomcat目录\bin文件夹\server.xml文件中,修改 Connection的port B. 在tomcat目录\conf文件夹\server.xml文件中,修改 Connector的port C. 在tomcat目录\bin文件夹\server.xml文件中,修改 Connector的port D. 在tomcat目录\conf文件夹\server.xml文件中,修改 Connection的port
-
如果要把一个"accp"字符串信息放在session对象里,则下列正确的是( A )(选择一项) A. session.setAttribute("message","accp"); B. session.setAttribute(message,"accp"); C. session.setAttribute("accp","message"); D. session.setAttributes("message","accp");
-
如果要从session范围取出名为flag的变量,则以下说法正确的是( A )(选择一项) A. session.getAttribute("flag"); B. session.getAttributes("flag"); C. session.getParameter("flag"); D. session.get("flag");
-
假设session对象中存放了一个Book对象,即:session.setAttribute("book",new Book()) , 则取出Book对象的正确语句是( B )(选择一项) A. Book book = session.getAttribute("book") B. Book book = (Book)session.getAttribute("book") C. Book book = session.getValue("book") D. Book book = (Book)session.getValue("book")
-
在JSP中,以下可以实现请求转发的是( D )(选择一项) A. request.getRequestDispatcher("list.jsp"); B. response.getRequestDispatcher("list.jsp"); C. response.getRequestDispatcher("list.jsp").forward(request,response); D. request.getRequestDispatcher("list.jsp").forward(request,response);
-
web.xml中预先对Servlet进行初始化设置的代码如下:
<init-param><param-name>myWord</param-name><param-value>hello</param-value> </init-param>
则如下获取初始化参数的语句正确的是( A )。(选择一项) A. String myWord = getInitParameter("myWord"); B. String myWord = getInitParameter("hello"); C. String myWord = getInit("myWorld"); D. String myWord= getInit("hello");
-
以下关于Servlet生命周期说法错误的是( C )。(选择一项) A. Servlet容器根据Servlet类的位置加载Servlet类,成功加载后,由0容器创建Servlet的实例 B. 对于每一个Servlet实例,init()方法只被调用一次 C. 当Servlet容器接收到客户端请求时,调用 Servlet的service()方法以及destory()方法处理客户端请求 D. servlet的实例是由servlet容器创建的,所以实例销毁也由容器业完成
-
以下关于转发和重定向的说法错误的是( C )(选择一项) A. 转发通过request的getRequestDispatcher().forward()方法即可实现,它的作用是在多个页面交互过程中实现请求数据的共享。 B. 重定向可以理解为是浏览器至少提交了两次请求,它是在客户端发挥作用,通过请求新的地址实现页面转向 C. 转发和重定向都可以共享request范围内的数据 D. 转发时客户端的URL地址不会发生改变,而重定向时客户端浏览器中显示的是新的URL地址。
-
在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是( B )。(选择一项)
Public class Servlet1 extends HttpServlet{Publicvoid init() throws ServletException{}Publicvoid service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{PrintWriterout = response.getWriter();out.println("hello!");} }
A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello! C. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中看不到任何输出的文字 D. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到运行期错误信息
-
J2EE中,Servlet API为使用Cookie,提供了( A )类。 A. javax.servlet.http.Cookie B. javax.servlet.http.HttpCookie C. javax.servlet. Cookie D. javax.servlet.http.HttpCookie
23 能够保留请求作用域中数据的转向方式是D_ A. response.forward() B. response.sendRedirect() C. session.getRequestDispatcher().forward(request,response) D. request.getRequestDispatcher().forward(request,response)
-
JSP中存在如下代码:<%="2"+"4" %>,运行该JSP后,以下说法正确的是( C )(选择一项) A. 没有任何输出 B. 输出6 C. 输出24 D. 指令将引发错误
-
在JSP中,使用( C )对象的( )方法可完成网页重定向(选择一项) A. request,getRequestDispatcher() B. request,forward() C. response,sendRedirect() D. response,setRequestDispatcher()
-
对于分页查询, 以下说法不正确的是( B )(选择一项) A. 可以减轻服务器压力 B. 对于程序开销极大 C. 以提高用户体验 D. 对于不同数据库有不同的SQL指令
-
对于ServletRequest接口的getAttribute()方法,说法正确的是( A )(选择一项) A. 获取指定名称的属性值 B. 设置指定属性的值 C. 删除指定属性的值 D. 以上都不对
-
对JSTL说法中正确的是( AB )(选择二项) A. foreach用来循环输出集合中的数据 B. set标签用来定义变量 C. out标签只能输出session中的变量值 D. if标签主要用来执行数据库操
-
在JSP页面中,下列( A )表达式语句可以获取页面请求中名字为title的文本框的内容。(选择一项) A. <%=request.getParameter("title")%> B. <%=request.getAttribute("title")%> C. <%=request.getParameterValues("title")%> D. <%=request.getParameters("title")%>
-
jsp在执行过程中经过()阶段,由web容器将之转换成java源代码( A )(选择一项) A. 翻译 B. 编译 C. 执行 D. 响应
-
jsp在执行过程中经过()阶段,会将java源码转换成class文件( B )(选择一项) A. 翻译 B. 编译 C. 执行 D. 响应
-
在JSP的小脚本中,使用以下( C)语句可以使浏览器重定向到另一个页面(选择一项) A. request.sendRedirect("http://www.jb-aptech.com.cn"); B. request.sendRedirect(); C. response.sendRedirect("http://www.jb-aptech.com.cn"); D. response.sendRedirect();
-
JSP文件test.jsp文件如下所示,运行时,将发生(D)。(选择一项)
<html><% String str = null;%>str is <%=str%> </html>
A. 编译阶段出现错误 B. 翻译阶段出现错误 C. 执行字节码时发生错误 D. 运行后,浏览器上显示:str is null
-
JSP页面的page指令主要用于设置该页面的各种属性,page指令的language属性的作用是( B )。(选择一项) A. 将需要的包或类引入到JSP页面中 B. 指定JSP页面使用的脚本语言,默认为Java C. 指定JSP页面采用的编码方式,默认为text/html D. 服务器所在国家编码
-
在java Web应用开发中,Servlet程序需要在( B )文件中配置。(选择一项) A. Jsp B. web.xml C. struts.xml D. servlet.xml
-
在Java EE中,HttpServletResponse的( B )方法用于一个HTTP请求重定向到另一个资源。(选择一项) A. sendURL() B. sendRedirect() C. forward() D. redirectURL()
-
在JSP页面中进行访问控制时,一般会使用JSP的( B )内置对象实现对用户的会话跟踪(选择一项) A. Request B. Session C. Response D. Application
-
在JSP页面中有如下Java代码,一共存在( B)处错误(选择一项) <%
String userName= (String)session.getParameter("userName");if(userName==null){%>您尚未登录!<%}else{%>欢迎您,<%=userName %><%} %>
A. 0 B. 1 C. 2 D. 3
-
在JSP中,以下哪个方法可以正确获取复选框的值( C )(选择一项) A. request.getParameterValue() B. response.setParameterValues() C. request.getParameterValues() D. request.getParameter()
-
在一个jsp页面中包含了这样一种页面元素,<% int i = 10; %>这是( B )(选择一项) A. 表达式 B. 小脚本 C. 指令 D. 注释
-
在JSP中,以下( C )技术最适合实现购物车的存储(选择一项) A. Page B. Request C. Session D. Application
-
以下JSP关键代码的运行效果为( A )。(选择一项)
<%Map map=new HashMap();map.put("a","Java");map.put("b","JSP");map.put("a","C#");request.setAttribute("map",map); %> ${map.b}<br/> ${map["a"]}
A. JSP C# B. JSP JAVA C. 运行时出现错误 D. 什么也不输出。
-
以下JSP代码运行后的结果为( B )。(选择一项) <%int i =8;%> <%=i+"8"%> A. i8 B. 88 C. 16 D. 编译错误
-
如下JSP代码输出集合中各元素,横线处应填写( AC )。(选择二项)
<%List<String> strs= new ArrayList<String>();strs.add("北京");strs.add("上海");strs.add("浙江");request.setAttribute("strs",strs); %> <c:forEach var="strList" items="___________"><c:out value="________"></c:out> </c:forEach>
A. strs,strs,{strList} B. strList,strList,{strs} C. requestScope.strs,requestScope.strs,{strList} D. strList,strList,{requestScope.strs}
-
以下JSP关键代码的功能为输出"姓名:陈小斌",横线处应填写( AC ).(选择二项)
<%Map stus = new HashMap();stus.put("stu1","王晓");stus.put("stu2","黄青");stus.put("stu3","陈小斌");request.setAttribute("stuList",stus); %>
姓名:____ A. ${stuList.stu3} B. ${stuList[stu3]} C. ${stuList["stu3"]} D. ${stuList."stu3"}
-
如下JSP代码输出集合中各元素,横线处应填写( AC )。(选择二项)
<%List<String> strs= new ArrayList<String>();strs.add("北京");strs.add("上海");strs.add("浙江");request.setAttribute("strs",strs); %> <c:forEach var="strList" items="___________"><c:out value="________"></c:out> </c:forEach>
A. strs,strs,{strList} B. strList,strList,{strs} C. requestScope.strs,requestScope.strs,{strList} D. strList,strList,{requestScope.strs}
-
在JSP中,以下哪个方法可以正确获取复选框的值( C )(选择一项) A. request.getParameterValue() B. response.setParameterValues() C. request.getParameterValues() D. request.getParameter()
-
JSP中的有很多内置对象可以方便程序开发,其中不包括( C )(选择一项) A. Out B. Request C. Redirect D. Response
-
在一个jsp页面中包含了这样一种页面元素,<% int i = 10; %>这是( B )(选择一项) A. 表达式 B. 小脚本 C. JSP指令 D. 注释
-
在JSP中,以下( C )技术最适合实现购物车的存储(选择一项) A. Page B. Request C. Session D. Application
-
在使用表单提交数据时,如果标签的method属性未指定的时候,则以下说法中正确的是( B )(选择一项) A. 默认为POST请求 B. 默认为GET请求 C. 默认为Fast请求 D. 编译错误
-
如果要把一个"accp"字符串信息放在session对象里,则下列正确的是( A )(选择一项) A. session.setAttribute("message","accp"); B. session.setAttribute(message,"accp"); C. session.setAttribute("accp","message"); D. session.setAttributes("message","accp");
-
在JSP中,假设表单的method="post",在发送请求时中文乱码处理的正确做法是( A )(选择一项) A. request.setCharacterEncoding("utf-8"); B. response.setCharacter("utf-8"); C. request.setContentType("text/html;charset=utf-8"); D. response.setContentType("text/html;charset=utf-8");
-
在JSP中,对于数据的共享可通过不同的作用域对象实现,如果该数据仅限当前页面有效,可选择的作用域对象( A )。(选择一项) A. PageContext B. Request C. Session D. Application
-
在JSP中,pageContext、request、session、application均提供了存取数据的通用方法,假设已经在session中存入了名为"currentUser"的User对象,则取出该数据的正确语句是( BC )(选择二项) A. User user = session.getAttribute("currentUser"); B. User user = (User)session.getAttribute("currentUser"); C. Object user = session.getAttribute("currentUser"); D. String user = (String)session.getAttribute("currentUser");
58.B 编写一个Filter,需要( ) A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口
59.ABC 有关会话跟踪技术描述正确的是( )(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期 C. 在禁用Cookie时可以使用URL重写技术跟踪会话 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示
60.C 在J2EE中,重定向到另一个页面,以下( )语句是正确的 A. request . sendRedirect("http 😕/ www . svse . com . cn"); B. request . sendRedirect(); C. response . sendRedirect("http: // www . svse . com . cn"); D. response .sendRedirect();
61.B EL表达式,${10 mod3},执行结果为( ) A. 10 mod 3 B. 1 C. 3 D. null
62.B request.getRequestDispatcher().forward(request,response)称之为( ) A. 流转 B. 转发 C. 重定向 D. 导航
63.BCD 有关Servlet的生命周期说法正确的有( ) (多选) A. Servlet的生命周期由Servlet实例控制 B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext接口的对象 C. service()方法响应客户端发出的请求 D. destroy()方法释放Servlet实例
64.B 在Servlet中,response.getWriter()返回的是____ A. JspWriter对象 B. PrintWriter对象 C. Out对象 D. ResponseWriter对象
-
在web.xml中使用_A__标签配置过滤器
A. <filter>和<filter-mapping>B. <filter-name>和<filter-class>C. <filter>和<filter-class>D. <filter-pattern>和<filter>
66.D 在访问Servlet时,在浏览器地址栏中输入的路径是在___地方配置的
A. <servlet-name/>B. <servlet-mapping/>C. <uri-pattern/>D. <url-pattern/>
67.A 在JSP页面中,能够完成输出操作的内置对象是 ( ) A. out B. response C. request D. config
68.A 给定以下JSP代码片段,有2个客户依次浏览该JSP;且每个客户只浏览一次,第2个客户会看到浏览器显示( )。(请选择一项)
<%int x = 1; %> <%!int x = 10; %> X =<%=x%>
A. x=1 B. x=2 C. x=10 D. x=11
69.D 能够保留请求作用域中数据的转向方式是___ A. response.forward() B. response.sendRedirect() C. session.getRequestDispatcher().forward(request,response) D. request.getRequestDispatcher().forward(request,response)
70.C Login.jsp为登录页面,表单代码如下:
<form action="index.jsp"method="post"><input type="text" name="name"/><input type="submit" value="login"/> </form>
Index.jsp中直接显示用户名,以下哪种代码正确()
A. ${requestScope.name}B. <%=name%>C. ${param.name}D. <%=param.name%>
71.B 某JSP中有如下代码,显示结果为( )
<%inta = 5;request.setAttribute("a","123");session.setAttribute("a","456"); %> <c:out value="${a}"/>
A. 5 B. 123 C. 456 D. null
72.A 在编写过滤器时,需要完成的方法( ) A. doFilter() B. doChain() C. doPost() D. doDelete()
73.B 以下代码执行效果为( ):
<c:forEach var = "i" begin = "1" end ="5" step = "2"><c:outvalue="${i}"/> </c:forEach>
A. 1 2 3 4 5 B. 1 3 5 C. i i i D. 15
request.setAttribute("user","svse"); session.setAttribute("user","bob");
使用{user}则显示( B) A. null B. svse C. bob D. 啥也没有
75.A 以下代码执行效果为( )
<c:forEach var = "i" begin ="1" end = "5"><c:outvalue="${i}"/> </c:forEach>
A. 1 2 3 4 5 B. i i i i i C. 15 D. 编译错误
-
MVC中的 M V C 分别用___、___、_表示(C) A. jsp servlet javabean B. HTml javabean jsp C. javabean jsp servlet D. servlet html jsp
pageContext.setAttribute("user","tom"); request.setAttribute("user","bob");
显示"bob",则可以使用( D ) A. {request.getAttribute("user")} B. {param.user} C. {user} D. {requestScope.user}
-
以下哪个标签实现了switch功能( C ) A. <c:if> B. <c:switch> C. <c:choose> D. <c:case>
-
过滤器使用__B____才能继续传递到下一个过滤器 A. request.getRequestDispatcher().forward(request,response); B. doFilter() C. doPut() D. doChain()
80.C如下代码,执行效果为( C )
<c:set var="a" value="123" /> <c:out value="${a}"/> <c:out value="a"/>
A. 123 123 B. a 123 C. 123 a D. A a
-
application对象是___,而session对象则是__ ( C ) A. 服务器的一个数据空间,可以让服务器中的所有应用共享数据 / 与用户的请求有关 B. 应用程序上下文,它允许数据在同一应用程序中的任何Web组件共享 / 每个客户专用的 C. 存放所有的请求中数据 / 存放会话中的所有数据 D. HttpApplication类型 / 保存用访问应用期间的私有数据
-
下面关于MVC的说法不正确的是 ( D ) A. M表示Model层,是存储数据的地方 B. View表示视图层,负责向用户显示外观 C. Controller是控制层,负责控制流程 D. 在MVC架构中 jsp通常做控制层 一个具有注脚的文本。
填空题
1、用户可以有多种方式请求Servlet,如 浏览器直接调用,页面form中提交调用 、超链接调用 、 Servlet调用 等。
2、out对象的 out.flush()方法,功能是输出缓冲的内容。
3、response对象的_ sendRedirect(URL url)方法可以将当前客户端的请求转到其他页面去。表单的提交方法包括get和_post__方法。
4、response.setHeader("Refresh", "5")的含义是指 页面刷新时间为 5秒 。
5、表单标记中的action_属性用于指定处理表单数据程序url的地址。
6、使用cookie的基本步骤为:创建cookie对象,设置cookie对象的有效时间 ,传送cookie对象 , 读取cookie对象 。
7、Servlet中使用Session对象的步骤为:调用HttpServletRequest.getSession()得到Session对象,查看Session对象,在会话中保存数据。
8、在Servlet中,主要使用HttpServletResponse类的重定向方法 sendRedirect() 方法实现重定向,以及使用RequestDispatcher类的转发方法 forward() 方法实现转发功能。
9、Servlet接口定义了三个用于Servlet生命周期的方法,它们是init()、service()、destroy()
10、Servlet运行于 服务器 端。
11、使用Servlet处理表单提交时,两个最重要的方法是_ doGet() 和doPost() 。
12、Serlvet接口只定义了一个服务方法就是_ service() _。
13、MVC是三层开发结构,这三个字母按顺序分别代表_ model、view 、controller 。
14、Filter接口中最主要的方法是 doFilter 方法。
15、实现Filter接口的类需要重写doFilter方法、init方法、destroy方法。
16、ServletContext 被创建时的监听类需要实现 ServletContextListener接口。
17、配置事件监听类的配置文件是 <listener><listener-class>监听类路径</listenr-class></listener>
__
18、"/"的问题。在浏览器发请求时它代表什么含义代表服务器根目录,服务器内部跳转时代表什么含义___代表项目根目录
19、下面代码有什么问题,请指出:response.setContentType("text/html,charset=gbk");__中间应该是;而不是,
20、一个完整的JSP页面是由普通的HTML标记、JSP指令标记、JSP动作标记、变量声明与方法声明 、程序片 、表达式、 注释7种要素构成。
21、JSP页面的基本构成元素,其中变量和方法声明(Declaration)、表达式 (Expression)和Java程序片(Scriptlet)统称为JSP脚本元素 。
22、指令标记、JSP动作标记统称为 JSP标记 。
23、"<%!"和"%>"之间声明的方法在整个页面内有效,称为页面的成员方法 。
24、在"<%!"和"%>"之间声明的变量又称为 页面成员变量 ,其作用范围为整个JSP页面。
25、JSP页面的程序片中可以插入 HTML 标记。
26、JSP页面中,输出型注释的内容写在 "<!--" 和 "-->"
之间。
27、Page指令的属性Language的默认值是 java 。
28、在Error.jsp页面中,要使用Exception对象,必须设置的指令是<%@page isErrorPage = "true"%>.
29、JSP的session_对象用来保存单个用户访问时的一些信息。
30、response对象的_sendRedirect(URL url)___方法可以将当前客户端的请求转到其他页面去。
31、当客户端请求一个JSP页面时,JSP容器会将请求信息包装在request对象中。
32、在JSP中为内置对象定义了4种作用范围,即Application Scope 、 Session Scope 、Page Scope 和Request Scope 四个作用范围。
33、表单的提交方法包括post和get__方法。
34、JavaBean是一个 java类,它必须有一个无参的构造方法。
35、JSP的是内部对象可以直接使用,它是由 web容器 创建的。
36、在JSP中,页面间对象传递的方法: request 、 session 、 application 、 cookie 等方法。
37、在jsp页面中,可以用request对象的 getParameterValues() 方法来获取其他页面传递参数值的数组。
38、在Web服务器端使用JavaBean,将原来页面中程序片完成的功能封装到JavaBean中,这样能很好地实现 业务逻辑层与视图层的分离 。
39、JavaBean中用一组set方法设置Bean的私有属性值,get方法获得Bean的私有属性值。set和get方法名称与属性名称之间必须对应,也就是:如果属性名称为xxx,那么set和get方法的名称必须为 setXxx() 和 getXxx() 。
40、使用Bean首先要在JSP页面中使用 import 指令将Bean引入。
41、控制器主要负责两方面的动作: 把用户的请求分发到相应的模型 ;将模型的改变及时反映到视图上 。
42、简单地说,JDBC能够完成下列三件事:与一个数据库建立连接(connection)、向数据库发送SQL语句(statement) 、处理数据库返回的结果(resultset) 。
43、查询结果集ResultSet对象是以统一的行列形式组织数据的,执行ResultSet rs = stmt.executeQuery ("select bid,name,author,publish,price from book");语句,得到的结果集rs第一列显示 bid 字段;而每一次rs只能看到一行,要看到下一行,必须使用 next() 方法移动当前行。ResultSet对象使用 getXXX() 方法获得当前行字段的值。
44、stmt为Statement对象,执行String sql= "delete from book where bid='tp1001' ";语句后,删除数据库表的记录需要执行stmt.executeUpdate(sql); 语句。
45、 模型 封装了数据和对数据的操作,是实际进行数据处理计算的地方。 视图 是应用和用户之间的接口,它负责将应用显现给用户和显示模型的状态。控制器 负责视图和模型之间的交互,控制对用户输入的响应、响应方式和流程。
46、JSTL标签库中,c:forEach标签用来循环输出集合中的数据。
47、获取request作用域中名为"uname"值的EL表达式是${uname} 。
简答题
1、说一说Servlet的生命周期? Servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由Servlet接口的init,service和destroy方法表达。 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
2、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。
3、什么是Cookie?。 cookie是Web服务器发送给浏览器的一块信息。浏览器会在本地文件中给每一个Web服务器存储cookie。以后浏览器在给特定的Web服务器发请求的时候,同时会发送所有为该服务器存储的cookie,可以用来在某个WEB站点会话间持久的保持数据,是一种用来跟踪浏览器用户身份的会话方式。
4、什么是session? session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。session都是用来跟踪浏览器用户身份的会话方式。
5、session的工作原理是什么? session技术中所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话的sessionid,服务器根据当前sessionid判断相应的用户数据标志,以确定用户是否登录或具有某种权限。
6、cookie和session的区别是什么? cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。无论客户端浏览器做怎么样的设置,session都应该能正常工作。客户端可以选择禁用cookie,但是,session仍然是能够工作的,因为客户端无法禁用服务端的session。 在存储的数据量方面session和cookies也是不一样的。session能够存储任意的Java对象,cookie只能存储String类型的对象。
7、什么是Servlet? Servlet是用来处理客户端请求并产生动态网页内容的Java类。Servlet主要是用来处理或者是存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息。
8、get请求和post请求有什么区别? GET请求会把名值对追加在请求的URL后面。因为URL对字符数目有限制,进而限制了用在客户端请求的参数值的数目。并且请求中的参数值是可见的,因此,敏感信息不能用这种方式传递。 POST请求通过把请求参数值放在请求体中来克服GET方法的限制,因此,可以发送的参数的数目是没有限制的。最后,通过POST请求传递的敏感信息对外部客户端是不可见的。
9、Jsp隐式对象是什么意思?有哪些隐式对象? JSP隐式对象是页面中的一些Java对象,JSP容器让这些Java对象可以为开发者所使用。开发者不用明确的声明就可以直接使用他们。JSP隐式对象也叫做预定义变量。 JSP有9个隐式对象:application、page、request、response、session、exception、out、config、pageContext
10、简述ServletContext接口的三个主要作用。 1)获取Web应用程序的初始化参数 2)实现多个Servlet对象共享数据 3)读取Web应用下的资源文件
11、简述请求转发与重定向的异同? 1、请求转发与重定向的异同点如下: 1)请求转发和重定向都可以实现访问一个资源时转向当前应用资源 2)请求转发是一次请求一次响应,而重定向为两次请求两次响应 3)一般情况下应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力 4)如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向
12、简述什么是会话技术?常用会话技术是什么? 会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程。在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和Session。
13、简述过滤器的作用。 Filter被称作过滤器或者拦截器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理前后实现一些特殊功能。
14、简述Filter在Web应用中拦截的过程 当浏览器访问服务器中的目标资源时,会被Filter拦截,在Filter中进行预处理操作,然后再将请求转发给目标资源。当服务器接收到这个请求后会对其进行响应,在服务器处理响应的过程中,也需要先将响应结果发送给拦截器,在拦截器中对响应结果进行处理后,才会发送给客户端。
15、请简述什么是JDBC。 JDBC的全称是Java数据库连接(Java Database Connectivity),它是一套用于执行SQL语句的Java API。应用程序可通过这套API连接到关系数据库,并使用SQL语句来完成对数据库中数据的查询、更新和删除等处理。
16、简述JDBC的实现步骤。 1)加载并注册数据库驱动 2)通过DriverManager获取数据库连接 3)通过Connection对象获取Statement对象 4)使用Statement执行SQL语句 5)操作ResultSet结果集 6)关闭连接,释放资源
17、请简述JSP的运行原理。 1)客户端发出请求,请求访问JSP文件。 2)JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序)。 3)如果转换成功,则JSP容器将生成的Java源文件编译成相应的字节码文件 .class。 4)由Servlet容器加载转换后的Servlet类(.class文件)。 5)执行jspService()方法来处理客户端的请求。 6)当请求处理完成后,响应对象由JSP容器接收,并将HTML格式的响应信息发送回客户端。*