概述:学完了javaee在这做个简单的小总结
文章目录
- 1.Cookie和Session
- 2. 9种隐式对象,以及他们的用途
- 3. 3种JSP的指令
- 4. 2种JSP的动作
- 5.doGet()和 doPost的区别,分别在什么情况下调用
- 6.servlet的init方法和service方法的区别
- 7.servlet的生命周期
- 8.页面间对象传递的方法
- 9.Request常见方法
- 10.J2EE是技术,还是平台,还是框架
- 11.Servlet与JSP的关系
- 12.编写JavaBean的注意事项
- 13.MVC的各个部分都有哪些技术来实现,分别如何实现
- 14.JSP中两种include的区别
- 15.JSP中两种跳转的方式是什么,区别是什么
- 16.如何处理中文问题
- 17.简述你对简单Servlet、过滤器、监听器的理解
1.Cookie和Session
Cookie
cookie 在平时生活中的运用:有的网站,登陆的时候,会出现一个选项,问你是否要一周内或者一个月内保持登陆状态。如果你选了,那么一周之内,都不需要再输入账号密码。这个功能,就是靠cookie来实现的
什么是cookie:Cookie是一种浏览器和服务器交互数据的方式。
Cookie是由服务器端创建,但是不会保存在服务器。
创建好之后,发送给浏览器。浏览器保存在用户本地。
下一次访问网站的时候,就会把该Cookie发送给服务器。
Session
考虑这个场景:
李佳汜到健身房去练胸肌,首先领了钥匙,然后进了更衣间,把衣服,裤子,手机,钱包都放在盒子里面。
毛竞也到健身房,去练翘臀。首先领了钥匙,然后 进了更衣间,把衣服,裤子,手机,《Java 21天从入门到精通》也放在了一个盒子里,但是这个盒子是和李佳汜的是不同的。
健身房,就相当于服务器,盒子,就是会话Session。
切换到我们常见的购物网站的场景
李佳汜登陆天猫之后,在购物车里看到的物品是蜡烛和皮鞭
毛竞登陆天猫之后,在购物车里看到的物品是手铐和《Java 21天从入门到精通》
Session对应的中文翻译是会话。
会话指的是从用户打开浏览器访问一个网站开始,无论在这个网站中访问了多少页面,点击了多少链接,都属于同一个会话。 直到该用户关闭浏览器为止,都属于同一个会话。
Session和Cookie的关系
回到健身房的储物柜这一段:
李佳汜和毛竞都有自己的盒子,那么他们怎么知道哪个盒子是自己的呢?
通过钥匙就能找到自己的盒子了。
盒子对应服务器上的Session。
钥匙对应浏览器上的Cookie。
2. 9种隐式对象,以及他们的用途
JSP一共有9个隐式对象,分别像request,response,out分别代表请求,响应和输出
Request:生命周期同请求一样,请求结束其值则清空掉了。
pageContext, session,application
pageContext 代表当前页面作用域,生命周期小于请求。当页面编译完成后,其值则清空掉了
session 代表当会话作用域,只要浏览器不关闭,会话存在。
application 代表当全局作用域,生命周期同容器一样,tomcat不关闭,对象存在;
config
config可以获取一些在web.xml中初始化的参数,详见config对象
page
表示当前对象,jsp会被编译成一个Servlet类,运行的时候是一个Servlet对象,page即代表this
exception
表示异常对象,可以专门写一个catch异常的jsp。<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8” errorPage=“catch.jsp”%>这就代表出现异常往catch.jsp跳转
3. 3种JSP的指令
<%@page
JSP的基本设置,比如编码方式,import其他类,是否开启EL表达式
<%@include
包含其他的文件
<%@taglib
使用标签库
4. 2种JSP的动作
<jsp:foward
服务端跳转
<jsp:include
包含其他文件
5.doGet()和 doPost的区别,分别在什么情况下调用
doGet和doPost都是在service()方法后调用的,分别来处理method="get"和method="post"的请求
6.servlet的init方法和service方法的区别
在Servlet的生命周期中,先调用init进行初始化,而且只调用一次。
接着再调用service,有多少次请求,就调用多少次service
7.servlet的生命周期
8.页面间对象传递的方法
假设是a.jsp传递数据到b.jsp,那么页面间对象传递的方式有如下几种
- 在a.jsp中request.setAttribute,然后服务端跳转到b.jsp
- 在a.jsp中session.setAttribute,然后跳转到b.jsp, 无所谓客户端还是服务端跳转
- 在a.jsp中application.setAttribute, 然后跳转到b.jsp,无所谓客户端还是服务端跳转
9.Request常见方法
request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)" +
request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名" +
request.getQueryString(): 请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
request.getRemoteHost(): 浏览器所处于的客户机的主机名
request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
request.getLocalAddr(): 服务器的IP地址
request.getLocalName(): 服务器的主机名
request.getMethod(): 得到客户机请求方式一般是GET或者POST
request.getParameter(): 是常见的方法,用于获取单值的参数
request.getParameterValues(): 用于获取具有多值的参数,比如注册时候提交的 “hobits”,可以是多选的。
request.getParameterMap(): 用于遍历所有的参数,并返回Map类型。
request.getHeader() 获取浏览器传递过来的头信息。
比如getHeader(“user-agent”) 可以获取浏览器的基本资料,这样就能判断是firefox、IE、chrome、或者是safari浏览器
request.getHeaderNames() 获取浏览器所有的头信息名称,根据头信息名称就能遍历出所有的头信息
10.J2EE是技术,还是平台,还是框架
是平台,上面运行各种各样的技术(servlet,jsp,filter,listner)和框架(struts,hibernate,spring)
11.Servlet与JSP的关系
jsp本质上就是servlet
12.编写JavaBean的注意事项
JavaBean就是进行封装的实体类
无参构造方法
属性都用private修饰,并且都有public的getter和setter
13.MVC的各个部分都有哪些技术来实现,分别如何实现
M 模型层代表数据,使用bean,dao等等
V 视图层代表展现,使用html,jsp,css
C 控制层代表控制,使用servlet
14.JSP中两种include的区别
通过之前的学习知道,JSP最后会被转译成Servlet
如果是指令include
<%@include file=“footer.jsp” %>
footer.jsp的内容会被插入到 hello.jsp 转译 成的hello_jsp.java中,最后只会生成一个hello_jsp.java文件
如果是动作include
<jsp:include page=“footer.jsp” />
footer.jsp的内容不会被插入到 hello.jsp 转译 成的hello_jsp.java中,还会有一个footer_jsp.java独立存在。 hello_jsp.java 会在服务端访问footer_jsp.java,然后把返回的结果,嵌入到响应中。
15.JSP中两种跳转的方式是什么,区别是什么
客户端跳response.sendRedirect(“hello.jsp”);
服务端跳转request.getRequestDispatcher(“hello.jsp”).forward(request, response);<jsp:forward page=“hello.jsp”/>
16.如何处理中文问题
中文问题分几个部分
- 提交数据的时候使用UTF-8 编码
- 接受数据的时候使用UTF-8 解码
- 显示数据的时候使用UTF-8 编码
17.简述你对简单Servlet、过滤器、监听器的理解
Servlet 作用是处理获取参数,处理业务,页面跳转
过滤器的作用是拦截请求,一般会用做编码处理,登陆权限验证
监听器的作用是监听Request,Session,Context 等等的生命周期,以及其中数据的变化