Java基础03&web基础

文章目录

一、IO流

             1.输入流

               2.输出流

1.1.java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承,请说出 他们分别是哪些类?

1.2什么是 java 序列化,如何实现 java 序列化?

2.JavaWeb

        jsp

        servlet

        Spring

        SpringMvc

        Mybatis

2.1、HTTP 请求的 GET 与 POST 方式的区别

2.2、解释一下什么是 servlet

2.3说一说 Servlet 的生命周期

2.4、Servlet 的基本架构

2.5、什么情况下调用 doGet()和 doPost()

2.6、Request 对象的主要方法

2.7、forward 和 redirect 的区别

2.8、jsp 有哪些内置对象?作用分别是什么 


一、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]):返回和请求相关 Session
getServerName():获取服务器的名字

2.7、forward 和 redirect 的区别

转发与重定向
(1)从地址栏显示来说
forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器.浏
览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址;
redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的 URL.
(2)从数据共享来说
forward:转发页面和转发到的页面可以共享 request 里面的数据.
redirect:不能共享数据.
(3)从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
(4)从效率来说
forward:高.
redirect:低.

2.8、jsp 有哪些内置对象?作用分别是什么 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值