第三章 深入servlet技术
1.HTTP
请求头:HTTP版本、浏览器版本、浏览器支持格式、cookie
POST:传输的数据在内部,长度不限制
GET:在URL传输参数,不能超过256个字符
2.servlet
requset、response、service() ( doget()、dopost() )
webapps
3.配置servlet
// 配置servlet的类文件
<servlet>
<servlet-name />
<servlet-class />
<init-param>
<param-name />
<param-value />
<init-param>
<load-on-startup />
</servlet>
// 配置servlet的访问方式
<servlet-mapping>
<servlet-name />
<url-pattern />
</servlet-mapping>
4.上传文件
客户端
<form enctype="multipart/form-data" method="post" />
文件域:<input type="file" />
服务器端
使用apache commons upload
*上传文件时数据以二进制形式提交,而不是ASCII,因此不能用request.getParameter(),应该使用Commons-Upload解析二进制数据
5.Ajax
核心是XMLHttpRequest
6.servlet生命周期
服务器启动时初始化一个servlet对象,然后调用service()方法,服务器关闭对象销毁
7.servlet之间的跳转
转发
request.getRequestDispatcher("/../..").forward(request,response);对客户端透明
forward之前尽量不要使用out.println()语句,会抛异常
重定向
状态码:1xx信息状态码,表示请求被接受,正在被处理;
2xx正确状态码,
3xx重定向状态码,301域名不存在,302地址换了
4xx请求错误,401没权限访问,404资源不存在,405访问方式错误
5xx服务器错误
response.sendRedirect();
8.自动刷新refresh
response.setHeader("Refresh","1000;URL=http://localhost:8080/1.jsp");
1000毫秒后跳转到URL
9.servlet与线程安全
不要定义全局变量,使用局部变量,避免脏读等问题
第四章 深入JSP技术
1.JSP是一种servlet
但是与HttpServlet不一样,HttpServlet先把源代码编译为class文件,再部署到服务器,JSP是先部署到服务器,再编译为class
2.JSP两部分:模板数据,元素
模板数据就是HTNL代码,元素就是java代码<% java代码 %>
3.JSP输出
<%= %>输出类型为int double boolean String Object等,输出某个类对象时调用对象的toString方法
4.JSP指令
<%@ page language=" " contentType="text/html; charset=utf-8" %>
<%@ include file="1.jsp"%>
<%@ taglib uri=" " prefix=" c" %> (标签)
<c:foreach var=" " items=" " />
5.JSP行为
<jsp:include /> (动态包含)
使用Java Bean useBean、setProperty、getProperty
useBean 行为属性id、class、scope(page当前页面、 request当前request、 session当前用户、 application当前应用程序)
<jsp:plugin />嵌入Applet小程序
<jsp:forward />跳转
<jsp:directive>
6.JSP内置对象
out request response config session application page pageContext exception
Print out = request.getWriter();
第五章 会话跟踪
1.Cookie不能跨域名
2.Unicode编码:保存中文
3.BASE64:保存二进制图片
4.Cookie的有效期:maxAge
5.Cookie不能修改、删除,要修改,只能创建一个同名的Cookie覆盖掉原来的Cookie
6.session方法
7.session与cookie的区别
存取方式:Cookie只能存取ASCII字符串,其他的要编码,Session可以存取任何类型的数据
隐私安全:Cookie存在客户端中,对客户可见,有风险,Session存在服务器上,安全
有效期:Cookie设置maxAge,Session关闭浏览器就失效
服务器负担:Session在服务器上,每个用户一个,服务器负担大,Cookie在客户端上不会让服务器负担
第六章 过滤器Filter
1.Filter用在Servlet之外对request或response进行修改,客户请求在抵达Servlet之前会经过FileterChain里的所有Filter,服务器响应请求也会经过这些Filter
2.Filter的生命周期
init() doFilter() destroy()
3.doFilter()方法中一定要执行chain.doFilter(request,response),否则request不会交给后面的Filter或者Servlet
3.Filter配置,在web.xml中,包括filter和filter-mapping,一盒web可以配置多个filter,执行按照配置的顺序执行
4.Filter的作用:防盗链、字符编码、日志记录、异常捕捉、权限验证、内容替换、GZIP压缩、图像水印(水印是在浏览时动态打上的,不破坏原图片)、缓存、文件上传
*要注意配置顺序,否则会出错,如执行GZIP再执行图像水印会出错
第七章 监听器Listener
1.监听session request servletcontext等的创建与销毁
2.单点登录
3.显示在线人数
第十二章 JDBC
1.Connection conn = null;
Statement stmt = null;(PreparedStatement pst = null;)
ResultSet re = null;
Class.forName("com.jdbc.mysql.Driver");
String url = "jdbc:mysql://localhost:3306/data";
String user = "admin";
String pwd = "123456";
conn = DriverManager.getConnection(url,user,pwd);
stmt = conn.createStatement();(pst = conn.preparedStatement(sql); pst.setInt();)
re = stmt.executeQuery("select * from table");(re = pst.executeUpdate(sql))
2.编码问题:?unicode=true&characterEncoding=utf-8
第二十六章 Spring概述
1.AOP配置拦截器,在servlet前后执行代码
2.AOP基于代理
3.日志 事务 安全 缓存
4.方法前拦截器 返回后拦截器 异常抛出拦截器