JAVAEE

JAEE
一、Tomcat
1、端口问题
2、持久化异常:
(1)Exception loading sessions from persistent storage
(2)异常tomcat的session持久化机制引起的
(3)只需要删除 session.ser文件即可。
(4)关闭tomcat的持久化功能,修改conf下的server.xml文件
(5)
二、Servlet
1、使用流程
(1)获取参数request.getParameter
(2)返回响应 response.getWriter().println() 发送到浏览器
PrintWriter pw = response.getWriter();
2、获取中文的参数
(1)
告诉浏览器,等下发消息给服务器的时候,使用UTF-8编码
(2)在servlet进行解码和编码
byte[] bytes= name.getBytes(“ISO-8859-1”);根据ISO-8859-1解码
name = new String(bytes,“UTF-8”);用UTF-8编码
(3)简化的编码解码处理
request.setCharacterEncoding(“UTF-8”);
(4)返回中文响应
response.setContentType(“text/html; charset=UTF-8”);
3、客户端跳转
(1)response.sendRedirect(“fail.html”);
(2)浏览器地址发生了变化
4、request常见方法
(1)request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)" + 
(2)request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名" + 
(3)request.getQueryString(): 请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
(4)request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
(5)request.getRemoteHost(): 浏览器所处于的客户机的主机名
(6)request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
(7)request.getLocalAddr(): 服务器的IP地址
(8)request.getLocalName(): 服务器的主机名
(9)request.getMethod(): 得到客户机请求方式一般是GET或者POST
(10)request.getParameter(): 是常见的方法,用于获取单值的参数
(11)request.getParameterValues(): 用于获取具有多值的参数,比如注册时候提交的 “hobits”,可以是多选的
(12)request.getParameterMap(): 用于遍历所有的参数,并返回Map类型。
(13)request.getHeader() 获取浏览器传递过来的头信息。
(14)request.getHeaderNames() 获取浏览器所有的头信息名称,根据头信息名称就能遍历出所有的头信息
(15)setAttribute和getAttribute可以用来在进行服务端跳转的时候,在不同的Servlet之间进行数据共享
5、response用法
(1)设置响应内容
PrintWriter pw= response.getWriter();通过response.getWriter(); 获取一个PrintWriter 对象
(2)设置响应格式 response.setContentType(“text/html”);
(3)设置响应编码
I、response.setContentType(“text/html; charset=UTF-8”);
不仅发送到浏览器的内容会使用UTF-8编码,而且还通知浏览器使用UTF-8编码方式进行显示
II、response.setCharacterEncoding(“UTF-8”);
仅仅是发送的浏览器的内容是UTF-8编码的,至于浏览器是用哪种编码方式显示不管
(4)客户端跳转
302 表示临时跳转、response.sendRedirect(“fail.html”);
301 表示永久性跳转,response.setStatus(301);response.setHeader(“Location”, “fail.html”);
(5)设置不使用缓存
response.setDateHeader(“Expires”,0 );
response.setHeader(“Cache-Control”,“no-cache”);
response.setHeader(“pragma”,“no-cache”);
(6)上传文件
enctype=“multipart/form-data” 表示提交的数据是二进制文件

(7)需要用到两个第三方的jar包,commons-io-1.4.jar和commons-fileupload-1.2.2.jar 6、JSON (1)JSON.stringify函数的作用是将一个javascript对象,转换为JSON格式的字符串 (2)把字符串转换为JSON对象JSONObject json=JSONObject.fromObject(data) (3)把JSON对象转换为Hero对象Hero hero=(Hero)JSONObject.toBean(json,Hero.class);  (4)获取多个对象 准备一个集合 向集合中放入 10个Hero对象 通过JSONSerializer.toJSON(heros)把集合转换为JSON字符串 返回给浏览器 三、HTTP协议(超文本传输协议 Hyper Text Transfer Protocol ) 1、请求协议 (1)请求消息 由 请求行,请求头部,空行和请求数据4部分组成 2、响应协议 (1)响应信息由状态行,消息报头,响应正文组成 3、响应代码 (1)200---响应成功 (2)301---客户端跳转,永久性的跳转 (3)302---客户端跳转,临时性的跳转 (4)301---资源未被修改 (5)404---访问的页面不存在 (6)500---服务端的错误 四、JSP 1、<%@page指令 (1)<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*"%> (2)通知浏览器以UTF-8进行中文解码 2、页面元素 (1)静态内容html/css/javascript (2)表达式<%= %> 输出一段html (3)<% %>任何java代码 (4)<%! %>以声明字段或者方法,但是不建议这么做 (5) 在jsp页面中包含另一个页面。 (6)注释 <%-- -- %> 3、跳转 (1)客户端跳转 response.sendRedirect("hello.jsp"); (2)服务端跳转 request.getRequestDispatcher("hello.jsp").forward(request, response); 4、作用域 (1)JSP有4个作用域 分别是 pageContext 当前页面 /requestContext 一次请求   sessionContext 当前会话 /applicationContext 全局,所有用户共享 (2)通过pageContext.setAttribute(key,value)的数据,只能在当前页面访问,在其他页面就不能访问了。 (3)requestContext 表示一次请求。随着本次请求结束,其中的数据也就被回收。 request.setAttribute("name","g");request.getAttribute("name") (4)页面间客户端跳转的情况下,是无法通过request传递数据的。 5、隐式对象 (1)JSP一共有9个隐式对象,分别是 request,response,out ,pageContext, session,application ,page,config,exception

五、Cookie
1、定义
(1)Cookie是一种浏览器和服务器交互数据的方式。
(2)Cookie是由服务器端创建,但是不会保存在服务器。创建好之后,发送给浏览器。浏览器保存在用户本地。下一次访问网站的时候,就会把该Cookie发送给服务器。
2、创建cookie
(1)Cookie c = new Cookie(“name”, “G”);//创建了一个cookie,名字是"name" 值是"G"
(2)c.setMaxAge(24 * 60 * 60);//表示这个cookie可以保留一天
(3)c.setPath("");//Path表示服务器的主机名,只有浏览器通过这个主机名访问服务器的时候,才会提交这个cookie到服务端
(4)response.addCookie©;//通过response把这个cookie保存在浏览器端
3、接收cookie
(1)Cookie[] cookies = request.getCookies();//表示获取所有浏览器传递过来的cookie
六、Session
1、定义
Session会话指的是从用户打开浏览器访问一个网站开始,无论在这个网站中访问了多少页面,点击了多少链接,都属于同一个会话。 直到该用户关闭浏览器为止,都属于同一个会话。
2、创建session
session.setAttribute(“name”, “teemo”);
session对象保存数据的方式,有点像Map的键值对(key-value)
3、获取session
session.getAttribute(“name”);通过session,根据"name" 取出对应的名称
4、无cookie,session工作原理
response.encodeURL(“getSession.jsp”)
通过这个方式,提交jsessionid到服务器。 服务器根据这个jsessionid匹配到对应的session
七、JSTL(JSP Standard Tag Library 标准标签库 )
1、jar包
jstl.jar 和standard.jar
2、set out remove
(1)<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
(2)<c:choose> <c:forEach>
八、EL表达式语言
1、EL表达式可以从pageContext,request,session,application四个作用域中取到值
2、EL会按照从高到低的优先级顺序获取 pageContext>request>session>application
九、JavaBean
1、JavaBean的标准
(1) 提供无参public的构造方法(默认提供)
(2) 每个属性,都有public的getter和setter
(3) 如果属性是boolean,那么就对应is和setter方法
十、MVC
1、 M 代表 模型(Model)—数据,就是dao,bean
V 代表 视图(View)— 网页, JSP,用来展示模型中的数据 
C 代表 控制器(controller) ----Servlet
十一、Filter
1、chain.doFilter(request, response);
过滤器放行,表示继续运行下一个过滤器,或者最终访问的某个servlet,jsp,html等等
十二、Listener
1、定义:Listener 的作用是用于监听 web应用的创建和销毁,以及在其上attribute发生的变化。

posted @ 2020-02-21 14:40  李泽坤  阅读(132)  评论(0编辑  收藏  举报