JAVAEE后端总结

概述:学完了javaee在这做个简单的小总结

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的生命周期

依次是:构造函数→init方法→service方法→destory方法→GC回收

8.页面间对象传递的方法

假设是a.jsp传递数据到b.jsp,那么页面间对象传递的方式有如下几种

  1. 在a.jsp中request.setAttribute,然后服务端跳转到b.jsp
  2. 在a.jsp中session.setAttribute,然后跳转到b.jsp, 无所谓客户端还是服务端跳转
  3. 在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.如何处理中文问题

中文问题分几个部分

  1. 提交数据的时候使用UTF-8 编码
  2. 接受数据的时候使用UTF-8 解码
  3. 显示数据的时候使用UTF-8 编码

17.简述你对简单Servlet、过滤器、监听器的理解

Servlet 作用是处理获取参数,处理业务,页面跳转
过滤器的作用是拦截请求,一般会用做编码处理,登陆权限验证
监听器的作用是监听Request,Session,Context 等等的生命周期,以及其中数据的变化

猜你喜欢

转载自blog.csdn.net/weixin_45593271/article/details/105311897
今日推荐