Servlet

ServleContext

  • 共享数据
 ServletContext servletContext = this.getServletContext();
 servletContext.setAttribute("username", "zhangSan");
  • 读取数据
 ServletContext servletContext = this.getServletContext();
 String username = (String) servletContext.getAttribute("username");
 System.out.println(username);
  • 请求转发
 servletContext.getRequestDispatcher("/Servlet2").forward(request, response);
  • 加载配置文件
 InputStream is = servletContext.getResourceAsStream("druid.properties");
 Properties properties = new Properties();
 properties.load(is);
 String username = properties.getProperty("password");
 response.getWriter().write(username);

HttpServletResponse

  • 向浏览器输出消息
response.setContentType("text/html;charset=utf-8");
//写到页面上
response.getWriter().write("嘤嘤嘤");
  • 下载文件
/*
1,要获取下载文件的路径
2,下载的文件名是啥
3,设置想办法让浏览器能够支持下载我们需要的东西
4,获取下载文件的输入流
5,创建缓冲区
6,获取OutputStream对象
7,将FileOutputStream流写入到buffer缓冲区
8,使用OutputStream将缓冲区的数据输出到客户端

*/
String realPath = this.getServletContext().getRealPath("/1.png");
String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);
response.setHeader("Content-disposition", "attachment;filename=" + fileName);
FileInputStream in = new FileInputStream(realPath);
int len = 0;
byte[] buffer = new byte[1024];
ServletOutputStream out = response.getOutputStream();
while ((in.read(buffer) > 0)) {
     out.write(buffer, 0, len);
}
in.close();
out.close();
  • 验证码
  • 重定向
response.sendRedirect("/IDEA_war_exploded/demo2");

HttpServletRequest

  • 获取前端传递的参数
String username = request.getParameter("username");
String[] hobbys = request.getParameterValues("hobbys");//多选框
  • 转发
request.getRequestDispatcher("/demo2").forward(request,response);
  • 路径
String contextPath = request.getContextPath();
System.out.println(contextPath);

Cookie,Session

Cookie

  • 从请求中拿到Cookie
  • 服务器响应给客户端Cookie
Cookie[] cookies = request.getCookies();
cookie.getName();
ccokie.getValue();
new Cookie("lastLoginTime", System.currentTimeMillis() + "");
cookie.setMaxAge(24 * 60 * 60);//有效期
response.addCookie(cookie);//响应给客户端一个cookie

Session(重点)

//得到Session
HttpSession session = request.getSession();
//给Session中存东西,Person类
session.setAttribute("person", new Person("song",123));
//获取ID
String id = session.getId();

//另一个Servlet中
HttpSession session = request.getSession();
Person name = ( Person) session.getAttribute("person");//取东西
response.getWriter().write(String.valueOf(name));
session.removeAttribute("person");
session.invalidate();//移除Session

JSP

基础语法

<%--jsp表达式  <%= 变量或者表达式%>  --%>

<%= new java.util.Date()%>

<%--jsp脚本片段--%>

<%
  String name = "YYY";
  out.write(name);
  out.println("<h1>Name=" + name + "<h1>");
%>

九大内置对象

  • PageContext 存东西
  • Request Response
  • Session
  • Application 【ServletContext】 存东西
  • config 【ServletConfig】
  • out
  • page 不用了解
  • exception

JSP标签,JSTL标签,EL表达式

EL表达式:${ }

  • 获取数据
  • 执行运算
  • 获取web开发的常用对象

JSP标签

<jsp:forward page="index.jsp">
<jsp:param name="name" value="zhangsan"/>
<jsp:param name="age" value="12"/>
</jsp:forward>

JSTL表达式

  • 弥补HTML的不足,自定义标签和java代码一样

核心标签

JSTL标签库使用步骤

  • 引入对应的taglib
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>