Servlet知识点
Servlet-第一节
--------------------------------------------------------------------------------------------------------------------------------------------------
1、Servlet的映射路径有哪些?
精确映射:/abc 客户端只能以/abc访问servlet
扩展映射:*.do 客户端以.do结尾的请求都能访问servlet
路径映射:/abc/* 客户端以/abc/开始的请求都能访问servlet
2、描述Servlet的生命周期,熟练掌握
1、启动tomcat,读取conf/server.xml,确定启动端口和web应用程序存放目录
2、读取并解析每个web应用程序的web.xml文件,以确定web组件的注册信息,一旦有一个web应用程序的web.xml文件书写有误,会导致解析失败,抛出异常。
3、加载并实例化servlet。如果在注册servlet时,加入了<load-on-startup>标签,并该标签的值为正数,表示容器启动就实例化。否则,第一次访问servlet实例化。
4、调用init()完成初始化。
5、请求到达时,调用service()完成业务操作
6、销毁阶段,调用destroy()完成资源清理。
3、ServletConfig和ServletContext的作用。
ServletConfig是配置接口,利用该接口对象的getInitParameter()可以得到该servlet的初始化配置信息。
ServletContext是全局对象。主要作用有三个:1、读取<context-param>全局参数
2、可以将虚拟路径转化为物理路径
3、可以绑定对象在全局共享
4、如何定义Servlet的初始化参数?Servlet的初始化参数如何获取?
<servlet>
<init-param>
<param-name></param-name>
<param-value></param-value>
</init-param>
</servlet>
ServletConfig对象.getInitParameter();
5、如何定义Servlet的全局参数?Servlet的全局参数如何获取?
<web-app>
<context-param>
<param-name></param-name>
<param-value></param-value>
</context-param>
</web-app>
ServletContext对象.getInitParamter()
6、如何得到web应用中文件的真实路径。
ServletContext对象.getRealPath("/img/ss.jpg");
7、如何绑定和获取全局共享对象?
ServletContext对象.setAttribute("键",共享对象);
ServletContext对象.getAttribute("键");得到共享对象
8、状态码有几种?各代表什么含义。
1开始:请求在进行中
2开始:请求成功
3开始:表示资源移走,请求新的地址
4开始:客户端引发的异常
5开始:服务器引发的异常
9、响应头如何设置?
response.setHeader("键","值");
10、响应信息消息体的形式有哪些?
1、向客户端发送文本数据。response.getWriter()
2、向客户端发送二进制数据。response.getOutputStream();
11、创建学生表t_student,字段:学号、姓名、电话、生日
创建查询全部的Servlet,以表格方式显示全部数据。
在每一行中,添加删除超链接,点击后,可以按学号删除学生。
在每一行中,添加修改超链接,点击后,显示学生信息,并可以修改该学生的电话。
Servlet-第二节
--------------------------------------------------------------------------------------------------------------------------------------------------
1、Http全称叫什么?有什么特点?端口号是多少?
http全称叫超文本传输协议。特点:遵循请求/响应模型。无状态的协议。端口:80
2、HTTP处理流程是怎么样的?
1、客户端和服务器建立连接
2、客户端发出请求
3、服务器产生响应
4、关闭连接
3、HTTP请求信息和响应信息包括哪些内容?
请求信息:请求行、请求头,空行,消息体
响应信息:状态行、响应头、空行、消息体
4、Web服务器的缺陷是什么?
传统的Web服务器只能产生静态的html页面,极大影响响应信息的灵活性。
5、什么是辅助应用?Java的解决方案是什么?
辅助应用是为了解决Web服务器缺陷而产生的。辅助应用允许服务器在接收到请求信息以后,进行相关的业务操作,并动态产生响应信息。java的解决方案是Web容器+Servlet。
6、Web容器对servlet支持包括哪些?
1、通信支持 2、Servlet生命周期管理 3、多线程支持 4、jsp支持 5、处理安全性
7、Java Web应用程序目录结构是怎么样的?
在根目录或根目录的子目录,存放能被客户端直接访问的资源,比如:图片、css文件、html、js文件。在根目录下需要提供WEB-INF目录,该目录存放比较隐秘的信息。该目录下的资源不能被客户端直接访问。在WEB-INF目录中,有classes目录存放开发者编写的类生成class文件;有lib目录存放第三方的jar包。web.xml文件用于web组件的注册。
8、WEB-INF的作用是什么?
9、Tomcat结构是怎样的?
bin:存放可执行文件
conf:存放配置文件
lib:存放tomcat运行时需要使用的jar包
logs:存放日志文件
temp:存放临时文件
webapps:存放web应用程序
work:对jsp做支持
10、servlet的类架构是怎样的?
按照Servlet规范,Servlet为业务接口,提供service方法由开发书写业务操作。ServletConfig为配置接口,提供Servlet的初始信息。由于两个接口方法较多,所以提供了适配器类GenericServlet。对两个接口的大部分方法做了简单的实现。但没有实现service()。该方法由它的子类根据自身协议的特点做实现。HttpServlet根据Http协议重写了该方法,根据不同的请求方式,调用doXX()。
11、servlet如何注册?要求熟练掌握
<servlet>
<servlet-name>ddd</servlet-name>
<servlet-class>类全路径</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ddd</servlet-name>
<url-pattern>/aaa</url-pattern>
</servlet-mapping>
12、如何解决输出中文乱码问题,如何解决表单数据的乱码问题?
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
13、编码题:
表结构:id userName sex age
完成一个servlet,访问该servlet并查询数据库。输出一个表中所有的记录内容。书写一个网页,建立表单,当用户在表单中输入姓名,可以按姓名模糊查询数据库的内容
Servlet-第三节
--------------------------------------------------------------------------------------------------------------------------------------------------
1.重定向的工作流程。
客户端向服务器发出请求,Servlet调用response.sendRedirect()。重定向到指定资源。产生响应时,会产生302状态码,同时产生location响应头。在location响应头中指明资源的路径。客户端在接收到响应信息后,发现是302状态码,会读取location响应头,再向服务器发出第二次请求
2.http请求协议中包含哪几部份。
请求行,请求头,空行,消息体
3.如何获得请求头
request.getHeader("");
4.解释get请求和post请求的区别,哪些请求是get,哪种是post.
get与post的区别:
1、流格式的区别 get请求信息分为请求行,请求头,空行。 POST请求分为请求行,请求头,空行,消息体。
2、用途的区别 get主要用于资源的查找。POST方式主要用于数据的传输。
3、传输性能的区别 get方式只能传输文本数据,不能传输大数据,表单数据会显示在浏览器地址栏,不安全。
post方式可以传输文本和二进制数据。可以传输大数据,表单数据不会显示在浏览器地址栏,相对安全。
5.request对象如何获取表单数据.
getParameter(),返回字符串类型,根据键得到值。如果有多个同名键值对,只能返回第一个值。
getParameterValues,返回字符串数组,根据键,得到该键对应的所有值。
6、在商品项目中,完成批量删除。
在每一行中添加复选框,向服务器传入需要删除商品ID,在服务器创建servlet完成批量删除后,请求转发到显示全部的servlet。