文章目录
1.1.java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出 他们分别是哪些类?
1.2什么是 java 序列化,如何实现 java 序列化?
一、IO流
1.输入流
字节输入流: InputStream
字符输入流:
2.输出流
字节输出流:OutputStream
字符输出流:
字节流是操作二进制文件的
字符流是操作字符的
如何读写文件,例如从c盘读到d盘如下:
public static void main(String[] args) throws Exception{
FileInputStream in =new FileInputStream("e:/333.jpg");
FileOutputStream out =new FileOutputStream("d:/333.jpg");
byte[] buf =new byte[1024];
while (true) {
int len =in.read(buf);
if (len == -1)
break;
out.write(buf, 0, len);
in.close();
out.close();
}
}
1.1.java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出 他们分别是哪些类?
字节流,字符流。字节流继承于 InputStream OutputStream
1.2什么是 java 序列化,如何实现 java 序列化?
我们有时候将一个 java 对象变成字节流的形式传出去或者从一个字节流中恢复成一个 java 对象,我们可以调用 OutputStream 的 writeObject 方法来做,如果要让 java 帮我们做,要被传输的对象必须实现 serializable 接口,这样, javac 编译时就会进行特殊处理,编译的类才可以被 writeObject 方法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable 接口,该接口是一个 mini 接口,其中没有需要实现的方法, implements Serializable 只是为了标注该对象是可被序列化的。
2.JavaWeb
jsp
九大内置对象,
标签库:c标签
指令:
page: 设置编码集
taglib:导入标签库
include:包含界面
动态包含: <jsp:include
静态包含: <%@ include
servlet
是什么?
允许在服务端的程序
怎么用?
extends HttpServlet
配置映射1,web.xml 2.webservlet("/demo")
实现方法:doget/dopost
生命周期?
初始化 :int
服务: service
销毁:ddestroy
doget/dopost
对应处理get/post请求
request的常用方法
setcharsetencoding()
getparameter()
getsession
页面跳转:
1,重定向:response.senredirect();
2,转 发:request.getrequestdispather.forword
区别:
转发:能够传递数据,并且地址栏不会发生变化
重定向:不能传递数据,地址栏会变化
四大作用域
pagecontext ,requset, session, application
session与cookie的区别
session: 服务端
cookie:客户端
相同:都可以保存数据
不同: 服务端:安全性高,占用大量的服务器资源;
客户端:安全性低,占用少量内存;cookie存储数量是有限的;
Spring
ioc:
控制反转、依赖注入
由原来程序员手段创建对象的权利,转交给Spring容器;
优点:代码的维护性提高了
aop
面向切面
代理=目标+通知
将核心业务与非核心分离,使程序员将精力都放在核心业务中;
定义切面:* *..*.*service.*del(..)
定义通知:@around
注入的方式:
set注入
构造注入:
自动装配:byname,bytype
@autowised @resource
SpringMvc
Mybatis
2.1、HTTP 请求的 GET 与 POST 方式的区别
1. get 是从服务器上获取数据,post 是向服务器传送数据。2. 请求的时候参数的位置有区别:get 的参数是拼接在 url 后面,用户在浏览器地址栏可以看 到;post 是放在 http 包的包体中3. 能提交的数据有区别,get 方式能提交的数据只能是文本,且大小不超过 1024 个字节,而 post 不仅可以提交文本还有二进制文件。 所以说想上传文件的话,那我们就需要使用 post请求方式4. get 安全性非常低,post 安全性较高;比如说用户注册,不能把用户提交的注册信息用 get 的方式,会把用户的注册信息都显示在 Url 上,是不安全的。
2.2、解释一下什么是 servlet
Servlet 是服务器端的程序,动态生成 html 页面发送到客户端,但是这样程序里会有很多 out.println(),java 与 html 语言混在一起很 乱,所以后来 sun 公司推出了 JSP.其实 JSP 就是 Servlet,每次运行的时候 JSP 都首先被编译成 servlet 文件,然后再被编译成.class文件运行。有了 jsp,在 MVC 项目中 servlet 不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制 jsp 与 javabean 之间的流 转
2.3说一说 Servlet 的生命周期
Servlet 生命周期包括三部分:初始化:Web 容器加载 servlet,调用 init()方法处理请求:当请求到达时,运行其 service()方法。service()自动派遣运行与请求相对应的 doXXX(doGet 或者 doPost)方法。销毁:服务结束,web 容器会调用 servlet 的 distroy()方法销毁 servlet。
2.4、Servlet 的基本架构
public class ServletName extends HttpServlet {public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ }public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }}
2.5、什么情况下调用 doGet()和 doPost()
Jsp 页面中的 FORM 标签里的 method 属性为 get 时调用 doGet(),为 post 时调用 doPost()。
2.6、Request 对象的主要方法
setAttribute(String name,Object):设置名字为 name 的 request 的参数值getAttribute(String name):返回由 name 指定的属性值getAttributeNames():返回 request 对象所有属性的名字集合,结果是一个枚举的实例getCookies():返回客户端的所有 Cookie 对象,结果是一个 Cookie 数组getCharacterEncoding():返回请求中的字符编码方式getContentLength():返回请求的 Body 的长度 getHeader(String name):获得 HTTP 协议定义的文件头信息getHeaders(String name):返回指定名字的 request Header 的所有值,结果是一个枚举的实例getHeaderNames():返回所以 request Header 的名字,结果是一个枚举的实例getInputStream():返回请求的输入流,用于获得请求中的数据getMethod():获得客户端向服务器端传送数据的方法getParameter(String name):获得客户端传送给服务器端的有 name 指定的参数值getParametervalues(String name):获得有 name 指定的参数的所有值getRequestURI():获取发出请求字符串的客户端地址getRemoteAddr():获取客户端的 IP 地址getSession([Boolean create]):返回和请求相关 SessiongetServerName():获取服务器的名字
2.7、forward 和 redirect 的区别
转发与重定向(1)从地址栏显示来说forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址;redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的 URL.(2)从数据共享来说forward:转发页面和转发到的页面可以共享 request 里面的数据.redirect:不能共享数据.(3)从运用地方来说forward:一般用于用户登陆的时候,根据角色转发到相应的模块.redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.(4)从效率来说forward:高.redirect:低.
2.8、jsp 有哪些内置对象?作用分别是什么
![](https://img-blog.csdnimg.cn/6cc9109ba8ab4c6f9af8bc931f700bb9.png)