美文网首页
java web 核心(上)

java web 核心(上)

作者: 极速魔法 | 来源:发表于2020-08-09 18:22 被阅读0次

http协议

应用层协议

http请求格式

请求行 【请求类型(post,get) 请求路径 协议版本】
请求头 key: value

空白行
请求体

http响应格式

响应行 【协议版本 状态码 状态信息(200 ok)】
响应头 key: value

空白行
响应体

Servlet

运行在服务器上的类,完成请求的响应处理

  • 实现 Servlet接口,配置web.xml
  • 继承GenericServlet,重写service方法
  • 继承HttpServlet,重写至少一个方法

Servlet生命周期

  • 实例化
  • 初始化 init()
  • 服务 service()
  • 销毁destroy()
  • 不可用,销毁实例标记为垃圾收集
    实例化和初始化执行一次,服务被执行多次,destroy调用一次

GET POST

  • get请求数据跟在url后面,提交少量数据,不安全
  • post 安全,提交大量数据

ServletResponse

response.setContentType(“text/html;charset=utf-8”)
HttpServlet类

PrinterWriter writer=response.getWriter() //

post请求接收乱码

request.setCharacterEncoding(‘utf-8’)

ServletContext

多个Servlet信息共享

ServletContext context=getServletConfig().getServletContext();
// 获取 /工程名
context.getContextPath

重定向 302

response.sendRedirect(String location);

  • 重定向URL地址改变
  • 重定向过程中会将前面Request对象销毁,然后创建一个新的Request对象。

转发

一个组件将未完成的请求转交给其他组件

RequestDispatcher requestDispatcher = request.getDispatcher("/targetServlet") //传入转发路径

requestDispatcher.forwared(request,response) // 实现转发
  • 转发URL地址不改变
  • 共享Request ,Response对象
  • 转发地址不能是其他项目

Cookie

cookie在服务端创建,服务端通过响应发送给浏览器 Set-Cookie:xxx,浏览器端保存.后面浏览器带着Cookie请求服务端。

Cookie cookie = new Cookie("name","value");
response.addCookie(cookie);

Cookie[] cookies = request.getCookies();
cookie.getName()
cookie.getValue()

cookie默认保存在内存中

cookie.getMaxAge() // 获取cookie有效期
cookie.setMaxAge(3600) // 有效期3600s

cookie路径

cookie路径匹配,才会带入请求头中

cookie.setPath()

cookie缺点

  • 保存4kb,保存在浏览器不安全
  • 只能保存字符串类型

session

// session不存在则创建
HttpSession session=request.getSession();
// 判断是否是新创建的
session.isNew()
session.setAttribute(key,value);
session.removeAttribute(key)

默认失效时间30min
特点

  • 数据安全
  • 保存数据类型丰富
  • 保存更多的数据

JSP(java server pages)

指令

<% @=指令  属性=属性值%>
<% @page  contentType="text/html;charset=UTF-8" language="java"%>

<%@include  file=""%> //静态包含

动作

<jsp:include page="" />
//转发
<jsp:forward page="" ></jsp:forward>

内置对象

String name=request.getServerName();
// 存储值,在同一个请求中
request.setAttribute("name","value");
String request.getParameter("name") //返回值是String
Objcet request.getAttribute("name"); //返回值是Object类型

responsen内置对象

// 每隔1秒刷新
response.addHeader("refresh","1")

session内置对象

一次会话包含多次请求,保存到服务器

application 内置对象

web全局变量,存储范围 application > session > request>pageContext(当前页面有效,转发无效)

exception内置对象

// 普通页面声明 error处理或者在配置文件中
<% @page errorPage="error.jsp" %>

web.xml

<error-page> 
    <exception-type>java.lang.Throwable</exception-type>            <location>/error.jsp</location> 
</error-page>
error.jsp
<% @page contentType="text/html;charset=UTF-8" language="java" %>
<% @page iserrorPage="true" %>
...
exception.getMessage();

javaBean

session.removeAttribute(“”) // 删除对象

MVC

model,view,controller 分离,提高可维护性

in 在statement中如何传值

相关文章

网友评论

      本文标题:java web 核心(上)

      本文链接:https://www.haomeiwen.com/subject/vrfrdktx.html