1.web.xml
<error-page>
<error-code>404 500
<location> /XXX.jsp
<error-type>
<exception-type> ServletException IOException RuntimeException Error 子类不能比父类抛更多的异常
2.静态包含 和 动态包含
静态包含:源文件 包含进 包含它的文件中 ,然后翻译 编译 只有一个.class
动态包含:各自编译 将结果包含过来 有两个.class
静态包含:各定义了一个成员变量,你说我是用哪个了?
静态包含的乱码:
.html
加一个头<%@ page contentType="text/html;charset=UTF-8"%>
.jsp
由于它会设置编码 , 就不会出现乱码
以后包含:用动态包含,包含.jsp
动态包含可以传递参数
3.
声明:<%! %>
表达式:<%= %>
脚本片段<% %>
4.动作元素
<jsp:param name="" value="" />
<jsp:forward page=""/> 请求转发 req.getRequestDispacher().forward();
<jsp:include page="">
<jsp:param name="" value="" /> 参数传递
</jsp:include>
<jsp:forward page="">
<jsp:param name="" value="" /> 参数传递
<jsp:forward page=""/>
取得<%= request.getParameter(XXX)%> 不要再用out.println
5.传递参数 乱码
查看翻译后的Servlet
它编码是通过getCharacterEncoding
所以在传递参数之前 就设置编码req.setCharacterEncoding
如果没设置的话 getCharacterEncoding为空,那就编错了 没救了
6.
<jsp:forward page="ok.jsp">
<jsp:param name="userName" value="<%=userName %>" />
</jsp:forward>
value里面设置的值为一个变量 但这是在标签中 用表达式<%= %> 神来之笔
7.九大门派
out
request request.getParameter() <%= %> 浏览器中?XXX&YYY
浏览器中输入?size=5 文字大小改变 <font size="<%= size%>">
两个考虑:怎么得到size , 怎样将size设置到font中
8.Properties
FileInputStream 传入的地址 servletContext.getRealPath(XXX)
例子:IP访问次数,记录在Properties文件中
9.response.setHeader() 自动跳转